Kubernetes 配置Pod和容器(八) 拉取私有仓库镜像

从一个私有的仓库拉取镜像

登录Docker

docker login

当出现提示的时候,输入Docker的用户名和密码。

登录的过程创建或更新config.json文件来保存验证信息。

查看config.json文件:

cat ~/.docker/config.json

输出包含下面类似的部分:

{
    "auths": {
        "https://index.docker.io/v1/": {
            "auth": "c3R...zE2"
        }
    }
}

新建一个Secret保存验证信息

新建一个名字为regsecret的Secret:

kubectl create secret docker-registry regsecret --docker-server= --docker-username= --docker-password= --docker-email=

参数解释

  • Docker私有的镜像存储地址。
  • 仓库的用户名。
  • 仓库的密码。
  • 仓库的email。

理解Secret

可以通过查看Secret YAML格式的试图来理解在Sercet创建了什么。

kubectc get secret regsecret --output=yaml

输出类似于下面:

apiVersion: v1
data:
  .dockercfg: eyJodHRwczovL2luZGV4L ... J0QUl6RTIifX0=
kind: Secret
metadata:
  ...
  name: regsecret
  ...
type: kubernetes.io/dockercfg

.dockercfg字段的值是base64编码过得数据。

复制这个数据给一个名字为secret64的文件。

理解.dockercfg字段的内容是什么,可以转换成可读的格式。

base64 -d secret64

输出类似于下面:

{"yourprivateregistry.com":{"username":"janedoe","password":"xxxxxxxxxxx","email":"[email protected]","auth":"c3R...zE2"}}

注意 秘密数据包含config.json文件里面的验证信息。

创建一个Pod使用你的Secret

下面是一个pod的配置文件需要访问秘密数据:

apiVersion: v1
kind: Pod
metadata:
  name: private-reg
spec:
  containers:
    - name: private-reg-container
      image: 
  imagePullSecrets:
    - name: regsecret

替换成自己的私有仓库的镜像。

例如:

janedoe/jdoe-private:v1

从私有的镜像仓库拉取镜像Kubernetes需要认证信息。imagePullSecrets字段配置从名字为regsecret的Secret里面获取认证信息。

创建一个Pod使用Secret,并且验证Pod是否运行。

kubectl create -f my-private-reg-pod.yaml
kubectl get pod private-reg

你可能感兴趣的:(Kubernetes 配置Pod和容器(八) 拉取私有仓库镜像)