Я пытаюсь перенести службу, работающую на 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
- |
echo "Initializing configuration";
cp /keys/app/config.properties /etc/my-app/config.properties;
volumeMounts:
- mountPath: /keys/app/
name: my-app
readOnly: true
- name: key-storage
mountPath: /etc/app/
containers:
- image: my-image:latest
name: dataservice
livenessProbe:
httpGet:
path: /health/live
port: 8080
initialDelaySeconds: 60
periodSeconds: 10
failureThreshold: 2
timeoutSeconds: 5
readinessProbe:
httpGet:
path: /health/ready
port: 8080
initialDelaySeconds: 10
periodSeconds: 10
resources:
requests:
cpu: "1"
memory: "1Gi"
limits:
cpu: "2"
memory: "2Gi"
env:
- name: JAVA_OPTS
value: "-Xmx512m -Xms512m"
ports:
- containerPort: 8080
volumeMounts:
- mountPath: /etc/secrets
name: secrets
readOnly: true
- mountPath: /etc/config
name: config
readOnly: true
dnsPolicy: ClusterFirst
restartPolicy: Always
terminationGracePeriodSeconds: 30
volumes:
- name: secrets
secret:
secretName: my-secrets
- name: config
configMap:
name: my-config
- name: app-config
secret:
secretName: app-config
- name: key-storage
emptyDir: {}
Вот файл serviceaccount.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
name: service-account-experimental
namespace: dataservice
annotations:
iam.gke.io/gcp-service-account: gservice-account-test@my_project_id.iam.gserviceaccount.com
Подробнее здесь: https://stackoverflow.com/questions/793 ... on-gke-clu
Приложению Java не удается найти ADC, когда в кластере GKE включена идентификация рабочей нагрузки ⇐ JAVA
Программисты JAVA общаются здесь
1736190073
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/authentication/external/set-up-adc.","message":"Your default credentials were not found. To set up Application Default Credentials for your environment, see https://cloud.google.com/docs/authentication/external/set-up-adc.","name":"java.io.IOException","extendedStackTrace":[{"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/computeMetadata/v1/instance/service-accounts/default/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
- |
echo "Initializing configuration";
cp /keys/app/config.properties /etc/my-app/config.properties;
volumeMounts:
- mountPath: /keys/app/
name: my-app
readOnly: true
- name: key-storage
mountPath: /etc/app/
containers:
- image: my-image:latest
name: dataservice
livenessProbe:
httpGet:
path: /health/live
port: 8080
initialDelaySeconds: 60
periodSeconds: 10
failureThreshold: 2
timeoutSeconds: 5
readinessProbe:
httpGet:
path: /health/ready
port: 8080
initialDelaySeconds: 10
periodSeconds: 10
resources:
requests:
cpu: "1"
memory: "1Gi"
limits:
cpu: "2"
memory: "2Gi"
env:
- name: JAVA_OPTS
value: "-Xmx512m -Xms512m"
ports:
- containerPort: 8080
volumeMounts:
- mountPath: /etc/secrets
name: secrets
readOnly: true
- mountPath: /etc/config
name: config
readOnly: true
dnsPolicy: ClusterFirst
restartPolicy: Always
terminationGracePeriodSeconds: 30
volumes:
- name: secrets
secret:
secretName: my-secrets
- name: config
configMap:
name: my-config
- name: app-config
secret:
secretName: app-config
- name: key-storage
emptyDir: {}
Вот файл serviceaccount.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
name: service-account-experimental
namespace: dataservice
annotations:
iam.gke.io/gcp-service-account: gservice-account-test@my_project_id.iam.gserviceaccount.com
Подробнее здесь: [url]https://stackoverflow.com/questions/79328144/java-application-unable-to-find-adc-when-workload-identity-is-enabled-on-gke-clu[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия