如果我们的镜像位于私有镜像仓库,比如阿里、Coding.net 等,直接拉取注定会失败,因为这时 kubernetes 还没有这些私有镜像仓库的认证信息,也不会尝试登录。
所以,在部署前我们要预先吧私有镜像仓库的认证信息告诉 kubernetes,而告诉 kubernetes 的方式就是配置一个类型为 dockerconfigjson
的 Secret
首次创建 Secret
假设 Secret 取名为 coding-imooc,首次在 dev 命名空间内创建,则使用如下命令:
kubectl create secret docker-registry coding-imooc -n dev \ |
创建成功后可以用如下命令验证:
kubectl get secret -A | grep coding-imooc |
PS:如何使用?
利用 imagePullSecrets
字段使用 Secret:
apiVersion: v1 |
当然,得保证你的 Pod 部署命名空间和 Secret 的命名空间是一致的才行!
拷贝已有的 Secret 到其它命名空间
第一步:提取已有的 Secret 到 yaml 文件
我们可以先尝试看一下已有的 Secret 的内容:
kubectl get secret coding-imooc -o yaml -n dev |
可能打印如下信息:
apiVersion: v1 |
将其保存到 some.yaml
文件中:
kubectl get secret coding-imooc -o yaml -n dev > some.yaml |
删除掉 creationTimestamp
、namespace
、resourceVersion
和 uid
几行,精简之后如下:
apiVersion: v1 |
第二步:利用 yaml 文件在其它命名空间内重新创建 Secret
# test 命名空间 |