当前位置: 首页 > 知识库问答 >
问题:

使用Helm图表不能从Rancher部署访问私有注册表

濮阳旭东
2023-03-14

我可以在Resources->Registrys中定义azure注册表凭据并对其进行身份验证以创建工作负载。(工作负载访问私有azure注册表,并使用凭据集对其进行身份验证)

现在,如果我创建一个Helm图表,访问同一个私有Azure注册表来提取映像并创建一个pod,它会失败,表示无法提取docker映像。我对此进行了研究,发现K8s部署可以找到Rancher UI中设置的凭据,但kublet没有访问该凭据的权限。

人们通常给出的建议是使用help chart部署文件中的秘密,这也是可行的,但这是一个安全问题,因为任何人都可以访问helm chart来查找其中描述的azure凭据。我觉得这在Rancher V2中仍然是一个常见的问题。

我不确定Rancher community是否也有答案,因为helm repo也提出了同样的解决方案。请参阅(https://github.com/helm/helm/blob/master/docs/charts_tips_and_tricks.md#creating-image-pull-secrets)

我不想在下面提到的Helm chart的deployement.yaml文件中定义映像拉取机密

  name: credentials-name
  registry: private-docker-registry
  username: user
  password: pass

共有1个答案

柴坚诚
2023-03-14

当您在当前项目中的Resources->Registrys下配置一组新的注册表凭据时,Rancher会为您创建一个Kubernetes秘密资源,它持有指定的凭据。

您可以通过运行以下命令来验证秘密是否存在于属于项目的所有命名空间中:

$ kubectl get secrets -n <some-project-namespace>

然后--而不是在部署中持久化明文帐户凭据--您将引用容器规范中的秘密资源,如下所示:

spec:
  containers:
  - name: mycontainer
    image: myregistry.azurecr.io/org/myimage
  imagePullSecrets:
  - name: project-azure-reg-creds
 类似资料:
  • 我正在尝试将一个图像推送到我的docker私有存储库: Docker告诉我: push引用存储库[living-registry.com:5000/busybox]Get https://living-registry.com:5000/v1/_ping:read tcp 195.83.122.16:39714->195.83.122.16:5000:read:对等体重置连接 这些命令正在Core

  • 我在用户X和存储库名称Y下有一个私有存储库: https://github.com/X/Y 这是一个用Gradle构建的Java项目。 Gradle配置文件已按照官方Github软件包注册表文档中的说明进行配置,我能够成功发布我的软件包: https://help.github.com/en/articles/configuring-gradle-for-use-with-github-packa

  • 问题内容: 我运行了一个私有Docker注册表,我想从存储库中删除除之外的所有图像。我不想删除整个存储库,仅删除其中的一些图像。该API文档不提一个办法做到这一点,但肯定这是可能的? 问题答案: 当前,您无法将注册表API用于该任务。它仅允许您删除存储库或特定标签。 通常,删除存储库意味着删除与此仓库关联的所有标签。 删除标签意味着删除图像和标签之间的关联。 以上所有都不删除单个图像。它们留在您的

  • 问题内容: 我已经建立了一个4节点kubernetes集群,该集群运行都在CoreOS上运行的多容器Pod。这些图像来自公共和私人存储库。现在,我必须登录到每个节点,并在每次更新图像时手动下拉图像。我希望能够自动将其拉出。 我试过在每台服务器上运行docker登录并将.dockercfg文件放在/ root和/ core中 我也使用.docker / config.json完成了上述操作 我已将密

  • 目前,我正试图通过创建Helm图表,在Kubernetes集群上部署我的微服务endpointDocker映像。为此,我创建了图表,并更改了values.yaml和deployment.yaml中的参数以进行端口更改。而且我还想从我的角前端访问。所以我添加了service type=nodeport。当我描述该服务时,它给了我可访问的端口。 我访问了http://node-ip:30983/end

  • 本文向大家介绍使用Python的Windows注册表访问(Winreg),包括了使用Python的Windows注册表访问(Winreg)的使用技巧和注意事项,需要的朋友参考一下 作为一种通用的语言,以及大量用户支持的模块的可用性,我们发现python在操作系统级别的编程方面也很擅长。在本文中,我们将看到python如何访问Windows操作系统的注册表。 我们需要将名为winreg的模块导入py