开心学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登录时需要的密码)
开心学k8s无需登录自动下载harbor镜像_第1张图片
集群所有主机都要编辑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
开心学k8s无需登录自动下载harbor镜像_第2张图片

3、 登录harbor
浏览器访问:http://172.16.0.170/harbor默认用户名:admin 密码:Harbor12345
1)创建项目
开心学k8s无需登录自动下载harbor镜像_第3张图片
2)上传镜像
master登录harbor:
开心学k8s无需登录自动下载harbor镜像_第4张图片
添加标签:
在这里插入图片描述
上传:

docker push 172.16.0.170/qps/nginx:v1.0
登录页面也可以看到:
开心学k8s无需登录自动下载harbor镜像_第5张图片

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 这一句话。
开心学k8s无需登录自动下载harbor镜像_第6张图片


你可能感兴趣的:(云计算-虚拟化,云计算-K8S,docker,linux,容器,云计算,kubernetes)