在 Pod 和部署规范中创建注册表凭据密钥和引用,以便可以正确提取容器映像。

Docker Hub 需要帐户才能从中提取映像。您可以使用 Docker Hub 凭据创建 Kuberentes 密钥,并在 Pod 和部署规范中引用此密钥。

此方法还可用于其他专用注册表。

前提条件

在 Ubuntu 客户端计算机上安装 Docker。请参见https://docs.docker.com/engine/install/ubuntu/

过程

  1. 运行 docker version 并验证 Docker 是否已安装。
  2. 运行 docker login -u USERNAME
  3. 输入 Docker Hub 密码。
  4. 运行 cat ~/.docker/config.json
  5. 运行以下命令以创建一个名为 regcred 的包含 Docker Hub 访问凭据的通用密钥。
    kubectl create secret generic regcred \
        --from-file=.dockerconfigjson=/home/ubuntu/.docker/config.json \
        --type=kubernetes.io/dockerconfigjson
    
    您应看到 secret/regcred created
  6. 验证密钥。
    kubectl get secrets
    
    NAME                  TYPE                                  DATA   AGE
    default-token-w7wqk   kubernetes.io/service-account-token   3      6h28m
    regcred               kubernetes.io/dockerconfigjson        1      3h22m
    
    在 YAML 中引用 regcred 密钥。
  7. 在容器映像的 Pod 或部署规范的 imagePullSecrets 部分中引用 regcred 密钥。
    例如:
    apiVersion: v1
    kind: Pod
    metadata:
      name: ping-pod
      namespace: default
    spec:
      containers:
      - image: busybox:1.34
        name: busybox
        command: ["ping", "-c"]
        args: ["1", "8.8.8.8"]
      imagePullSecrets:
      - name: regcred
      restartPolicy: Never