Как настроить разрешения для плагина jenkins kubernetes для доступа к удаленному кластеру GKE - PullRequest
0 голосов
/ 16 октября 2019

У меня настроен Jenkins на GCE, и оттуда я пытаюсь получить доступ к кластеру k8s на GKE. Я получаю несанкционированный доступ при попытке проверить подключение к плагину.

Я включил доступ к GKE API, создал учетную запись службы в GKE, создал роль и привязку роли.

Установил плагин kubernetes на Jenkins и настроил его, предоставив URL-адрес, сертификат и токен kubernetes. Я по-прежнему получаю следующее исключение -

Ожидается: соединение с кластером Kubernetes установлено успешно.

Фактически - Ошибка при проверке соединения https://35.193.108.106: java.security.cert.CertificateException: Не удалось проанализироватьсертификат: java.io.IOException: пустой ввод (с отключенными протоколами Https)

И

с (отключена проверка сертификата https включена) Ошибка тестирования соединения https://35.193.108.106: Ошибка при выполнении: GET at: https://35.193.108.106/api/v1/namespaces/default/pods. Сообщение: не авторизовано. Полученный статус: статус (apiVersion = v1, код = 401, подробности = ноль, вид = статус, сообщение = неавторизован, метаданные = ListMeta (_continue = ноль, resourceVersion = ноль, selfLink = ноль, AdditionalProperties = {}), причина = неавторизован, status = Failure, AdditionalProperties = {}).

1 Ответ

0 голосов
/ 16 октября 2019

Проверьте настройки сетевых правил gcp и проверьте соединение с kubectl от jenkins vm. Я использую учетные данные типа «Секретный текст» для хранения токена. Я использую jenkins vm в той же сети gcp, чтобы пропустить такие проблемы. Создание учетной записи службы в пространстве имен jenkins с правами администратора

kubectl create namespace jenkins && kubectl create serviceaccount jenkins --namespace=jenkins && kubectl describe secret $(kubectl describe serviceaccount jenkins --namespace=jenkins | grep Token | awk '{print $2}') --namespace=jenkins && kubectl create rolebinding jenkins-admin-binding --clusterrole=admin --serviceaccount=jenkins:jenkins --namespace=jenkins
...