目录
在学习K8S的时候,令人头疼的问题:在设置镜像拉取策略为always、ifnotpresent时,K8S会默认从官方镜像库进行镜像拉取,而由于网络的问题,导致K8S拉取镜像大部分都会失败
harbor仓库搭建:docker私人仓库

搭建好harbor仓库并上传一个nginx镜像以供本篇测试

因为pod一般不会创建在K8S的master节点。这里我们在node节点上修改docker配置文件
vim /usr/lib/systemd/system/docker.service
- ExecStart=/usr/bin/dockerd -H unix://
-
- ExecStart=/usr/bin/dockerd --insecure-registry harbor仓库IP ***
-
- systemctl daemon-reload
- systemctl restart docker
每个node节点都登录上harbor
docker login -u admin -p 241567 192.168.116.22

cat /root/.docker/config.json | base64 -w 0
复制这一段加密凭据
- vim harbor-pull-secret.yaml
-
- apiVersion: v1
- kind: Secret
- metadata:
- name: harbor-pull-secret
- data:
- .dockerconfigjson:
- #粘贴上述查看的登陆凭据
- type: kubernetes.io/dockerconfigjson
创建secret资源
kubectl apply -f harbor-pull-secret.yaml
yaml:
- apiVersion: apps/v1
- kind: Deployment
- metadata:
- labels:
- app: my-dep
- name: my-dep
- spec:
- replicas: 3
- selector:
- matchLabels:
- app: my-dep
- template:
- metadata:
- labels:
- app: my-dep
- spec:
- imagePullSecrets:
- - name: registry-pull-secret
- containers:
- - image: 192.168.116.22/k8s/nginx
- name: nginx
kubectl apply -f nginx.yaml
kubectl describe po my-dep-dc78766f-mxtnq

镜像拉取成功,下载次数增加(提前做好的,就当增加了)
