Сервисные аккаунты позволяют подам в Kubernetes обращаться к API-серверу без использования учетных данных администратора. Они упрощают автоматизацию задач для приложений внутри кластера.
Что такое сервисные аккаунты
По умолчанию каждый под получает токен сервисного аккаунта при запуске. Этот токен монтируется как том в
/var/run/secrets/kubernetes.io/serviceaccount и используется для запросов к API. Разработчики используют их для чтения конфигураций или записи метрик без лишних настроек.Автоматическое создание токена происходит через контроллер допуска ServiceAccount. Без указания serviceAccountName под использует default аккаунт в пространстве имен.
Как работают токены
Токены сервисных аккаунтов представляют собой JWT, подписанные приватным ключом API-сервера. Они содержат утверждения с именем аккаунта, пространством имен и группами вроде system:serviceaccounts. Kubernetes проверяет подпись и срок годности перед авторизацией.
Создание и настройка
Чтобы создать сервисный аккаунт, примените YAML с apiVersion: v1, kind: ServiceAccount. Свяжите с подом через spec.serviceAccountName в манифесте пода. Для ролей используйте RoleBinding или ClusterRoleBinding, чтобы назначить permissions вроде get pods.
Пример команды:
kubectl create serviceaccount my-sa; kubectl create rolebinding my-sa-role --clusterrole=view -sa=default:my-sa
В итоге сервисные аккаунты упрощают доступ к кластеру, но требуют внимательной настройки для защиты от утечки привилегий.
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#арсенал_инженера