аутентификация учетной записи службы GKE kubectl - PullRequest
0 голосов
/ 03 июля 2018

Я развертываю приложения на Kubernetes , работающих на Google Cloud из CI. CI использует конфигурацию kubectl , которая содержит информацию об аутентификации (либо непосредственно в CVS, либо в виде шаблонов из переменных env во время сборки)

CI имеет отдельную Google Cloud учетную запись службы, и я генерирую kubectl config через

gcloud auth activate-service-account --key-file=key-file.json

и

gcloud container clusters get-credentials <cluster-name>

Устанавливает конфигурацию kubectl , но токен истекает через несколько часов.

Какие у меня есть варианты иметь «постоянную» kubectl конфигурацию, отличную от предоставления CI файла ключа во время сборки и запуска gcloud container clusters get-credentials?

Ответы [ 2 ]

0 голосов
/ 05 апреля 2019

Для тех, кто задает тот же вопрос и голосует.

Это мое текущее решение:

Некоторое время я рассматривал key-file.json как токен идентификации, помещал его в конфигурацию CI и использовал его в контейнере с установленным gcloud CLI. Я использовал файл ключа / токен для входа в GCP и позволил gcloud создать kubectl config - такой же подход, как и для входа в реестр GCP-контейнера.

Это прекрасно работает, но использование kubectl в CI является своего рода антипаттерном. Я переключился на развертывание на основе событий push реестра контейнера. Это относительно легко сделать в k8s с keel flux и т. Д. Таким образом, CI остается только перенести образ Docker в репозиторий, и его работа на этом заканчивается. Остальное позаботится о самом k8s, поэтому нет необходимости в kubectl и его конфигурации в заданиях CI.

0 голосов
/ 23 июля 2018

Вы должны изучить RBAC (управление доступом на основе ролей), которое будет аутентифицировать роль, избегая истечения срока действия, в отличие от сертификатов, срок действия которых истекает, как уже упоминалось.

...