Kubernetes鏡像倉庫-Harbor的Helm部署

Kubernetes鏡像倉庫-Harbor的Helm部署

Harbor是Docker Images Registry Service系統,用於管理容器鏡像,由VMVare中國團隊開發。mysql

Harbor的部署有幾種方式:git

一、部署Kubernetes和Helm

Kubernetes集羣建議使用1.10.x版本,Helm是在Kubernetes上的應用軟件包管理工具。具體方法參見:github

二、下載Harbor源碼

  • 下載helm部署代碼並進入harbor helm目錄。
git clone https://github.com/vmware/harbor
cd harbor/contrib/helm/harbor
  • 更新helm dependency

harbor的helm部署依賴helm部署的postgresql,在官方的安裝文檔沒有明確說明,直接按照官方文檔說明安裝,就會缺失postgresql的部署,致使整個服務沒法啓動。sql

helm dependency update

三、安裝harbor

官方提供了兩種方式,Insecure和Secure,我這裏選用的是Secure安全的部署方式,讓harbor本身生成CA和SSL,簡單方便。api

  • 執行以下命令安裝harbor:
helm install . --debug --name hub --set externalDomain=harbor.my.domain

externalDomain爲外部能訪問到harbor的域名,到目前爲止,你能夠在本地/etc/hosts中添加域名解析,從本地訪問進行測試,待測試完成後再加入traefik-ingress中,固然你也能夠直接在traefik-ingress中添加域名解析。安全

四、添加traefik-ingress的域名解析

編寫traefik配置文件(traefik-harbor.yaml)架構

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: traefik-default-ingress
namespace: default
annotations:
kubernetes.io/ingress.class: "traefik"
spec:
rules:
<ul><li>host: harbor.my.domain
http:
paths:
<ul><li>path: /
backend:
serviceName: my-release-harbor-ui
servicePort: 80

而後,運行安裝:

kubectl create -f traefik-harbor.yml

五、helm harbor自定義配置

參考:dom

注意:機器學習

  • 在生產環境中須要持久化數據存儲,不然pod重啓或重建會形成數據丟失。
    • 若是有建立好的storageClass能夠直接在values.yaml配置,若是沒有或暫時不能使用SC的,可使用nfs,須要修改一些配置。
    • 另外,nfs其實在社區也有storageClass的驅動庫,不過使用起來較爲繁瑣,因而這裏仍然修改成使用nfs。
  • 修改templates默認的namespace。
    • 注意須要修改依賴的chart文件夾下的postgresql-0.9-1.tgz壓縮文件中的部署yaml模板,不然harbor的ui、register、mysql和postgresql不在一個namespace下,不能正常安裝。
  • 注意修改postgresql的持久化數據卷,可參考
相關文章
相關標籤/搜索