Environment:Kubeflow Kubeflow Kubectl Kustomize CLI Environment
| Knowledge Sources | |
|---|---|
| Domains | Infrastructure, CLI_Tools, Platform_Deployment |
| Last Updated | 2026-02-13 00:00 GMT |
Overview
Local workstation environment with kubectl (>= 1.25) and kustomize CLI tools for deploying and managing Kubeflow.
Description
This environment defines the local CLI tools required on the operator's workstation for deploying Kubeflow to a Kubernetes cluster. The kubectl CLI must be version 1.25 or higher to support the API resources used by Kubeflow. The kustomize standalone binary is required to render Kubeflow manifests using the kustomize build command. Note that the kustomize built into kubectl (kubectl apply -k) may lag behind the standalone version and is not recommended for Kubeflow deployments.
Usage
Use this environment for all Platform Deployment workflows and for ongoing cluster management tasks (health checks, scaling, debugging). Both tools must be on the system PATH before running any Kubeflow deployment commands.
System Requirements
| Category | Requirement | Notes |
|---|---|---|
| OS | Linux, macOS, or Windows (WSL2) | Linux is the primary deployment platform |
| kubectl | >= 1.25 | Must match within one minor version of the target cluster |
| kustomize | >= 5.0.0 (standalone) | Do not use kubectl apply -k; use standalone kustomize
|
| Disk | Minimal (< 500MB) | Just the CLI binaries and kubeconfig |
| Network | Access to Kubernetes API server | KUBECONFIG must point to a reachable cluster |
Dependencies
System Packages
- kubectl >= 1.25
- kustomize >= 5.0.0 (standalone binary)
- curl or wget (for downloading binaries)
- git (for cloning kubeflow/manifests repository)
Credentials
The following environment variables may be set:
- KUBECONFIG: Path to kubeconfig file with cluster access credentials. Defaults to ~/.kube/config.
Quick Install
# Install kubectl (Linux amd64)
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
chmod +x kubectl
sudo mv kubectl /usr/local/bin/
# Install kustomize (standalone)
curl -s "https://raw.githubusercontent.com/kubernetes-sigs/kustomize/master/hack/install_kustomize.sh" | bash
sudo mv kustomize /usr/local/bin/
# Verify
kubectl version --client
kustomize version
Code Evidence
Installation instructions referenced from README.md:L46-47:
The Kubeflow AI reference platform can be installed via Packaged Distributions
or Kubeflow Manifests.
The deployment pattern kustomize build ... | kubectl apply -f - is the standard Kubeflow Manifests installation method, documented in the kubeflow/manifests repository and referenced by the README.
Version check implementation from the Prerequisites Validation step:
kubectl version --client --output=yaml
kubectl version --output=yaml
kustomize version
Common Errors
| Error Message | Cause | Solution |
|---|---|---|
command not found: kubectl |
kubectl not installed or not on PATH | Install kubectl and ensure it is in /usr/local/bin/ or on PATH |
command not found: kustomize |
kustomize not installed | Install standalone kustomize binary (do not rely on kubectl built-in) |
error: unable to recognize STDIN: no matches for kind |
kustomize version too old for the manifests | Upgrade to kustomize >= 5.0.0 |
error: the server doesn't have a resource type |
kubectl client version mismatch with server | Upgrade kubectl to within one minor version of the cluster |
Compatibility Notes
- macOS: Use
brew install kubectl kustomizefor Homebrew-based installation. - Windows: Use WSL2 with Ubuntu. Native Windows kubectl works but kustomize may have path issues.
- kubectl built-in kustomize: The
kubectl apply -kcommand uses an embedded kustomize that may be older than the standalone version. Kubeflow manifests often require features only available in the standalone kustomize binary.