kubectl получает узлы из модуля (сетевая политика)

Я пытаюсь запустить Python «kubectl для получения узлов» внутри POD. Как мне настроить сетевую политику для этого модуля?

Я попытался подключить свое пространство имен к пространству имен kube-system, но это не сработало.

Спасибо

1 ответ

Согласно доступу к API из модуля :

Рекомендуемый способ найти apiserver в поде — использовать kubernetes.default.svcDNS-имя, которое разрешается в IP-адрес службы, который, в свою очередь, будет перенаправлен на apiserver.

Рекомендуемый способ аутентификации на apiserver — использование учетных данных сервисной учетной записи . С помощью kube-system модуль связан с учетной записью службы, а учетные данные (токен) для этой учетной записи службы помещаются в дерево файловой системы каждого контейнера в этом модуле по адресу /var/run/secrets/kubernetes.io/serviceaccount/token.

Все, что вам нужно, — это учетная запись службы с достаточными привилегиями и использование DNS-имени сервера API, как указано выше. Пример:

      # Export the token value
export TOKEN=$(cat /var/run/secrets/kubernetes.io/serviceaccount/token)

# Use kubectl to talk internally with the API server
kubectl --insecure-skip-tls-verify=true  \
--server="https://kubernetes.default.svc:443" \
--token="${TOKEN}"                \
get nodes

Сетевая политика может быть ограничительной и запрещать этот тип вызова, однако по умолчанию все вышеперечисленное должно работать.

Другие вопросы по тегам