0

Google kubernetes 엔진에 Java 응용 프로그램을 배포하고 있습니다. 응용 프로그램이 올바르게 시작되지만 데이터를 요청할 때 실패합니다. 예외는 "DatastoreException, 누락 또는 불충분 한 권한"입니다. "Owner"역할을 가진 서비스 계정을 만들고 kubernetes에 서비스 계정 키를 제공했습니다. 여기에 내가는 Kubernetes 배포를 적용하는 방법 :kubernetes 응용 프로그램이 DatastoreException을 throw합니다. 사용 권한이 없거나 충분하지 않습니다. 서비스 키 파일 제공

여기
# delete old secret 
kubectl delete secret google-key --ignore-not-found 
# file with key 
kubectl create secret generic google-key --from-file=key.json 
kubectl apply -f prod-kubernetes.yml 

배포 설정은 다음과 같습니다가 작동하지 않는 이유

apiVersion: v1 
kind: Service 
metadata: 
    annotations: 
    service.alpha.kubernetes.io/tolerate-unready-endpoints: "true" 
    name: user 
    labels: 
    app: user 
spec: 
    type: NodePort 
    ports: 
    - port: 8000 
    name: user 
    targetPort: 8000 
    nodePort: 32756 
    selector: 
    app: user 
--- 
apiVersion: extensions/v1beta1 
kind: Deployment 
metadata: 
    name: userdeployment 
spec: 
    replicas: 1 
    template: 
    metadata: 
     labels: 
     app: user 
    spec: 
     volumes: 
     - name: google-cloud-key 
     secret: 
      secretName: google-key 
     containers: 
     - name: usercontainer 
     image: gcr.io/proj/user:v1 
     imagePullPolicy: Always 
     volumeMounts: 
     - name: google-cloud-key 
      mountPath: /var/secrets/google 
     env: 
     - name: GOOGLE_APPLICATION_CREDENTIALS 
      value: /var/secrets/google/key.json 
     ports: 
     - containerPort: 8000 

내가 궁금해? 이전 배치에서이 구성을 사용했고 성공했습니다. UPD : 포드에 /var/secrets/google/key.json이 있는지 확인했습니다. Files.exists (System.getEnv ("GOOGLE_APPLICATION_CREDENTIALS"))를 인쇄하여 로깅합니다. 또한이 파일의 내용을 인쇄합니다. 손상되지 않은 것 같습니다.

답변

0

이유가 잘못되었습니다. GOOGLE_CLOUD_PROJECT이 (가)

관련 문제