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密钥