前言
私有倉庫用于企業內部私有 Docker 鏡像的存盤,
可以將私有倉庫安裝到 K8S 集群中,
Harbor 鏡像倉庫是由 VMware 開源的一款企業級鏡像倉庫系統,
更新歷史
- 20200719 - 初稿 - 左程立
- 原文地址 - https://blog.zuolinux.com/2020/07/19/harbor.html
自定義證書
openssl genrsa -out ca.key 4096
openssl req -x509 -new -nodes -sha512 -days 3650 -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=zuolinux.com" -key ca.key -out ca.crt
openssl genrsa -out harbor.zuolinux.com.key 4096
openssl req -sha512 -new -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=zuolinux.com" -key harbor.zuolinux.com.key -out harbor.zuolinux.com.csr
cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1=harbor.zuolinux.com
DNS.2=*.harbor.zuolinux.com
DNS.3=hostname
EOF
openssl x509 -req -sha512 -days 3650 \
-extfile v3.ext \
-CA ca.crt -CAkey ca.key -CAcreateserial \
-in harbor.zuolinux.com.csr \
-out harbor.zuolinux.com.crt
openssl x509 -inform PEM -in harbor.zuolinux.com.crt -out harbor.zuolinux.com.cert
安裝 harbor
helm install nginx-ingress --set "rbac.create=true,controller.service.externalIPs[0]=192.168.10.15" apphub/nginx-ingress
kubectl create ns harbor
kubectl create secret tls harbor.zuolinux.com --key harbor.zuolinux.com.key --cert harbor.zuolinux.com.crt -n harbor
helm repo add harbor https://helm.goharbor.io
helm repo update
helm install harbor --namespace harbor harbor/harbor \
--set expose.ingress.hosts.core=core.harbor.zuolinux.com \
--set expose.ingress.hosts.notary=notary.harbor.zuolinux.com \
--set expose.tls.secretName=harbor.zuolinux.com \
--set persistence.enabled=false \
--set externalURL=https://core.harbor.zuolinux.com \
--set harborAdminPassword=密碼
查看安裝情況和服務地址
# helm status harbor
# kubectl get pod
# kubectl get pv
# kubectl get pvc
# kubectl get service
訪問 harbor
本地配置 HOSTS
192.168.10.15 core.harbor.zuolinux.com
瀏覽器訪問 https://core.harbor.zuolinux.com
Docker 鏡像倉庫管理
拷貝證書至 Docker 的證書配置目錄
mkdir -p /etc/docker/certs.d/core.harbor.zuolinux.com/
cp harbor.zuolinux.com.cert /etc/docker/certs.d/core.harbor.zuolinux.com/
cp harbor.zuolinux.com.key /etc/docker/certs.d/core.harbor.zuolinux.com/
cp ca.crt /etc/docker/certs.d/core.harbor.zuolinux.com/
推送鏡像
docker tag nginx core.harbor.zuolinux.com/library/nginx:latest
docker push core.harbor.zuolinux.com/library/nginx:latest
瀏覽器登錄 harbor 可以看到已經有鏡像了
下載鏡像
docker rmi core.harbor.zuolinux.com/library/nginx:latest
docker pull core.harbor.zuolinux.com/library/nginx:latest
Helm Chart 倉庫管理
Helm Push 插件
helm plugin install https://github.com/chartmuseum/helm-push
創建 Repo
WEB 頁面中創建專案 myrepo
添加倉庫到本地,注意 chartrepo 是關鍵字,要保留不能修改
helm repo add myrepo https://core.harbor.zuolinux.com/chartrepo/myrepo --ca-file /root/harbor/ca.crt --username=admin --password=密碼
本地創建一個測驗 Chart
helm create testapp
推送到倉庫
helm push --ca-file /root/harbor/ca.crt --username=admin --password=密碼 testapp myrepo
在 WEB 頁面上 chartrepo 專案下的 Helm Chats 中可以看到推送上來的 Chart 包
結束語
Harbor 使個人和企業擁有了自主創建和管理私有倉庫的能力,
聯系我
微信公眾號:zuolinux_com

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/78508.html
標籤:其他
