相关疑难解决方法(0)

如何在通过Kubernetes运行的GKE上设置GOOGLE_APPLICATION_CREDENTIALS

在kubernetes的帮助下,我在GKE上运行日常工作.每天基于kubernetes中配置的cron,一个新容器旋转并尝试将一些数据插入到BigQuery中.

我们拥有的设置是我们在GCP中有两个不同的项目在一个项目中我们在其他项目中维护BigQuery中的数据我们所有的GKE都在运行所以当GKE必须与不同的项目资源交互时我的猜测是我必须设置一个环境名称为GOOGLE_APPLICATION_CREDENTIALS的变量,指向服务帐户json文件,但由于每天kubernetes正在启动一个新容器,我不知道应该如何以及在何处设置此变量.

提前致谢!

注意:drone-gke插件将此文件解析为golang模板.

---
apiVersion: v1
kind: Secret
metadata:
  name: my-data-service-account-credentials
type: Opaque
data:
  sa_json: "bas64JsonServiceAccount"
---
apiVersion: v1
kind: Pod
metadata:
  name: adtech-ads-apidata-el-adunit-pod
spec:
  containers:
  - name: adtech-ads-apidata-el-adunit-container
    volumeMounts:
    - name: service-account-credentials-volume
     mountPath: "/etc/gcp"
     readOnly: true
  volumes:
  - name: service-account-credentials-volume
    secret:
      secretName: my-data-service-account-credentials
      items:
      - key: sa_json
        path: sa_credentials.json
Run Code Online (Sandbox Code Playgroud)

这是我们用于加载AdUnit数据的cron作业

apiVersion: batch/v2alpha1
kind: CronJob
metadata:
  name: adtech-ads-apidata-el-adunit
spec:
  schedule: "*/5 * * * *"
  suspend: false
  concurrencyPolicy: Replace
  successfulJobsHistoryLimit: 10
  failedJobsHistoryLimit: 10
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - …
Run Code Online (Sandbox Code Playgroud)

kubernetes google-kubernetes-engine

10
推荐指数
1
解决办法
2678
查看次数

如何在 google kubernetes 引擎上设置环境变量?

Firebase我在GoLang托管的项目中使用Google Kubernetes Engine.

我遵循的步骤:

  1. 在 firebase 帐户上启用 firebase admin SDK。JSON它为我生成了一个服务帐户。这还在我的 Google 控制台服务凭证下创建了一个服务帐户。

  2. 按照这个答案并使用添加新的密钥kubectl create secret generic google-application-credentials --from-file=./sample-project.json

  3. 对我的文件进行了更改deployment.YAML(添加了卷安装和环境变量)

    spec:
      containers:
      - image: gcr.io/sample-ee458/city:0.27
      name: city-app
      volumeMounts:
      - name: google-application-credentials-volume
        mountPath: /etc/gcp
        readOnly: true 
    env:
    - name: GOOGLE_APPLICATION_CREDENTIALS
      value: /etc/gcp/application-credentials.json
    
    Run Code Online (Sandbox Code Playgroud)
  4. 在同一文件中设置音量

    volumes:
    - name: google-application-credentials-volume
    secret:
      secretName: google-application-credentials
      items:
      - key: application-credentials.json # default name created by the create secret from-file command
      path: application-credentials.json
    
    Run Code Online (Sandbox Code Playgroud)
  5. 使用命令运行kubectl apply -f …

docker google-cloud-platform kubernetes google-kubernetes-engine

4
推荐指数
1
解决办法
8786
查看次数