Kubernetes 集群中 Docker 镜像中的环境变量

Posted

技术标签:

【中文标题】Kubernetes 集群中 Docker 镜像中的环境变量【英文标题】:environment variables in Docker images in Kubernetes Cluster 【发布时间】:2019-06-23 05:24:20 【问题描述】:

我正在开发一些 GCP 应用程序,这些应用程序在 GCP 的 Kubernetes 集群中被 dockerized(我是 Docker 和 Kubernetes 的新手)。为了访问某些 GCP 服务,环境变量 GOOGLE_APPLICATION_CREDENTIALS 需要指向凭据文件。是否应设置环境变量并将该文件包含在: - 每个 Docker 映像? - Kubernetes 集群?

GCP 特定的东西 这是实际的错误:com.google.api.gax.rpc.PermissionDeniedException: io.grpc.StatusRuntimeException: PERMISSION_DENIED: Request had enough authentication scopes.

-是否应设置环境变量并将该文件包含在: - 每个 Compute Engine 实例? - 主 GCP 控制台?

而且,最重要的是,如何? :)

【问题讨论】:

【参考方案1】:

您需要创建一个服务帐户(IAM 和管理员 > 服务帐户),为其生成 JSON 格式的密钥,然后为其授予所需的权限(IAM 和管理员 > IAM)。如果您的容器需要访问它,最好将其添加为 kubernetes 中的秘密并将其挂载到您的容器中。然后将环境变量设置为指向您已挂载的密钥:

导出 GOOGLE_APPLICATION_CREDENTIALS="[PATH_TO_SECRET]"

此页面应该可以帮助您:https://cloud.google.com/kubernetes-engine/docs/tutorials/authenticating-to-cloud-platform#step_4_import_credentials_as_a_secret

【讨论】:

以上是关于Kubernetes 集群中 Docker 镜像中的环境变量的主要内容,如果未能解决你的问题,请参考以下文章

如何将应用程序打包到能够在 Kubernetes 中的 Spark 集群上运行的 docker 镜像中?

Docker&Kubernetes ❀ Kubernetes集群安装部署过程与常见的错误解决方法

Docker&Kubernetes ❀ Kubernetes集群安装部署过程与常见的错误解决方法

Docker&Kubernetes ❀ Kubernetes集群资源Pod资源配置清单

Docker&Kubernetes ❀ Kubernetes集群资源Pod资源配置清单

关于Kubernetes image垃圾镜像容器的回收