Create minikube cluster k8s-cluster-1
minikube start --profile k8s-cluster-1
Create minikube cluster k8s-cluster-2
minikube start --profile k8s-cluster-2
Use the AWS CLI update-kubeconfig command to create or update your kubeconfig for your cluster
aws eks --region <region-code> update-kubeconfig --name <cluster_name>
By default, kubectl looks for a file named config in the $HOME/.kube directory. You can specify other kubeconfig files by setting the KUBECONFIG environment variable or by setting the --kubeconfig flag.
export KUBECONFIG=/home/anton/.kube/config_1:/home/anton/.kube/config_2
The loading order follows these rules:
- If the --kubeconfig flag is set, then only that file is loaded. The flag may only be set once and no merging takes place.
- If $KUBECONFIG environment variable is set, then it is used as a list of paths (normal path delimiting rules for your system). These paths are merged. When a value is modified, it is modified in the file that defines the stanza. When a value is created, it is created in the first file that exists. If no files in the chain exist, then it creates the last file in the list.
- Otherwise, ${HOME}/.kube/config is used and no merging takes place.
Usage
kubectl config SUBCOMMAND
kubectl config current-context - Display the current-context
kubectl config delete-cluster minikube - Delete the minikube cluster
kubectl config delete-context minikube - Delete the context for the minikube cluster
kubectl config delete-user minikube - Delete the minikube user
kubectl config get-clusters - List the clusters kubectl knows about
kubectl config get-contexts - List all the contexts in your kubeconfig file
kubectl config get-contexts my-context - Describe one context in your kubeconfig file.
kubectl config get-users - List the users kubectl knows about
kubectl config rename-context old-name new-name - Rename the context 'old-name' to 'new-name' in your kubeconfig file
kubectl config set clusters.my-cluster.server https://1.2.3.4 - Set server field on the my-cluster cluster to "https://1.2.3.4"
kubectl config set clusters.my-cluster.certificate-authority-data $(echo "cert_data_here" | base64 -i -) - Set certificate-authority-data field on the my-cluster cluster.
kubectl config set contexts.my-context.cluster my-cluster - Set cluster field in the my-context context to my-cluster.
kubectl config set users.cluster-admin.client-key-data cert_data_here --set-raw-bytes=true - Set client-key-data field in the cluster-admin user using --set-raw-bytes option.
kubectl config set-cluster e2e --server=https://1.2.3.4 - Set only the server field on the e2e cluster entry without touching other values.
kubectl config set-cluster e2e --embed-certs --certificate-authority=~/.kube/e2e/kubernetes.ca.crt - Embed certificate authority data for the e2e cluster entry
kubectl config set-cluster e2e --insecure-skip-tls-verify=true - Disable cert checking for the dev cluster entry
kubectl config set-cluster e2e --tls-server-name=my-cluster-name - Set custom TLS server name to use for validation for the e2e cluster entry
kubectl config set-context gce --user=cluster-admin - Set the user field on the gce context entry without touching other values
kubectl config set-credentials cluster-admin --client-key=~/.kube/admin.key - Set only the "client-key" field on the "cluster-admin" # entry, without touching other values
kubectl config set-credentials cluster-admin --username=admin --password=uXFGweU9l35qcif - Set basic auth for the "cluster-admin" entry
kubectl config set-credentials cluster-admin --client-certificate=~/.kube/admin.crt --embed-certs=true - Embed client certificate data in the "cluster-admin" entry
kubectl config set-credentials cluster-admin --auth-provider=gcp - Enable the Google Compute Platform auth provider for the "cluster-admin" entry
kubectl config set-credentials cluster-admin --auth-provider=oidc --auth-provider-arg=client-id=foo --auth-provider-arg=client-secret=bar - Enable the OpenID Connect auth provider for the "cluster-admin" entry with additional args
kubectl config set-credentials cluster-admin --auth-provider=oidc --auth-provider-arg=client-secret- - Remove the "client-secret" config value for the OpenID Connect auth provider for the "cluster-admin" entry
kubectl config set-credentials cluster-admin --exec-command=/path/to/the/executable --exec-api-version=client.authentication.k8s.io/v1beta1 - Enable new exec auth plugin for the "cluster-admin" entry
kubectl config set-credentials cluster-admin --exec-arg=arg1 --exec-arg=arg2 - Define new exec auth plugin args for the "cluster-admin" entry
kubectl config set-credentials cluster-admin --exec-env=key1=val1 --exec-env=key2=val2 - Create or update exec auth plugin environment variables for the "cluster-admin" entry
kubectl config set-credentials cluster-admin --exec-env=var-to-remove- - Remove exec auth plugin environment variables for the "cluster-admin" entry
kubectl config unset current-context - Unset the current-context.
kubectl config unset contexts.foo.namespace - Unset namespace in foo context.
kubectl config use-context minikube - Use the context for the minikube cluster
kubectl config view - Show merged kubeconfig settings.
kubectl config view --raw - Show merged kubeconfig settings and raw certificate data.
kubectl config view -o jsonpath='{.users[?(@.name == "e2e")].user.password}' - Get the password for the e2e user