Как подключиться к движку Google Kubernetes с клиентом Kubernetes Python

Я использую клиент Kubernetes Python для управления своим локальным кластером Kubernetes:

from kubernetes import client, config


config = client.Configuration()
config.host = "http://local_master_node:8080"
client.Configuration.set_default(config)
print(client.CoreV1Api().v1.list_node())

Все работает нормально, пока мне не понадобится подключиться к проекту в Google Cloud Kubernetes Engine, используя ключевой файл, предоставленный клиентом, владеющим проектом из Google, например:

{
    "type": "...",
    "project_id": "...",
    "private_key_id": "...",
    "private_key": "...",
    "client_email": "...",
    "client_id": "...",
    "auth_uri": "https://accounts.google.com/o/oauth2/auth",
    "token_uri": "https://accounts.google.com/o/oauth2/token",
    "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
    "client_x509_cert_url": "https://www.googleapis.com/..."
}

Пытаюсь загрузить (наверное, не так):

os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = os.path.abspath('credentials.json')
config.load_incluster_config()

Но этот код вызывает исключение kubernetes.config.config_exception.ConfigException: Service host/port is not set.

Вопросы следующие:

  1. Как правильно предоставить учетные данные Google для клиента Kubernetes Python?
  2. Если я на правильном пути, где я могу найти хост / порт для использования с Google Cloud?

Некоторые фрагменты будут оценены.

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
3
0
1 043
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Наконец, я сам нашел решение.

Во-первых, вам нужно получить файл конфигурации Kubernetes. Итак, заходим в панель Google Cloud Platform Kubernetes Engine. Выберите кластер, который вы хотите подключить, и нажмите кнопку connect. Выберите Run in Cloud Shell и после того, как вы вошли в систему, введите предлагаемую строку, например:

$ gcloud container clusters get-credentials ...

Затем вы можете найти в папке ~/.kube файл конфигурации. Сохраните его содержимое в yaml-файл, который вы должны передать функции kubernetes.config.load_kube_config:

os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = os.path.abspath('credentials.json')
config.load_kube_config(os.path.abspath('config.yaml'))

Другие вопросы по теме

Защита веб-сайта .NET Core MVC от попыток грубой силы входа в систему (с помощью встроенных средств)
CakePHP 3 REST API решение для входа на ajax
Использование официального php sdk show youtube "Состояние сеанса не совпадает. NULL строка"
При аутентификации шлюза API с помощью sigv4 выдается сообщение «Отсутствует токен аутентификации»
.NET Core API - устанавливает ли промежуточное ПО токен носителя JWT в заголовке?
Совместное использование общего токена аутентификации между веб-сайтом и приложением
Как отправка сертификата клиента не подвергает клиента олицетворению
Как вызвать функцию аутентификации в качестве промежуточного программного обеспечения или в качестве фильтра аутентификации в WebForms ASP.NET?
Множественный провайдер аутентификации и множественные точки входа
Selenium: невозможно пройти через всплывающее окно входа в систему без исходного кода