如何在为docker桌面包含的独立k8s服务器集群创建新上下文时进行身份验证



我使用的是docker desktop包含的独立Kubernetes服务器和客户端。

我为k8s创建了两个名称空间,分别命名为:developmentproduction

☁  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: 

需要身份验证,我不知道应该输入什么usernamepassword

此外,当我试图查看当前上下文使用的配置时,出现了一个错误。

☁  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前端上下文说;使用开发人员用户的凭据以访问开发集群的前端名称空间";。

您可以在链接的文档中找到更多详细信息和示例。分步指南将使您更容易正确设置。

相关内容

  • 没有找到相关文章

最新更新