文章目錄
鏡像準備(v1.0.0)
docker pull longhornio/longhorn-manager:master
docker pull longhornio/longhorn-ui:master
docker pull longhornio/longhorn-engine:master
docker pull longhornio/longhorn-instance-manager:v1_20200514
docker pull quay.io/k8scsi/csi-attacher:v2.0.0
docker pull quay.io/k8scsi/csi-provisioner:v1.4.0
docker pull quay.io/k8scsi/csi-node-driver-registrar:v1.2.0
docker pull quay.io/k8scsi/csi-resizer:v0.3.0
# 保存
mkdir longhorn1.0.0/ && cd longhorn1.0.0/
docker save longhornio/longhorn-manager:master |gzip > manager.tgz
docker save longhornio/longhorn-ui:master |gzip > ui.tgz
docker save longhornio/longhorn-engine:master |gzip > engine.tgz
docker save longhornio/longhorn-instance-manager:v1_20200514 |gzip > instance.tgz
docker save quay.io/k8scsi/csi-attacher:v2.0.0 |gzip > attacher.tgz
docker save quay.io/k8scsi/csi-provisioner:v1.4.0 |gzip > provisioner.tgz
docker save quay.io/k8scsi/csi-node-driver-registrar:v1.2.0 |gzip > registrar.tgz
docker save quay.io/k8scsi/csi-resizer:v0.3.0 |gzip > resizer.tgz
push到鏡像倉庫
# load -i
ll *.tgz|awk '{print $NF}'|sed -r 's#(.*)#docker load -i \1#' |bash
# 倉庫地址
export hub=harbor.${domain}
# tag 爲私有倉庫
docker tag longhornio/longhorn-manager:master ${hub}/longhornio/longhorn-manager:v1.0.0
docker tag longhornio/longhorn-ui:master ${hub}/longhornio/longhorn-ui:v1.0.0
docker tag longhornio/longhorn-engine:master ${hub}/longhornio/longhorn-engine:v1.0.0
docker tag longhornio/longhorn-instance-manager:v1_20200514 ${hub}/longhornio/longhorn-instance-manager:v1_20200514
docker tag quay.io/k8scsi/csi-attacher:v2.0.0 ${hub}/k8scsi/csi-attacher:v2.0.0
docker tag quay.io/k8scsi/csi-provisioner:v1.4.0 ${hub}/k8scsi/csi-provisioner:v1.4.0
docker tag quay.io/k8scsi/csi-node-driver-registrar:v1.2.0 ${hub}/k8scsi/csi-node-driver-registrar:v1.2.0
docker tag quay.io/k8scsi/csi-resizer:v0.3.0 ${hub}/k8scsi/csi-resizer:v0.3.0
# push到私有倉庫
docker push ${hub}/longhornio/longhorn-manager:v1.0.0
docker push ${hub}/longhornio/longhorn-ui:v1.0.0
docker push ${hub}/longhornio/longhorn-engine:v1.0.0
docker push ${hub}/longhornio/longhorn-instance-manager:v1_20200514
docker push ${hub}/k8scsi/csi-attacher:v2.0.0
docker push ${hub}/k8scsi/csi-provisioner:v1.4.0
docker push ${hub}/k8scsi/csi-node-driver-registrar:v1.2.0
docker push ${hub}/k8scsi/csi-resizer:v0.3.0
# 清除本地緩存
docker rmi -f $(docker images |grep longhorn)
docker rmi -f $(docker images |grep k8scsi)
準備環境
所有集羣的主機:
yum install -y iscsi-initiator-utils jq
安裝
kubectl 安裝(推薦)
下載配置文件
wget https://raw.githubusercontent.com/longhorn/longhorn/master/deploy/longhorn.yaml
wget https://raw.githubusercontent.com/longhorn/longhorn/master/uninstall/uninstall.yaml
安裝
kubectl create namespace longhorn-system
kubectl apply -f longhorn/longhorn.yaml
helm 安裝
下載資源
git clone https://github.com/longhorn/longhorn
渲染helm
helm template longhorn chart \
--namespace longhorn-system \
--output-dir . \
--set defaultSettings.defaultDataPath=/home/rancher/longhorn/ \
--set csi.attacherImage=k8scsi/csi-attacher:v2.0.0 \
--set csi.provisionerImage=k8scsi/csi-provisioner:v1.4.0 \
--set csi.nodeDriverRegistrarImage=k8scsi/csi-node-driver-registrar:v1.2.0 \
--set csi.resizerImage=k8scsi/csi-resizer:v0.3.0
將渲染的輸出保存爲post-upgrade.yaml(升級) 和 uninstall.yaml(卸載)
打包後發佈到離線環境中
tar -czf longhorn.tgz ./longhorn ./uninstall-job.yaml ./postupgrade-job.yaml
安裝
kubectl create namespace longhorn-system
kubectl -n longhorn-system apply -R -f ./longhorn
rancher ui 安裝
部署失敗的項目,‘升級’中刪除鏡像地址中的quay.io,即使用默認鏡像倉庫,即可。
補充
部署失敗的項目
原因爲鏡像指向的是quary.io,需 ’升級‘ 修改,刪除 quary.io 後重新部署即可,
kubelet配置(可選)
部署成功後修改 longhorn-driver-deployer 變量
KUBELET_ROOT_DIR=/var/lib/kubelet
卸載
kubectl & helm
# 卸載任務
kubectl create -f longhorn/uninstall.yaml
# 刪除卸載任務
kubectl delete -f longhorn/longhorn.yaml
kubectl delete -f longhorn/uninstall.yaml
rancher ui
應用中卸載即可
使用
longhorn-ui
創建負載均衡
-
空間:longhorn-system
-
服務:longhorn-frontend:http
PVC
- 存儲類選擇longhorn
- 不支持多主機讀取