Запустите kubectl внутри кластера - PullRequest
0 голосов
/ 28 мая 2018

У меня кластер Kubernetes 1.10 запущен и работает.Используя следующую команду, я создаю контейнер, в котором выполняется bash внутри кластера:

kubectl run tmp-shell --rm -i --tty --image centos -- /bin/bash

Я загружаю правильную версию kubectl в работающем контейнере, делаю его исполняемым и пытаюсь запустить

./kubectl get pods

но получите следующую ошибку:

Error from server (Forbidden): pods is forbidden:
User "system:serviceaccount:default:default" cannot
list pods in the namespace "default"

Означает ли это, что kubectl обнаружил, что работает внутри кластера и автоматически подключается к нему?Как мне разрешить учетной записи службы перечислять пакеты?Моей конечной целью будет запуск helm внутри контейнера.Согласно документам, которые я нашел, все должно работать нормально, как только kubectl работает нормально.

1 Ответ

0 голосов
/ 28 мая 2018

Значит ли это, что kubectl обнаружил, что работает внутри кластера и автоматически подключается к нему?

Да, он использовал envvars KUBERNETES_SERVICE_PORT и KUBERNETES_SERVICE_HOST, чтобы найти сервер APIи учетные данные в автоматически вводимом /var/run/secrets/kubernetes.io/serviceaccount/token файле для аутентификации.

Как мне разрешить учетной записи службы перечислять модули?

Это зависит отиспользуемый вами режим авторизации.Если вы используете RBAC (что типично), вы можете предоставить разрешения этой учетной записи службы, создав объекты RoleBinding или ClusterRoleBinding.

См. https://kubernetes.io/docs/reference/access-authn-authz/rbac/#service-account-permissions для получения дополнительной информации.

Iполагаю, что helm требует широких разрешений (по сути, суперпользователь в кластере).Первым шагом было бы определить, с какой службой учетной записи службы работал хелм (отметьте serviceAccountName в модулях штурвала).Затем, чтобы предоставить разрешения суперпользователя для этой учетной записи службы, выполните:

kubectl create clusterrolebinding helm-superuser \
  --clusterrole=cluster-admin \
  --serviceaccount=$SERVICEACCOUNT_NAMESPACE:$SERVICEACCOUNT_NAME
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...