實踐記錄 K8s部署Harbor高可用

2021-08-26 05:27:14 字數 3379 閱讀 8680

vmware的harbor映象庫整合了docker的registry功能外,提供了豐富的介面和同步映象庫的功能,為專案中儲存和管理映象提供了良好的基礎環境。

registry的映象資料使用檔案系統儲存,即使伺服器磁碟已做raid,也需在架構上保證在物理機和虛擬機器出問題時能快速恢復。因此利用k8s掛載儲存是較好的方法。這裡我們選擇glusterfs做共享儲存。

mkdir -p /sharedata/glusterdata/harbordata

gluster volume create harbordata replica 2 \

172.18.63.22

:/sharedata/glusterdata/harbordata/ \

172.18.63.24

:/sharedata/glusterdata/harbordata/ force

gluster volume info

mkdir -p /mnt/harbordata

mount -t glusterfs 172.18.63.22:harbordata /mnt/harbordata

gluster volume start harbordata

gluster volume status

這裡使用rancher2.0的rke安裝乙個k8s集群並配置好kubectl。
apiversion: v1

kind: endpoints

metadata:

name: ep-glusterfs-harbor-r2

namespace: ci-cd

subsets:

-addresses:

-ip:

172.18.63.24

ports:

-port:

49152

protocol: tcp

---apiversion: v1

kind: service

metadata:

name: ep-glusterfs-harbor-r2

namespace: ci-cd

spec:

ports:

-port:

49152

protocol: tcp

targetport: 49152

sessionaffinity: none

type: clusterip

spec:

capacity:

storage: 10gi

accessmodes:

- readwritemany

persistentvolumereclaimpolicy: retain

glusterfs:

endpoints: "ep-glusterfs-harbor-r2"

path: "harbordata"

readonly: false

volumemounts:

- name: mysql-storage

mountpath: /var/lib/mysql

subpath: "storage"

volumes:

- name: mysql-storage

persistentvolumeclaim:

claimname: storage-pvc

volumemounts:

-name: storage

mountpath: /etc/registry

subpath: "config"

-name: storage

mountpath: /storage

subpath: "registry"

volumes:

-name: storage

persistentvolumeclaim:

claimname: registry-pvc

python make/kubernetes/k8s-prepare
metadata:

annotations:

nginx.ingress

.kubernetes

.io/proxy-body-size: 1024m

nginx.ingress

.kubernetes

.io/upstream-hash-by: "$remote_addr"

ingress.kubernetes

.io/ssl-redirect: "false"

name: harbor

namespace: ci-cd

如果要讓命令列docker命令能訪問,還需要暴露registry的5000埠

spec:

backend:

servicename: registry

serviceport: 5000

# create pv & pvc

.yaml

.yaml

.yaml

.yaml

.yaml

.yaml

> # create config map

.yaml

.yaml

.yaml

.yaml

.yaml

# create service

.yaml

.yaml

.yaml

.yaml

.yaml

# create k8s deployment

.yaml

.yaml

.yaml

.yaml

.yaml

# create k8s ingress

用配置好的網域名稱訪問harbor。這裡沒有配置ssl,所以需要為機器新增insecure-registry(在/etc/docker/daemon.json中新增,然後重啟daemon和docker)

docker logindocker push ***docker pull ***等命令測試是否工作正常。

嘗試使用1.5.1的映象替換1.2的映象,發現需要調整配置,後續再慢慢調。

按照官方文件已不建議使用yaml,而是用helm進行安裝。後續嘗試用helm安裝。

[1]

[2]

[3]

[4]

[5]

[6]

K8s部署prometheus監控K8s細節

prometheus 一些配置檔案可以再github上找到。部署 root kube prometheus manifests 目錄下所有檔案 部署 root kube prometheus manifests setup 目錄下所有檔案 要注意的是自己要建立乙個工作空間 如果報錯執行下面語句 部署...

k8s集群部署 docker部署k8s安裝篇

1 安裝docker 緊接著配置乙個穩定 stable 的倉庫 倉庫配置會儲存到 etc yum.repos.d docker ce.repo檔案中 yum config manager add repo 更新yum安裝的相關docke軟體包 安裝docker ce yum update y yum...

三 K8s安裝 Harbor搭建

硬體資源 最低配置 推薦配置 處理器2 4cpu48 硬體40 160軟體 版本描述 docker engine v17.06.1 ce 或更高版本 有關安裝說明,請參閱 docker engine文件。docker compose v1.18.0 或更高版本 有關安裝說明,請參閱 docker c...