开心学k8s无需登录自动下载harbor镜像-爱代码爱编程
目标:
实现k8s下载镜像无需登录harbor
环境规划
主机名 | IP |
---|---|
master | 172.16.0.168 |
node01 | 172.16.0.169 |
node02 | 172.16.0.170 |
提示:软件及环境必须一致,否则,某些版本可能不支持,此项功能
各服务版本
K8s v1.18.0
docker-compose version 1.28.2
下载地址:https://github.com/docker/compose/releases
harbor-offline-installer-v2.3.1
https://github.com/goharbor/harbor/releases?page=2
步骤:
1、安装docker-compse工具
重命名:mv docker-compose-Linux-x86_64 docker-compose
移动到命令默认搜索路径:mv docker-compose /usr/local/bin/
chmod +x /usr/local/bin/docker-compose
查看版本:
docker-compose -v
2、 部署harbor
1)解压
tar -zxf harbor-offline-installer-v2.3.1.tgz -C /usr/local/
2)修改配置
cp -a harbor.yml.tmpl harbor.yml
vim harbor.yml (需要修改hostname为自己的IP或域名,不启用https,就注释掉13-18行,harbor_admin_password登录时需要的密码)
集群所有主机都要编辑docker配置文件(添加为信任,保障可以使用harbor)
vim /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
–insecure-registry 172.16.0.170
重载内核、重启docker
systemctl daemon-reload
systemctl restart docker
在解压目录下安装
[root@node02 harbor]# ./install.sh
3、 登录harbor
浏览器访问:http://172.16.0.170/harbor默认用户名:admin 密码:Harbor12345
1)创建项目
2)上传镜像
master登录harbor:
添加标签:
上传:
docker push 172.16.0.170/qps/nginx:v1.0
登录页面也可以看到:
4、k8s的master 添加登录信息
创建secret:K8S集群需要通过 docker-registry 类型的 secret 来设置拉取镜像的用户名和密码等登录信息,本文件中部署的Harbor私有镜像仓库的地址为172.16.0.170,登录名为 admin, 登录密码为 Harbor12345
1)在K8S集群的master节点中执行以下命令以使用上述登录信息创建一个名称为k8s-auth的secret,执行结果如下图所示。
vim
kubectl create secret docker-registry login \
--docker-server=172.16.0.170 \
--docker-username=admin \
--docker-password=Harbor12345
2)创建pod,K8S集群使用上述创建的名称为login的secret登录信息到Harbor私有镜像仓库中拉取该镜像
vim a.yaml
apiVersion: v1
kind: Pod
metadata:
name: test-harbor-pod-2
spec:
containers:
- name: nginx
image: 172.16.0.170/qps/nginx:v1.0
command: [ "/bin/sh", "-c", "echo hello world" ]
imagePullSecrets:
- name: login
restartPolicy: Never
3)应用yaml
kubectl apply -f a.yaml
4 )验证:
查看运行日志:执行以下命令以查看该Pod的运行日志,在运行时成功的打印出了 hello world 这一句话。