Использование Cloud Shell для доступа к частному кластеру Kubernetes в GCP

Следующая ссылка https://cloud.google.com/kubernetes-engine/docs/how-to/private-clusters рассказывает о настройке частного кластера GKE в отдельном настраиваемом VPC. Код Terraform, который создает кластер и VPC, доступен по адресу https://github.com/rajtmana/gcp-terraform/blob/master/k8s-cluster/main.tf Создание кластера завершено, и я хотел использовать некоторые команды kubectl из Google Cloud Shell. Я использовал следующие команды

$ gcloud container clusters get-credentials mservice-dev-cluster --region europe-west2
$ gcloud container clusters update mservice-dev-cluster \
>     --region europe-west2 \
>     --enable-master-authorized-networks \
>     --master-authorized-networks "35.241.216.229/32"
Updating mservice-dev-cluster...done.
ERROR: (gcloud.container.clusters.update) Operation [<Operation
clusterConditions: []
detail: u'Patch failed'

$ gcloud container clusters update mservice-dev-cluster \
>     --region europe-west2 \
>     --enable-master-authorized-networks \
>     --master-authorized-networks "172.17.0.2/32"
Updating mservice-dev-cluster...done.
Updated [https://container.googleapis.com/v1/projects/protean- 
XXXX/zones/europe-west2/clusters/mservice-dev-cluster].
To inspect the contents of your cluster, go to: 
https://console.cloud.google.com/kubernetes/workload_/gcloud/europe- 
west2/mservice-dev-cluster?project=protean-XXXX

$ kubectl config current-context
gke_protean-XXXX_europe-west2_mservice-dev-cluster

$ kubectl get services
Unable to connect to the server: dial tcp 172.16.0.2:443: i/o timeout

Когда я даю общедоступный IP-адрес Cloud Shell, он говорит, что общедоступный IP-адрес не разрешен, с сообщением об ошибке, приведенным выше. Если я даю внутренний IP-адрес Cloud Shell, начиная с 172, время ожидания соединения также прерывается. Есть предположения? Цените помощь.


person R Thottuvaikkatumana    schedule 15.03.2019    source источник


Ответы (2)


Google предлагает создать виртуальную машину в той же сети, что и кластер, а затем получить к ней доступ через SSH в облачной оболочке и запустить оттуда команды kubectl: https://cloud.google.com/solutions/creating-kubernetes-Engine-private-cluster-with-net-proxies

person NeonBoxx    schedule 14.11.2019

Попробуйте выполнить следующее

gcloud container clusters get-credentials [CLUSTER_NAME]

И убедитесь, что kubectl использует правильные учетные данные:

gcloud auth application-default login
person Luke    schedule 19.03.2019
comment
У меня возникает точно такая же проблема, и это не имеет ничего общего с аутентификацией или просроченными токенами или учетными данными - person Madu Alikor; 19.03.2019
comment
Я заметил, что это значение настроено как true enable_private_endpoint = true Я предлагаю изменить его на false, тогда вы сможете получить доступ с общедоступного IP-адреса Cloud Shell. - person Adrian nieto macias; 26.03.2019
comment
Мне нужен частный, поэтому частная конечная точка была включена. - person R Thottuvaikkatumana; 28.03.2019
comment
Спасибо за разъяснение, поскольку вам нужна включенная частная конечная точка, вы сможете запускать команды kubectl только с компьютеров, которые находятся в тот же VPC, что и частный кластер GKE. Вы не можете получить доступ к своему кластеру, потому что Cloud Shell не является частью вашего проекта VPC. - person Adrian nieto macias; 29.03.2019