私有仓库Harbor
https://goharbor.io/
内容学习于马士兵云原生课程
Harbor部署
部署docker及docker-compose
略
获取Harbor安装文件
https://github.com/goharbor/harbor/releases/download/v2.4.1/harbor-offline-installer-v2.4.1.tgz
tar -zxvf harbor-offline-installer-v2.4.1.tgz
获取TLS文件
云服务器厂商,即可申请
#-bash: unzip: 未找到命令
yum -y install unzip zip
#解压证书
unzip 6864844_kubemsb.com_nginx.zip
#移动证书文件到harbor目录下
mv 68* ./harbor
修改harbor配置文件
#修改配置文件名
mv harbor.yml.tmpl harbor.yml
#安装vim
yum -y install vim*
#编辑配置文件
#修改证书path
#修改域名
执行预备脚本
./prepare
执行安装脚本
./install.sh
验证运行情况
测试访问
#用户名密码在,harbor.yml中配置
admin
Harbor12345
配置域名解析,使用域名访问则是安全的
Docker使用Harbor
修改docker daemon.json配置文件
#增加如下内容
"insecure-registries": ["www.kwzone.cloud"]
#重启加载daemon配置
systemctl daemon-reload
#重启docker
systemctl restart docker
#重启之后,发现harbor服务只有5个,正常为9个
#重启harbor服务
#停止并删除容器
docker-compose down
#后台启动
docker-compose up -d
镜像推送拉取
#镜像打标记
docker tag centos:latest www.kwzone.cloud/library/centos:v1
#登录harbor仓库
#不加域名,默认是登录到docker hub
docker login www.kwzone.cloud
#推送镜像到harbor容器仓库
docker push www.kwzone.cloud/library/centos:v1
查看harbor
拉取镜像
docker pull www.kwzone.cloud/library/centos@sha256:a1801b843b1bfaf77c501e7a6d3f709401a1e0c83863037fa3aab063a7fdb9dc
#或者直接
docker pull www.kwzone.cloud/library/centos:v1
KubeSphere使用Harbor
测试Harbor是否可用
#在k8s宿主机,测试harbor服务是否可用
docker pull www.kwzone.cloud/library/centos:v1
配置镜像仓库密钥
这里使用的是免费证书 ,直接可以验证成功;
如果使用的是自建证书,则不会校验成功,需要先挂载自建证书到ks-apiserver
参考:https://mp.weixin.qq.com/s/Y8eCArLuiHEEZCSk-frSFw
创建工作负载-使用Harbor
虽然验证成功,但是搜索镜像报错
Get "https://www.kwzone.cloud/v2/library/centos/manifests/v2": dial tcp: lookup www.kwzone.cloud on 10.96.0.10:53: no such host
因为是使用的非公网域名,所以k8s集群内部Pod无法识别这个域名.
解决方法:需要配置域名解析
#kubectl edit cm -n kube-system coredns
#192.168.8.88为harbor服务所在主机
#增加如下配置
hosts {
192.168.8.88 www.kwzone.cloud
fallthrough
}
测试成功