k8s集群
CONTAINER-RUNTIME 指定的k8s容器运行时contianerd的版本、
1:写hosts文件
harbor我已经提前搭建好了。
2:
在k8s集群的控制节点和工作节点都安装docker,用于做镜像 push到harbor
yum install docker-ce -y
安装docker可以参考docker-ce镜像_docker-ce下载地址_docker-ce安装教程-阿里巴巴开源镜像站 (aliyun.com)
3:
编写/etc/docker/daemon.json
registry-mirrors 中指定的都是一些镜像仓库地址
insecure-registries 指定的是harbor的地址和用户名
4:重启docker测试连接harbor
systemctl restart docker
登录harbor
docker login 192.168.8.170
harbor 默认账户名密码是admin Harbor12345
显示Login Succeeded说明登录成功
5:测试推送拉取harbor仓库中的镜像
比如说推送一个nginx镜像,我们需要先拉取一个
docker pull nginx
拉取下来之后docker images 查看一下
之后给镜像基于harbor ip地址打标签
/web/是harbor上面的项目名字 nginx:v2是镜像的名字和标签
之后push推送上去
docker push
可以看到确实已经有了
标签也是正确的
6:
创建deployment资源测试一下,从harbor拉取镜像创建pod
vim test.yaml
imagePullPolicy: Always # 定义镜像拉取策略,Always 表示每次启动容器时都会尝试拉取最新镜像,这里我们指定的是harbor的镜像名称,他会根据ip地址寻找harbor从而拉取镜像 kubectl apply -f test.yaml
创建完成之后查看 kubectl get pods
查看详细信息 kubectl describe pod nginx-deploy-6fbf4d787-7rjzk
可以看到确实是从harbor拉取的镜像从而创建的pod