K8S使用habor作为私有仓库
1、修改每个node上的docker认证仓库
# 将每个node节点上的docker同样需要配置可信任仓库
vi /etc/docker/daemon.json #修改为
{
"registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"],
"insecure-registries": ["192.168.66.11"]}systemctl restart docker
2、创建认证secret
# 由于harbor采用了用户名密码认证,所以在镜像下载时需要配置sercet
[root@k8s-master ~]#  kubectl create secret docker-registry harbor --namespace=default --docker-server=192.168.66.11 --docker-username=admin --docker-password=Harbor12345
secret/harbor created
#查看secret
[root@k8s-master ~]# kubectl get secret
NAME                  TYPE                                  DATA   AGE
default-token-rk6g7   kubernetes.io/service-account-token   3      10h
harbor                kubernetes.io/dockerconfigjson        1      15m
#删除
kubectl delete secret harbor
3、部署示例
# 以一个部署一个nginx为例子,其中需要把containers中的images镜像指定为harbor仓库镜像地址,并且使用创建的的secret。
# kubectl create -f nginx.yml
apiVersion: apps/v1      #指定api版本标签
kind: Deployment            #定义资源的类型/角色,deployment为控制器
metadata:                  #定义资源的元数据信息name: nginx-test        #定义资源的名称,在同一个namespace空间中必须是唯一的labels:                 #定义资源标签app: nginx  
spec:        replicas: 3          #定义副本数量selector:                #定义选择器matchLabels:           #匹配上面的标签app: nginx           #匹配模板名称template:                #定义模板metadata:   labels:app: nginxspec:containers:                #定义容器信息- name: nginx                  #容器名,与标签名要相同image: 192.168.66.11/project/nginx:test   #容器使用的镜像以及版本imagePullSecrets:        #使用的secret- name: harbor          #使用前面创建的secret密钥