我们目前使用的containerd,之前有在config.toml文件中配置私有仓库镜像拉取所需要的账户和密码,实际我们也可以在k8s中配置拉取镜像的认证问题,这样可以不用动config.toml的配置也能拉取到镜像。
实际上有两种方法也可以在k8s中拉取镜像所需的登录状态或者是拉取镜像的凭证
1.使用secret仓库认证信息拉取镜像
1.1.创建Secret
创建Secret类型的资源来存储镜像仓库信息,注意Secret需要和后面引用secret资源的pod命名空间空间一致kubectl create secret -n <namespace> private-registry-secret \
--docker-server=10.0.1.184:30002 \
--docker-username=admin \
--docker-password=admin12345
1.2.验证Secret
kubectl get secret -n <namespace> private-registry-secret -o yaml
1.3.在pod中引用
然后就可以在镜像中进行引用了,大致示例如下:apiVersion: v1
kind: Pod
metadata:
name: private-pod
namespace: <namespace>
spec:
containers:
- name: app
image: 10.0.1.184:30002/test/ubuntu:latest
imagePullSecrets:
- name: private-registry-secret
2.通过SA自动关联Secret
2.1.创建SA并关联Secret
所有使用该SA的Pod会自动继承镜像拉取凭据,注意需要创建的sa和pod命名空间一致。kubectl create serviceaccount -n <namespace> registry-sa
kubectl patch serviceaccount -n <namespace> registry-sa \
-p '{"imagePullSecrets": [{"name": "private-registry-secret"}]}'
2.2.验证SA配置
kubectl describe serviceaccount registry-sa -n <namespace>
2.3.在pod中引用
apiVersion: v1
kind: Pod
metadata:
name: sa-private-pod
namespace: <namespace>
spec:
serviceAccountName: registry-sa
containers:
- name: app
image: 10.0.1.184:30002/test/ubuntu:latest
实际以上两种方式都需要创建Secret,推荐的话一般使用第二种方式。
内容版权声明:除非注明,否则皆为本站原创文章。
转载注明出处:https://sulao.cn/post/1122
相关阅读
- Redis如何查看key的缓存剩余时间和key值大小
- k8s使用flannel作为CNI网络插件
- k8s中harbor-database-0日志报Permissions should be u=rwx (0700)的处理方法
- k8s使用helm部署harbor镜像仓库并使用nodeport方式暴露
- linux下使用私钥生成公钥
- k8s集群部署prometheus/node-exporter/dcgm-exporter
- k8s中calico匹配多种网络接口名字的方法
- ubuntu22.04使用containerd部署k8s集群
- k8s集群kube-proxy从iptables模式切换到ipvs模式
- k8s级联删除(删除deployment却删除不了rs和pod)异常问题的处理办法
评论列表