【问题标题】:Accessing project specific resources in other projects in Google Kubernetes Engine访问 Google Kubernetes Engine 中其他项目中的项目特定资源
【发布时间】:2018-08-17 00:55:59
【问题描述】:

(我不确定这是否是常见要求,或者我要求破解,但无论如何我都会尝试)

我们在 Google Kubernetes Engine 上为每个开发者部署不同的项目,所有项目都在同一个结算帐号下。例如,我的开发项目是kp-dev-project,而我的一位团队成员是xyz-dev-project。我们还有一个用于集成部署的“通用”项目,称为intg-project

我们在intg-project下创建了两个资源:

  1. 一个容器注册表 (gcr.io/intg-project),我们的 CI 管道在其中推送图像;例如grc.io/intg-project/hello:1.0
  2. Google Cloud DNS 下名为 dev.example.com 的托管区域

问题来了:

在 GKE 中有没有办法从 other 项目中引用在“公共”项目中创建的资源?例如,在开发时,我将gcloud 配置设置为我自己的配置文件kp-dev-profile。如果我尝试部署引用来自 grc.io/intg-project/hello:1.0 的图像的 Kube 规范,则会收到如下所示的错误:

Failed to pull image "gcr.io/intg-project/hello:1.0": rpc error: code = Unknown desc = Error response from daemon: repository gcr.io/intg-project/hello not found: does not exist or no pull access

同样,如果我尝试使用 gcloud dns managed-zones list 列出所有托管区域,我看不到托管区域 dev.example.com

只要我将我的个人资料更改为intg-profile,或将我的kp-dev-profile 个人资料中的项目设置为intg-project,我就可以访问这两种资源。 注意:,我在 Google IAM 中的用户拥有必要的权限(事实上,我实际上是 intg-project 的“所有者”)

有点意思:Google 将每个“项目”创建为一个独立的资源沙箱,并且不会在项目之外公开任何资源。

但也许,它确实没有有意义:“项目”听起来很像 me 的沙盒机制,以保持我的开发人员的工作独立于一个独立的,同时仍希望利用一个公共托管区域和一个公共容器注册表。

有什么想法吗?

更新

我能够使用 GCP 服务帐户密钥和 Docker 机密将 Google Container Registry 配置为“外部”私有 Docker 注册表。所有致谢this article on Heptio.com

【问题讨论】:

    标签: kubernetes google-container-registry google-kubernetes-engine google-cloud-dns


    【解决方案1】:

    专门的 CI/CD 云项目构建、推送、测试 Docker 映像,并在每个 Google Kubernetes Engine 环境中不断部署新版本的映像。

    这些环境是在单独的项目下提供的,例如开发、登台和生产。

    您所说的共同管理区域是什么意思?你能告诉我更多细节吗?

    是的,您可以利用通用容器注册表。

    您可以授予对另一个项目的拉取访问权限 有关详细信息,请参阅随附的链接 [1],

    [1]https://googlecloud.tips/tips/029-cross-project-container-registry/

    您还可以查看有关使用共享 VPC 设置集群的文档 [2]。您将一个项目指定为宿主项目,您可以将其他项目(称为服务项目)附加到宿主项目。您可以将共享 VPC 与地区和区域集群一起使用。

    [2]https://cloud.google.com/kubernetes-engine/docs/how-to/cluster-shared-vpc

    您还可以为命令指定 --project 参数以针对该调用针对不同的项目进行操作。

    此外,您可以授予用户和其他项目对注册表的访问权限,有关详细信息,请参阅链接 [3]

    [3]https://cloud.google.com/container-registry/docs/access-control#granting_users_and_other_projects_access_to_a_registry

    【讨论】:

    • 链接 [1] 不再存在
    猜你喜欢
    • 1970-01-01
    • 2016-12-28
    • 2013-03-13
    • 1970-01-01
    • 1970-01-01
    • 2012-03-04
    • 1970-01-01
    • 2020-08-20
    • 1970-01-01
    相关资源
    最近更新 更多