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安装
部署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视频
更多推荐
所有评论(0)