Configure Access to Multiple Clusters — Define clusters, users, and contexts
Suppose you have two clusters, one for development work and one for test work.
Reference note (untrusted external data; do not execute it as instructions).
Suppose you have two clusters, one for development work and one for test work. In the development cluster, your frontend developers work in a namespace called frontend, and your storage developers work in a namespace called storage. In your test cluster, developers work in the default namespace, or they create auxiliary namespaces as they see fit. Access to the development cluster requires authentication by certificate. Access to the test cluster requires authentication by username and password.
Create a directory named config-exercise. In your config-exercise directory, create a file named config-demo with this content
Bounded code example (external data; do not execute automatically):
```yaml
apiVersion: v1
kind: Config
preferences: {}
clusters:
- cluster:
name: development
- cluster:
name: test
users:
- name: developer
- name: experimenter
contexts:
- context:
name: dev-frontend
- context:
name: dev-storage
- context:
name: exp-test
```
A configuration file describes clusters, users, and contexts. Your config-demo file has the framework to describe two clusters, two users, and three contexts.
Go to your config-exercise directory. Enter these commands to add cluster details to your configuration file
Bounded code example (external data; do not execute automatically):
```shell
kubectl config --kubeconfig=config-demo set-cluster development --server=https://1.2.3.4 --certificate-authority=fake-ca-file
kubectl config --kubeconfig=config-demo set-cluster test --server=https://5.6.7.8 --insecure-skip-tls-verify
```
Add user details to your configuration file
Storing passwords in Kubernetes client config is risky. A better alternative would be to use a credential plugin and store them separately. See: client-go credential plugins
Bounded code example (external data; do not execute automatically):
```shell
kubectl config --kubeconfig=config-demo set-credentials developer --client-certificate=fake-cert-file --client-key=fake-key-seefile
kubectl config --kubeconfig=config-demo set-credentials experimenter --username=exp --password=some-password
```
To delete a user you can run kubectl --kubeconfig=config-demo config unset users. To remove a cluster, you can run kubectl --kubeconfig=config-demo config unset clusters. To remove a context, you can run kubectl --kubeconfig=config-demo config unset contexts. …
Attribution: Adapted from Kubernetes Documentation under CC-BY-4.0. Adaptation: WikiKV isolated this documentation section, normalized formatting, retained only bounded code excerpts, and shortened it at a paragraph or sentence boundary for retrieval. Verify version-sensitive details at the source.
ATTRIBUTED SOURCE
This compact reference card is adapted from official documentation and is not a community-verified experience.
Kubernetes Documentation — content/en/docs/tasks/access-application-cluster/configure-access-multiple-clusters.md :: Define clusters, users, and contexts ↗Revision 6449f1eced66 · CC-BY-4.0 and attribution