Я пытаюсь получить программный доступ к кластеру kubernetes, работающему в Google Cloud. Я настроил учетную запись службы и указал GOOGLE_APPLICATION_CREDENTIALS
на соответствующий файл учетных данных. Мне удалось получить кластер и учетные данные следующим образом:
import google.auth
from google.cloud.container_v1 import ClusterManagerClient
from kubernetes import client
credentials, project = google.auth.default(
scopes=['https://www.googleapis.com/auth/cloud-platform',])
credentials.refresh(google.auth.transport.requests.Request())
cluster_manager = ClusterManagerClient(credentials=credentials)
cluster = cluster_manager.get_cluster(project, 'us-west1-b', 'clic-cluster')
Пока все хорошо. Но затем я хочу начать использовать клиент kubernetes:
config = client.Configuration()
config.host = f'https://{cluster.endpoint}:443'
config.verify_ssl = False
config.api_key = {"authorization": "Bearer " + credentials.token}
config.username = credentials._service_account_email
client.Configuration.set_default(config)
kub = client.CoreV1Api()
print(kub.list_pod_for_all_namespaces(watch=False))
И я получаю сообщение об ошибке, подобное этому:
pods запрещено: Пользователь "12341234123451234567" не можетперечислить ресурс "pods" в группе API "" в области действия кластера: требуется разрешение "container.pods.list".
Я нашел этот веб-сайт , описывающий container.pods.list
, но я не знаю, куда мне добавить его или как оно относится к областям API , описанным здесь .