K8S 的 harbor私有仓库搭建

纯步骤
基于上次已经搭建好的K8S多节点,搭建K8S的harbor私有仓库

开一台服务器,搭建harbor

一:harbor服务端配置

需安装 Python、 Docker 和Docker Compose、harbor
1:基本环境配置

固定IP地址 # vim /etc/sysconfig/network-scripts/ifcfg-ens33 修改并添加: dhcp改为static 添加: IPADDR=192.168.195.80 NETMASK=255.255.255.0 GATEWAY=192.168.195.2 DNS1=192.168.195.2 # systemctl restart network # systemctl stop NetworkManager # systemctl disable NetworkManager # iptables -F 关闭核心防护 # setenforce 0 # vi /etc/selinux/config 改为 SELINUX=disabled # hostnamectl set-hostname harbor # su 

2:首先部署docker环境

安装依赖包 # yum install -y yum-utils device-mapper-persistent-data lvm2 设置阿里云镜像源 # yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # yum install docker-ce -y # systemctl start docker # systemctl enable docker 镜像加速配置 现在需要从公有仓库里拉取镜像,由于长城防火墙及网络问题,必须使用镜像加速,才能快速拉取镜像 访问网站https://help.aliyun.com/document_detail/60750.html 生成加速地址"https://elxy356o.mirror.aliyuncs.com" # cd /etc/docker # tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://elxy356o.mirror.aliyuncs.com"] } EOF # ls 可看到daemon.jsp # systemctl daemon-reload 重新加载 开启路由转发 # vim /etc/sysctl.conf 末行插入: net.ipv4.ip_forward=1 # sysctl -p 生效 重启网络和docker # service network restart # systemctl restart docker docker引擎环境部署完成 

3:下载harbor安装程序、下载compose

#rz -E 把harbor-offline-installer-v1.2.2.tgz、docker-compose包复制过来 # chmod +x docker-compose # mv docker-compose /usr/bin # tar zxvf harbor-offline-installer-v1.2.2.tgz -C /usr/local/ # cd /usr/local/harbor # ls 修改harbor配置文件(改为harbor IP地址) # vim harbor.cfg 改为:hostname = 192.168.195.80 启动安装 # sh install.sh 

在这里插入图片描述
修改配置文件
在这里插入图片描述
安装完成,有一个网址http://192.168.195.80,就是harbor的图形界面
在这里插入图片描述
登录进去,创建项目project
账号是admin
密码是Harbor12345
账户和密码在配置文件中已经定义,可以查看配置文件
在这里插入图片描述
创建一个项目
在这里插入图片描述

二:Node节点 配置

1:node节点配置连接私有仓库
node1 node2节点同步操作

注意,后面的逗号不要忘了添加 # vim /etc/docker/daemon.json 添加: "registry-mirrors": ["https://05vz3np5.mirror.aliyuncs.com"], "insecure-registries":["192.168.195.80"] # systemctl restart docker pod管理的好处,重启后docker容器状态还是UP状态 

2:node节点登录harbor私有仓库
注意:在用harbor私有仓库下载镜像,创建资源时,要保证node处于harbor登陆状态

# docker login 192.168.195.80 输入 admin 输入 Harbor12345 

在这里插入图片描述
在这里插入图片描述
示例1:在node1节点上传镜像到私有仓库,供其他node节点下载

3:node1节点上传镜像到harbor

从公有仓库下载镜像 (相当于原材料) # docker pull tomcat:8.0.52 打标签 # docker tag tomcat:8.0.52 192.168.195.80/project/tomcat 推送到私有仓库 # docker push 192.168.195.80/project/tomcat 

在harbor图形界面查看,可看到project项目中已上传镜像192.168.195.80/project/tomcat
在这里插入图片描述
在这里插入图片描述
4:node2节点从私有仓库下载192.168.195.80/project/tomcat镜像

测试 下载node1刚刚上传到私有仓库的镜像 # docker pull 192.168.195.80/project/tomcat # docker images 

在这里插入图片描述
在harbor图形界面查看,可看到project项目中镜像192.168.195.80/project/tomcat 被下载1次
在这里插入图片描述
示例2: 用yaml文件格式创建tomcat(用harbor私有仓库拉取镜像)

