四、在k8s中使用harbor仓库
修改每个node上的docker认证仓库
将每个node节点上的docker同样需要配置可信任仓库
vi /etc/docker/daemon.json
#修改为
{"registry-mirrors": ["http://a58c8480.m.daocloud.io"],
"insecure-registries": ["10.1.210.33"]} (harbor地址)
#重启docker
systemctl restart docker
复制代码
创建认证secret
由于harbor采用了用户名密码认证,所以在镜像下载时需要配置sercet
#创建
kubectl create secret docker-registry registry-secret --namespace=default
--docker-server=10.1.210.33
--docker-username=admin
--docker-password=Harbor12345
#查看secret
[root@master demo]# kubectl get secret
NAME TYPE DATA AGE
default-token-gdwgn kubernetes.io/service-account-token 3 2d18h
registry-secret kubernetes.io/dockerconfigjson 1 116s
#删除
kubectl delete secret registry-secret
以一个部署一个nginx为例子,其中需要把containers中的images镜像指定为harbor仓库镜像地址,并且使用创建的的secret。
# kubectl create -f nginx.yml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
appname: nginx
spec:
replicas: 3
selector:
matchLabels:
appname: nginx
template:
metadata:
labels:
appname: nginx
spec:
containers:
- name: nginx
image: 10.1.210.33/project1/nginx:latest #镜像地址
ports:
- containerPort: 80
imagePullSecrets: #使用的secret
- name: registry-secret