k8s学习笔记-harbor仓库部署

docker安装

部署harbor仓库也需要安装docker,安装过程he在k8s节点上安装相同:
安装docker镜像依赖-存储驱动:

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

导入阿里云docker-ce镜像仓库:

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

安装docker-ce:

yum install docker-ce
启动docker:
systemctl start docker

设置开机自启:

systemctl enable docker

配置镜像加速deamon:

vi /etc/docker/daemon.json
{
“registry-mirrors”: [“https://4bsnyw1n.mirror.aliyuncs.com”],
“exec-opts”:[“native.cgroupdriver=systemd”]
}

重启docker

systemctl daemon-reload && systemctl restart docker

安装docker-compose

下载地址:docker-compose

载后解压扔到/usr/local/bin/,并重命名docker-compose
设置权限

chmod a+x docker-compose

harbor仓库安装

harbor下载:harbor
下载之后解压缩可以得到以下文件:
在这里插入图片描述
修改harbor.yaml文件以下内容:

#http:
  # port for http, default is 80. If https enabled, this port will redirect to https port
  #port: 80

# https related config
https:
  # https port for harbor, default is 443
  port: 443
  # The path of cert and key files for nginx
  certificate: /data/cert/server.csr
  private_key: /data/cert/server.key

创建证书

创建一个存放 证书 的目录
mkdir -p /data/cert
执行cd !$进入该目录,执行创建证书操作
使用 RSA 方式加密, 生成 ca.key , 长度为2048

openssl genrsa -out ca.key 2048

执行命令之后需要输入密码,要保证两次密码相同
在这里插入图片描述
生成证书请求, 是后面签发证书时所需要的

openssl req -new -key server.key -out server.csr

生成证书请求时会出现需要填写的内容,按情况填写即可,其中server’s hostname为自己设置的域名,后期可通过该域名直接访问仓库。
在这里插入图片描述
备份私钥:

cp server.key server.key.org

转换证书,即取消私钥的密码

opensslrsa -in server.key.org -out server.key

签名:

openssl x509 -req -days 365 -in server.csr-signkey server.key -out server.crt

赋予证书权限:

chmod a+x *

返回harbor目录中执行./install.sh进行安装部署,会自动加载镜像,并执行部署操作,成功之后出现提示:
在这里插入图片描述
执行docker ps 可以看到harbor镜像容器已经在运行:
在这里插入图片描述

配置域名解析:

首先需要在k8s集群中每个节点和harbor宿主机上修改/etc/docker/daemon.json文件,添加

“insecure-registries”: [“https://hub.mwqtest.com”]

表示信任此仓库,docker可以正常访问。
并重启docker:

systemctl restart docker

在每台机器上执行命令

echo “192.168.204.132 hub.mwqtest.com” >> /etc/hosts #添加仓库的域名解析到hosts文件中

在window系统中也可以添加该解析文件,方便浏览器访问,可以利用notepadd++在C:\Windows\System32\drivers\etc\hosts文件中添加

192.168.204.132 hub.mwqtest.com

配置这些之后我尝试访问hub.mwqtest.com发现还是访问不了,可以ping通,但是却不能登录仓库,当使用master节点登录仓库时,发现报错:
在这里插入图片描述提示80端口无法访问,猜测应该是仓库的nginx服务没有成功启动,进入到harbor服务器中,执行docker ps命令,显示如下,发现有几个harbor容器是Exited状态,甚是不解,重新启动docker发现还是有几个容器是Exited状态。
在这里插入图片描述
最后还是万能的google找到了相关原因和解决方案,新增/usr/lib/systemd/system/harbor.service文件,内容为:

[Unit]
Description=Harbor
After=docker.service systemd-networkd.service systemd-resolved.service
Requires=docker.service
Documentation=http://github.com/vmware/harbor

[Service]
Type=simple
Restart=on-failure
RestartSec=5
ExecStart=/usr/local/bin/docker-compose -f {{ harbor_install_path }} harbor/docker-compose.yml up
ExecStop=/usr/local/bin/docker-compose -f {{ harbor_install_path }} harbor/docker-compose.yml down

[Install]
WantedBy=multi-user.target

其中{{ harbor_install_path }}为自己的harbor解压缩路径,比如我这里为/usr/local/,docker-compose路径也要换位自己的安装路径。
执行:

systemctl enable harbor
systemctl start harbor

此时,再执行docker ps -a发现所有的harbor相关容器都正常启动了。
也可以在浏览器中正常访问:
在这里插入图片描述

镜像上传与下载测试

镜像上传:
镜像上传仓库之前要按照仓库要求修改镜像标签:
在这里插入图片描述

docker tag nginx:latest hub.mwqtest.com/library/mynginx:latest
docker push hub.mwqtest.com/library/mynginx:latest

此时即可在配置的harbor仓库中看到我们上传的镜像。
harbor仓库即完成了成功配置,感谢尚硅谷的免费k8s视频

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值