📌  相关文章
📜  如何为 helm values.yaml 传递 docker hub 凭据 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:37:53.615000             🧑  作者: Mango

如何为 Helm values.yaml 传递 Docker Hub 凭据

在使用 Helm 管理 Kubernetes 应用程序时,有时需要传递 Docker Hub 凭据来访问私有 Docker Hub 镜像仓库。本文将介绍如何在 Helm values.yaml 文件中传递 Docker Hub 凭据。

步骤

以下是传递 Docker Hub 凭据的步骤:

第一步:创建 Docker Hub 凭据

在 Docker Hub 上创建凭据。可以使用以下命令将凭据保存到 docker-credentials.json 文件中:

$ echo '{"auths": {"https://index.docker.io/v1/": {"auth": "BASE64_ENCODED_USERNAME_AND_PASSWORD"}}}' > docker-credentials.json

BASE64_ENCODED_USERNAME_AND_PASSWORD 替换为 Base64 编码后的 Docker Hub 用户名和密码。

第二步:创建 Secret

使用 kubectl create secret docker-registry 命令创建 Secret,将 docker-credentials.json 文件内容传递到 Kubernetes 集群中:

$ kubectl create secret docker-registry myregistrykey --docker-server=https://index.docker.io/v1/ --docker-username=DOCKER_USERNAME --docker-password=DOCKER_PASSWORD --docker-email=DOCKER_EMAIL --from-file=.dockerconfigjson=docker-credentials.json

myregistrykey 替换为需要创建的 Secret 名称,DOCKER_USERNAMEDOCKER_PASSWORDDOCKER_EMAIL 替换为 Docker Hub 用户名、密码和电子邮件地址。--docker-server 参数应设置为 https://index.docker.io/v1/

第三步:在 values.yaml 文件中使用 Secret

在 Helm chart 的 values.yaml 文件中,可以将 Docker Hub 凭据作为 Secret 使用。以下是 values.yaml 文件的示例:

image:
  repository: myrepository
  tag: latest
  pullSecrets:
    - name: myregistrykey

myregistrykey 替换为第二步中创建的 Secret 名称。当 Helm 安装或更新 chart 时,将使用这个 Secret 从 Docker Hub 下载镜像。

结论

在 Helm chart 中传递 Docker Hub 凭据是一项非常重要的任务。通过创建 Secret,并在 values.yaml 文件中使用它,可以轻松地将 Docker Hub 凭据传递给 Kubernetes 集群,以验证和下载私有 Docker Hub 镜像。