Я создал кластер Kubernetes в Google Cloud, я использую свой macbook для создания POD, и я использую gcloud
для подключения к кластеру с моего компьютера:
Когда я запускаю gcloud container clusters get-credentials gcloud-cluster-dev --zone europe-west1-d --project ***********
на моем компьютере, gcloud
автоматически настраивает ~/.kube/config
файл.
Но теперь я хочу подключиться к kubectl из контейнера Docker (этот: dtzar/helm-kubectl:2.14.0
), и я не хочу использовать 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? Как?
Кто-нибудь может мне помочь? Спасибо.
EDIT:
Я не могу смонтировать свою конфигурацию kubectl в образе докера, потому что я создал этот конфиг с помощью gcloud, а образ Docker не имеет gcloud. Я хочу подключиться непосредственно к kubectl с вами gcloud
$ 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=