Получение информации о модулях Kubernetes через микросервис

При отправке запроса к API выдает NPE на шаге api.listPodForAllNamespaces. Не могли бы вы посоветовать, какая здесь должна быть правильная конфигурация?

Где вы запускаете свой код? Я использую клиент go, и я получил NPE, когда неправильно настроил переменные среды.

williamohara 30.01.2023 03:21

Вам нужно отредактировать свой вопрос и добавить полную трассировку стека исключения.

tgdavies 30.01.2023 03:26

Код развернут в кластере kubernetes, и я отправляю запрос в API через терминал, используя curl

vehk 30.01.2023 03:34

tgdavies, я обновил начальный пост с полной трассировкой стека

vehk 30.01.2023 05:20

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

Vikram S 30.01.2023 07:07
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
5
76
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Как говорит ошибка:

pods is forbidden: User \"system:serviceaccount:sds-test:default\" cannot list resource \"pods\"

Это означает, что учетная запись службы default в пространстве имен sds-test не имеет соответствующих разрешений для перечисления модулей. Вероятно, вы не указываете учетную запись службы при развертывании. K8s автоматически назначит вам сервисный аккаунт default.

Вам нужно создать ServiceAccount. Предоставьте ему необходимый доступ, используя Role и RoleBinding. Затем обновите свой Deployment/Pod, чтобы использовать только что созданный ServiceAccount. Подробности о которых можно узнать здесь

Спасибо за ответ testfile. Можно ли использовать существующую учетную запись службы, я вижу это при запуске «kubectl get serviceaccounts»: ИМЯ СЕКРЕТЫ ВОЗРАСТ по умолчанию 0 66

vehk 30.01.2023 23:57

@vehk возможно, хотя и не рекомендуется. В сервисной учетной записи default нет ничего особенного, поэтому вы можете привязывать к ней роли, как и к любой другой сервисной учетной записи. Однако рекомендуется создать специальную учетную запись службы для вашего приложения, чтобы вы могли следовать принципу наименьших привилегий. Если вы добавите роль в учетную запись службы по умолчанию, все, что работает в этом пространстве имен, получит эти разрешения.

testfile 31.01.2023 06:48

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