5:node节点查看并复制用户凭证序列号

# cat .docker/config.json | base64 -w 0 复制凭证序列号 ewoJImF1dGhzIjogewoJCSIxOTIuMTY4LjE5NS44MCI6IHsKCQkJImF1dGgiOiAiWVdSdGFXNDZTR0Z5WW05eU1USXpORFU9IgoJCX0KCX0sCgkiSHR0cEhlYWRlcnMiOiB7CgkJIlVzZXItQWdlbnQiOiAiRG9ja2VyLUNsaWVudC8xOS4wMy44IChsaW51eCkiCgl9Cn0= 

(1)删除上面示例中的tomcat镜像
(2)两个node节点的用户凭据是相同的,因为登录的是同一个harbor私有仓库
在这里插入图片描述
在这里插入图片描述

三:master节点配置

6:在master节点创建secret资源

# vim registry-pull-secret.yaml apiVersion: v1 kind: Secret metadata: name: registry-pull-secret data: .dockerconfigjson: ewoJImF1dGhzIjogewoJCSIxOTIuMTY4LjE5NS44MCI6IHsKCQkJImF1dGgiOiAiWVdSdGFXNDZTR0Z5WW05eU1USXpORFU9IgoJCX0KCX0sCgkiSHR0cEhlYWRlcnMiOiB7CgkJIlVzZXItQWdlbnQiOiAiRG9ja2VyLUNsaWVudC8xOS4wMy44IChsaW51eCkiCgl9Cn0= type: kubernetes.io/dockerconfigjson 创建secret资源 # kubectl create -f registry-pull-secret.yaml 查看secret资源 # kubectl get secret 

在这里插入图片描述
在这里插入图片描述
7:在master节点创建pod资源
从harbor私有仓库中下载镜像

# vim tomcat-deployment.yaml apiVersion: extensions/v1beta1 kind: Deployment metadata: name: my-tomcat spec: replicas: 2 template: metadata: labels: app: my-tomcat spec: imagePullSecrets: - name: registry-pull-secret containers: - name: my-tomcat image: 192.168.195.80/project/tomcat ports: - containerPort: 80 --- apiVersion: v1 kind: Service metadata: name: my-tomcat spec: type: NodePort ports: - port: 8080 targetPort: 8080 nodePort: 31111 selector: app: my-tomcat 

在这里插入图片描述

创建pod资源 # kubectl create -f tomcat-deployment.yaml # kubectl get pods -w 详细查看pod资源(包含创建过程) # kubectl describe pod my-tomcat-559834-nprvn # kubectl describe pod my-tomcat-435743-fdbscx # kubectl get pod -o wide # kubectl get pods,svc,deployment 

在这里插入图片描述
详细查看pod(包含创建过程)
#kubectl describe pod my-tomcat-7f9c8876b4-cjs2p
#kubectl describe pod my-tomcat-7f9c8876b4-gh6ss

在这里插入图片描述
在这里插入图片描述
查看pod资源创建到哪个node节点
在这里插入图片描述

在harbor图形界面查看,可看到project项目中镜像192.168.195.80/project/tomcat 显示被下载3次

在这里插入图片描述

遇到问题:
第一次创建pod资源时出error
pod资源为Pending状态
在这里插入图片描述
详细查看pod(包含创建过程),创建失败
#kubectl describe pod my-tomcat-7f9c8876b4-cjs2p
#kubectl describe pod my-tomcat-7f9c8876b4-gh6ss

在这里插入图片描述
查看节点状态,变成了NotReady状态
在这里插入图片描述
经检查:是因为keepalived的VIP消失了,重新启动nginx和keepalived后,负载均衡Lb1的VIP地址有了,再次查看节点状态 变成了Ready状态,随之,pod资源也创建成功了

原文链接:https://blog.csdn.net/weixin_45691464/article/details/106071925

原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/8275

(0)
上一篇 2022年9月27日
下一篇 2022年9月27日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

优速盾注册领取大礼包www.cdnb.net
/sitemap.xml