Приложению Java не удается найти ADC, когда в кластере GKE включена идентификация рабочей нагрузкиJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Приложению Java не удается найти ADC, когда в кластере GKE включена идентификация рабочей нагрузки

Сообщение Anonymous »

Я пытаюсь перенести службу, работающую на GKE, на использование Workload Identity для аутентификации и доступа к ресурсам GCP. До сих пор служба использовала ключи SA JSON, на которые указывает переменная env GOOGLE_APPLICATION_CREDENTIALS.
Приложение выдает эту ошибку при попытке запустить LOG.info("Учетные данные по умолчанию: " + ServiceAccountCredentials.getApplicationDefault());
"Your default credentials were not found. To set up Application Default Credentials for your environment, see https://cloud.google.com/docs/authentic ... age":"Your default credentials were not found. To set up Application Default Credentials for your environment, see https://cloud.google.com/docs/authentic ... StackTrace":[{"class":"com.google.auth.oauth2.DefaultCredentialsProvider","method":"getDefaultCredentials","file":"DefaultCredentialsProvider.java","line":127,"exact":false,"location":"com.google.auth.google-auth-library-oauth2-http-1.22.0.jar","version":"1.22.0"},{"class":"com.google.auth.oauth2.GoogleCredentials","method":"getApplicationDefault","file":"GoogleCredentials.java","line":152,"exact":false,"location":"com.google.auth.google-auth-library-oauth2-http-1.22.0.jar","version":"1.22.0"},

Я сталкиваюсь с той же ошибкой, когда приложение пытается установить соединение с Cloud sql с помощью HikariCP.
Я выполнил шаги, описанные в этом документе. Google Doc и настройте KSA и GSA, привяжите и аннотируйте их, как описано. GSA назначена роль редактора.
В контейнере, на котором работает мой сервис, я могу видеть соответствующий GSA в качестве активной учетной записи при запуске списка аутентификации gcloud. Я также могу успешно выполнить следующие команды Curl в контейнере.
curl http://metadata.google.internal/computeMetadata/v1/ -H "Metadata-Flavor: Google"

curl http://metadata.google.internal/compute ... ault/token -H "Metadata-Flavor: Google"

И я дважды проверил, что /var/run/secrets/kubernetes.io/serviceaccount/token существует в модуле. Я также могу успешно запускать в модуле такие команды, как список сегментов хранилища gcloud, список экземпляров gcloud sql, список наборов данных gcloud Alpha bq.
Вот как выглядит мой файл Deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: my-app
name: my-app
namespace: dataservice
spec:
progressDeadlineSeconds: 600
replicas: 2
revisionHistoryLimit: 10
selector:
matchLabels:
app: my-app
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type: RollingUpdate
template:
metadata:
annotations:
timestamp: "2025-01-01T00:00:00Z"
labels:
app: my-app
spec:
serviceAccountName: service-account-experimental
nodeSelector:
iam.gke.io/gke-metadata-server-enabled: "true"
initContainers:
- name: init
image: gcr.io/google.com/cloudsdktool/cloud-sdk:alpine
command:
- sh
- -c
- |
/bin/bash

Подробнее здесь: https://stackoverflow.com/questions/793 ... on-gke-clu
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»