Как настроить разрешения в плагине jenkins kubernetes для доступа к удаленному кластеру GKE
У меня есть 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/: Выполнение сбоя: ПОЛУЧИТЬ по адресу: https://35.193.108.106/api/v1/namespaces/default/pods. Сообщение: неавторизованный. Полученный статус: Статус (apiVersion=v1, code=401, details=null, kind=Status, message=Unauthorized, metadata=ListMeta(_continue=null, resourceVersion=null, selfLink=null, additionalProperties={}), причина =Unauthorized, status=Failure, additionalProperties={}).
1 ответ
Проверьте настройки сетевых правил 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