Я использую cloud.google.com / go SDK для программного обеспечения кластеров GKE необходимой конфигурацией.
Я установил ClientCertificateConfig.IssueClientCertificate = true (см. https://pkg.go.dev/google.golang.org/genproto/googleapis/container/v1?tab=doc#ClientCertificateConfig). После подготовки кластера я использую ca_certificate, client_key, client_secret, возвращенные для того же кластера (см. https://pkg.go.dev/google.golang.org/genproto/googleapis/container/v1?tab=doc#MasterAuth). Теперь, когда у меня есть 3 вышеуказанных атрибута, я пытаюсь сгенерировать kubeconfig для этого кластера (для последующего использования helm)
Грубо говоря, мой kubeconfig выглядит примерно так:
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: <base64_encoded_data>
server: https://X.X.X.X
name: gke_<project>_<location>_<name>
contexts:
- context:
cluster: gke_<project>_<location>_<name>
user: gke_<project>_<location>_<name>
name: gke_<project>_<location>_<name>
current-context: gke_<project>_<location>_<name>
kind: Config
preferences: {}
users:
- name: gke_<project>_<location>_<name>
user:
client-certificate-data: <base64_encoded_data>
client-key-data: <base64_encoded_data>
При запуске kubectl получить узлы с вышеуказанным конфигом я получаю ошибку: Ошибка от сервера (Запрещено): serviceaccounts запрещено: Пользователь "клиент" не может перечислить ресурс "serviceaccounts" в группе API "" в области действия кластера
Интересно если я использую конфигурацию, сгенерированную gcloud, единственное изменение в пользовательском разделе: user:
auth-provider:
config:
cmd-args: config config-helper --format=json
cmd-path: /Users/ishankhare/google-cloud-sdk/bin/gcloud
expiry-key: '{.credential.token_expiry}'
token-key: '{.credential.access_token}'
name: gcp
Эта конфигурация, кажется, работает просто отлично. Но как только я добавляю в него данные сертификата клиента и ключа клиента, он выходит из строя: , Сможете ли вы предоставить мне некоторую информацию здесь?
Также отвечая на этот вопрос Я пытался сначала полагаться только на комбинацию Имя пользователя - Пароль, используя это для применения нового кластера в кластере. Но я не могу использовать только подход пароля пользователя. Я получаю следующую ошибку:
error: You must be logged in to the server (Unauthorized)