Google облачные учетные данные для модулей, развернутых в кластере Kubernetes? - PullRequest
0 голосов
/ 23 мая 2018

Я работаю над приложением Flask, которое взаимодействует с облачным хранилищем Google с помощью клиентской библиотеки Python.В настоящее время при локальной разработке я использую учетную запись службы для проверки подлинности приложения и выполнения взаимодействий.

Я планирую создать образ приложения для подключения и развернуть его в кластере kubernetes.Меня беспокоит то, как я должен предоставить учетные данные Google?

Я могу ошибаться, когда я запустил этот файл python на виртуальной машине, он смог создать новый сегмент без необходимости для учетных данных или учетных записей служб.

# Imports the Google Cloud client library
from google.cloud import storage

# Instantiates a client
storage_client = storage.Client()

# The name for the new bucket
bucket_name = 'my-new-bucket'

# Creates the new bucket
bucket = storage_client.create_bucket(bucket_name)

print('Bucket {} created.'.format(bucket.name))

Если я dockerizeтот же код в приложение фляги и развернуть его в кластере, он по-прежнему будет принимать учетные данные Google по умолчанию?Я хотел бы узнать, как лучше всего это делать на кластере kubernetes.

1 Ответ

0 голосов
/ 23 мая 2018

Наилучшим способом является развертывание секрета kubernetes

apiVersion: v1 kind: Secret metadata: name: GOOGLE_APPLICATION_CREDENTIALS data: key.json: "Your service acount key.json"

Для модуля / развертывания

volumes: - name: GOOGLE_APPLICATION_CREDENTIALS secret: secretName: GOOGLE_APPLICATION_CREDENTIALS

Затем дляизображение, вы можете установить переменную как os.['GOOGLE_APPLICATION_CREDENTIALS'], которая будет принимать переменную os внутри контейнера, и код python будет использовать этот ключ.

Как только вы создадите образ, поместите его в реестр контейнера.

Это должно сработать.

...