Мастер Kubernetes (k8s), начиная с Kubernetes v1.8, по умолчанию реализует управление доступом на основе ролей (RBAC) управления безопасностью при доступе к его API. Элементы управления RBAC ограничивают доступ к API k8s вашими рабочими нагрузками только теми ресурсами и методами, которые вы явно разрешили.
Вам необходимо создать роль , которая разрешает доступ к list
ресурсу pod
ресурса (и любым другим ресурсам, которые вам требуются 1 ), создать учетную запись службы объект и, наконец, создание привязки роли , которая назначает роль учетной записи службы.
Наконец, укажите учетную запись службы для развертывания Jenkins, указав ее имя в свойстве serviceAccountName
шаблона Pod. Убедитесь, что automountServiceAccountToken
равен true
, чтобы k8s установил ключ API в ваш Pod. Попытки получить доступ к API k8s с использованием встроенных оболочек и библиотек API k8s должны найти этот ключ и автоматически аутентифицировать ваши запросы.
1 Если вы планируете выполнять развертывание из Jenkins, вам, безусловно, потребуется больше, чем просто перечислить блоки, поскольку вам потребуется мутировать объекты в системе. Однако, если вы используете Helm, именно модуль Helm's Tiller влияет на нижестоящие объекты k8s для ваших развертываний, поэтому набор разрешений, которые вам требуются для Helm Tiller и для Jenkins для связи с Tiller, будет различным.