2020年12月2日 | Leave a comment https://www.cnblogs.com/hellxz/p/13470099.html 阅读目录 本文内容 使用Docker已登录的仓库密文导入 使用命令行创建Secret对象导入 查看Secret创建情况 使用集群中的Secret拉取镜像 本文内容 在K8s中使用需认证的私服仓库需要导入认证信息到集群中,常规导入方式有两种: 使用Docker已登录的仓库密文导入 使用命令行创建Secret对象导入 本文介绍的就是以上两种方法。 使用Docker已登录的仓库密文导入 1、docker login登录私服仓库,输入账号密码 docker login <私服仓库地址> 12 docker login <私服仓库地址> 2、登录成功后,检查是否生成 docker 认证配置文件(生成在当前登录用户家的.docker目录下) cat ~/.docker/config.json 12 cat ~/.docker/config.json 3、通过 ~/.docker/config.json创建Secret对象导入集群 kubectl create secret generic <secret-name> \ --from-file=.dockerconfigjson=~/.docker/config.json \ --<span class="hljs-built_in">type</span>=kubernetes.io/dockerconfigjson 1234 kubectl create secret generic <secret-name> \--from-file=.dockerconfigjson=~/.docker/config.json \--<span class="hljs-built_in">type</span>=kubernetes.io/dockerconfigjson secret-name:k8s Secret的名称标识字段 还有更复杂的方式,请参考官方文档 使用命令行创建Secret对象导入 替换参数并执行 kubectl create secret docker-registry <secret-name> --docker-server=<your-registry-server> --docker-username=<docker-username> --docker-password=<docker-password> --docker-email=<your-email> 12 kubectl create secret docker-registry <secret-name> --docker-server=<your-registry-server> --docker-username=<docker-username> --docker-password=<docker-password> --docker-email=<your-email> secret-name:k8s Secret的名称标识字段 your-registry-server:私服docker仓库地址 docker-username:docker登录用户 docker-password:docker密码 your-email:邮件地址 查看Secret创建情况 kubectl get secret 12 kubectl get secret 使用集群中的Secret拉取镜像 以Pod模板举例: test-private-registry.yaml <span class="hljs-attr">apiVersion:</span> <span class="hljs-string">v1</span> <span class="hljs-attr">kind:</span> <span class="hljs-string">Pod</span> <span class="hljs-attr">metadata:</span> <span class="hljs-attr">name:</span> <span class="hljs-string">test-private-registry</span> <span class="hljs-attr">spec:</span> <span class="hljs-attr">containers:</span> <span class="hljs-bullet">-</span> <span class="hljs-attr">name:</span> <span class="hljs-string">private-reg-container</span> <span class="hljs-attr">image:</span> <span class="hljs-string"><your-registry-server>/tomcat:8.5.34-alpine</span> <span class="hljs-attr">imagePullSecrets:</span> <span class="hljs-bullet">-</span> <span class="hljs-attr">name:</span> <span class="hljs-string"><secret-name></span> 1234567891011 <span class="hljs-attr">apiVersion:</span> <span class="hljs-string">v1</span><span class="hljs-attr">kind:</span> <span class="hljs-string">Pod</span><span class="hljs-attr">metadata:</span> <span class="hljs-attr">name:</span> <span class="hljs-string">test-private-registry</span><span class="hljs-attr">spec:</span> <span class="hljs-attr">containers:</span> <span class="hljs-bullet">-</span> <span class="hljs-attr">name:</span> <span class="hljs-string">private-reg-container</span> <span class="hljs-attr">image:</span> <span class="hljs-string"><your-registry-server>/tomcat:8.5.34-alpine</span> <span class="hljs-attr">imagePullSecrets:</span> <span class="hljs-bullet">-</span> <span class="hljs-attr">name:</span> <span class="hljs-string"><secret-name></span> 注意:在spec中指定imagePullSecrets的name为之前Secret的名称即可 kubectl apply -f test-private-registry.yaml 12 kubectl apply -f test-private-registry.yaml