【发布时间】:2019-05-29 16:27:07
【问题描述】:
我在 Google Cloud 中创建了一个 Kubernetes 集群,我正在使用我的 macbook 创建 POD,我正在使用 gcloud 从我的计算机连接到集群:
当我在我的计算机上运行gcloud container clusters get-credentials gcloud-cluster-dev --zone europe-west1-d --project *********** 时,gcloud 会自动配置~/.kube/config 文件。
但是现在我想从一个Docker容器(这个:dtzar/helm-kubectl:2.14.0)连接到kubectl,我不想用gcloud,我只想用kubectl。
当我运行docker run -it dtzar/helm-kubectl:2.14.0 sh 时,我已经安装了kubectl,但没有配置为连接到集群。
我正在尝试将kubectl 连接到集群而不安装gcloud。
我尝试了基本身份验证https://blog.christianposta.com/kubernetes/logging-into-a-kubernetes-cluster-with-kubectl/,但没有成功。 返回错误:
# kubectl get pods
error: You must be logged in to the server (Unauthorized)
# kubectl version
Client Version: version.Info{Major:"1", Minor:"14", GitVersion:"v1.14.1", GitCommit:"b7394102d6ef778017f2ca4046abbaa23b88c290", GitTreeState:"clean", BuildDate:"2019-04-08T17:11:31Z", GoVersion:"go1.12.1", Compiler:"gc", Platform:"linux/amd64"}
error: You must be logged in to the server (the server has asked for the client to provide credentials)
我也试过这个:https://codefarm.me/2019/02/01/access-kubernetes-api-with-client-certificates/
但我没有找到ca.crt 和ca.key 在此行中使用的位置:(...) -CA /etc/kubernetes/pki/ca.crt -CAkey /etc/kubernetes/pki/ca.key (...)
我可以使用这个 CA 吗?怎么样?
有人可以帮助我吗?谢谢。
编辑: 我无法在 docker 镜像中挂载我的 kubectl 配置,因为我使用 gcloud 创建了这个配置,而 Docker 镜像没有 gcloud。我想不使用 gcloud 直接连接到 kubectl
$ docker run -v ~/.kube:/root/.kube -it dtzar/helm-kubectl:2.14.0 sh
# kubectl version
Client Version: version.Info{Major:"1", Minor:"14", GitVersion:"v1.14.1", GitCommit:"b7394102d6ef778017f2ca4046abbaa23b88c290", GitTreeState:"clean", BuildDate:"2019-04-08T17:11:31Z", GoVersion:"go1.12.1", Compiler:"gc", Platform:"linux/amd64"}
Unable to connect to the server: error executing access token command "/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/bin/gcloud config config-helper --format=json": err=fork/exec /usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/bin/gcloud: no such file or directory output= stderr=
【问题讨论】:
-
寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。 minimal reproducible example
-
我将提供更多信息。谢谢
标签: kubernetes gcloud