在 Pod 和部署规范中创建注册表凭据密钥和引用,以便可以正确提取容器映像。
Docker Hub 需要帐户才能从中提取映像。您可以使用 Docker Hub 凭据创建 Kuberentes 密钥,并在 Pod 和部署规范中引用此密钥。
此方法还可用于其他专用注册表。
过程
- 运行
docker version
并验证 Docker 是否已安装。
- 运行
docker login -u USERNAME
。
- 输入 Docker Hub 密码。
- 运行
cat ~/.docker/config.json
。
- 运行以下命令以创建一个名为
regcred
的包含 Docker Hub 访问凭据的通用密钥。
kubectl create secret generic regcred \
--from-file=.dockerconfigjson=/home/ubuntu/.docker/config.json \
--type=kubernetes.io/dockerconfigjson
您应看到
secret/regcred created
。
- 验证密钥。
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 密钥。
- 在容器映像的 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