我使用的是docker desktop包含的独立Kubernetes服务器和客户端。
我为k8s创建了两个名称空间,分别命名为:development
和production
。
☁ kubernetes-labs [master] ⚡ k get namespace
NAME STATUS AGE
default Active 3d22h
development Active 2d23h
kube-node-lease Active 3d23h
kube-public Active 3d23h
kube-system Active 3d23h
production Active 5m1s
然后,设置一个名为kubernetes-labs
:的新集群
☁ kubernetes-labs [master] ⚡ k config set-cluster kubernetes-labs --server=https://kubernetes.docker.internal:6443
Cluster "kubernetes-labs" set.
正如您所看到的,新集群的服务器指向独立的Kubernetes服务器所使用的https://kubernetes.docker.internal:6443
。
接下来,创建两个上下文:
☁ kubernetes-labs [master] ⚡ kubectl config set-context kubernetes-labs-dev --cluster=kubernetes-labs --namespace=development --user=dev
Context "kubernetes-labs-dev" modified.
☁ kubernetes-labs [master] ⚡ kubectl config set-context kubernetes-labs-prod --cluster=kubernetes-labs --namespace=production --user=prod
Context "kubernetes-labs-prod" created.
切换到kubernetes-labs-dev
上下文:
☁ kubernetes-labs [master] ⚡ k config use-context kubernetes-labs-dev
Switched to context "kubernetes-labs-dev".
现在,当我尝试从当前名称空间获取pod时:
☁ kubernetes-labs [master] ⚡ k get pods
Please enter Username: dev
Please enter Password:
需要身份验证,我不知道应该输入什么username
和password
。
此外,当我试图查看当前上下文使用的配置时,出现了一个错误。
☁ kubernetes-labs [master] ⚡ k config view --minify=true
error: cannot locate user dev
为了使其工作,您需要配置对多个集群的访问:
此页面显示如何使用配置文件。集群、用户和上下文在一个或多个配置文件中定义,可以快速切换在集群之间使用kubectl config use context命令。
您需要确保您的配置文件是正确的。配置文件描述集群、用户和上下文。然后,您可以将用户详细信息添加到配置文件中,例如:
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
上下文也可以这样做,例如:
kubectl config --kubeconfig=config-demo set-context dev-frontend --cluster=development --namespace=frontend --user=developer
kubectl config --kubeconfig=config-demo set-context dev-storage --cluster=development --namespace=storage --user=developer
kubectl config --kubeconfig=config-demo set-context exp-scratch --cluster=scratch --namespace=default --user=experimenter
和集群,例如:
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 scratch --server=https://5.6.7.8 --insecure-skip-tls-verify
请记住,您需要在环境中设置证书文件的正确路径名,以便配置文件正常工作。
此外,请记住:
每个上下文都是一个三元组(集群、用户、命名空间(。例如dev前端上下文说;使用开发人员用户的凭据以访问开发集群的前端名称空间";。
您可以在链接的文档中找到更多详细信息和示例。分步指南将使您更容易正确设置。