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: nginx
    spec:
      containers:                #定义容器信息
      - name: nginx                  #容器名,与标签名要相同
        image: 192.168.66.11/project/nginx:test   #容器使用的镜像以及版本
      imagePullSecrets:        #使用的secret
       - name: harbor          #使用前面创建的secret密钥

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