kubernetes部署harbor私有仓库

半兽人 发表于: 2023-01-10   最后更新时间: 2023-01-11 17:14:28  
{{totalSubscript}} 订阅, 2,749 游览

部署harbor私有仓库

可以通过以下命令部署:

Helm安装

添加harbor仓库并拉取到本地:

helm repo add harbor https://helm.goharbor.io
helm fetch harbor/harbor --untar

确保安装了ingress,如果没安,可以安装,也可以将其转换成nginx来访问,否则直接访问会报405

cd harbor
# sed -i 's/  type: ingress/  type: NodePort/g' values.yaml
# sed -i 's/      commonName: ""/      commonName: "harbor"/g' values.yaml

创建命名空间:

kubectl create ns kube-harbor

安装:

## 安装(名字myharbor,指定命名空间kube-harbor)
helm install myharbor harbor/ --namespace kube-harbor

Kubebiz安装

创建命名空间:

kubectl create ns kube-harbor

应用:

kubectl apply -f https://www.kubebiz.com/raw/KubeBiz/harbor/v2.7.0/harbor.yaml

如果你需要修改namespace,或者自定义的域名,可以到 https://www.kubebiz.com/KubeBiz/harbor 直接修改,下载新的yaml安装。

同样,确保安装了ingress,如果没安,可以安装,也可以将其转换成nginx来访问,否则直接访问会报405

kubectl apply -f https://www.kubebiz.com/raw/KubeBiz/harbor/v2.7.0/nginx-export.yaml

其他更多安装方式

官网文档:https://goharbor.io/docs
安装文档:https://goharbor.io/docs/2.7.0/install-config/download-installer/

访问

获取访问的NodePort

kubectl get service harbor -n kube-harbor
NAME         TYPE       CLUSTER-IP   EXTERNAL-IP   PORT(S)                                     AGE
my-service   NodePort   10.97.4.15   <none>        80:32121/TCP,443:30127/TCP,4443:30640/TCP   7h4m

现在,拿到端口,通过游览器就可以访问啦:

https://你的物理机ip:30127

https证书设置

当然,如果你需要用自己的域名来定义harbor访问,那么接下来:

按照该文档生成证书:https://goharbor.io/docs/2.7.0/install-config/configure-https/

假设的域名是hub.test.com,生成后,证书应该是这样。

ca.crt
ca.key
ca.srl
hub.test.com.crt
hub.test.com.csr
hub.test.com.key
v3.ext

替换域名

默认创建的域名是core.harbor.domain,如果是kubebiz的安装方式,则替换掉你需要的域名。

如果是helm的话,在安装时候执行--set指定你自己的域名,如:

helm install myharbor harbor/ --namespace kube-harbor --set externalURL=hub.test.com

替换之前的证书:

首先删除默认创建的myharbor-ingress,这个证书在之前安装没有创建:

kubectl delete secret myharbor-ingress -n kube-harbor

换成新的:

kubectl create secret -n kube-harbor generic myharbor-ingress --from-file=ca.crt=ca.crt --from-file=tls.crt=hub.test.com.crt --from-file=tls.key=hub.test.com.key

重启myharbor-coreingress

那么,你就可以用域名访问了。

更新于 2023-01-11

查看kubernetes更多相关的文章或提一个关于kubernetes的问题,也可以与我们一起分享文章