Kubernetes & Gitlab:如何存储私有注册表的密码?

Kla*_*aus 2 gitlab docker kubernetes

我想运行托管在 Kubernetes 集群上的私有容器注册表中的应用程序。我按照此处的说明创建了一个像这样的秘密:

kubectl create secret docker-registry regcred --docker-server=<your-registry-server> \
      --docker-username=<your-name> \
      --docker-password=<your-pword> \
      --docker-email=<your-email>
Run Code Online (Sandbox Code Playgroud)

在我的部署中使用它是这样的:

      containers:
      - image: registry.gitlab.com/xxxxx/xxxx
        name: dockerdemo
        resources: {}
      imagePullSecrets:
      - name: regcred
Run Code Online (Sandbox Code Playgroud)

K8s 现在可以从我的私有注册表中提取映像。无论如何,我对我的用户和密码以纯文本形式存储在集群中感到不舒服。是否有更好/更安全的方法让 K8s 集群通过令牌访问注册表?

Kla*_*aus 7

因此,我使用Gitlab,据我所知,解决方案不是将我的用户凭据存储在 Kubernetes 中。相反,我使用的是可以随时删除的部署令牌,并且只能访问容器注册表。

这里需要执行以下步骤:

  • 打开 Gitlab 并转到您的项目
  • 设置 > 存储库 > 部署令牌
  • 创建具有范围的令牌read_registry
  • 在K8S中创建secret:kubectl create secret docker-registry regcred --docker-server=registry.gitlab.com --docker-username=<token_username> --docker-password=<token> -n <kubernetes_namespace>

感谢@Jonas 提供的链接,但这个解决方案正是我正在寻找的。