新聞中心
Longhorn云原生容器分布式存儲(chǔ)-Air Gap安裝
作者:為少 2021-08-29 23:53:32
存儲(chǔ)
存儲(chǔ)軟件
云原生
分布式 Longhorn 可以通過使用 manifest file、Helm chart 或 Rancher UI 安裝在 air gapped 環(huán)境中。

成都創(chuàng)新互聯(lián)長(zhǎng)期為上千余家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為雨花臺(tái)企業(yè)提供專業(yè)的網(wǎng)站設(shè)計(jì)制作、做網(wǎng)站,雨花臺(tái)網(wǎng)站改版等技術(shù)服務(wù)。擁有十年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
Longhorn 可以通過使用 manifest file、Helm chart 或 Rancher UI 安裝在 air gapped 環(huán)境中。
目錄
- 前提要求
- 使用 Manifest File
- 使用 Helm chart
- 使用 Rancher app
- 故障排除
前提要求
- 將 Longhorn Components 鏡像部署到您自己的 registry。
- 將 Kubernetes CSI driver 組件鏡像部署到您自己的 registry。
注意:
- 所有需要的鏡像的完整列表在 longhorn-images.txt 中。首先,通過運(yùn)行下載鏡像列表:
wget https://raw.githubusercontent.com/longhorn/longhorn/v1.1.2/deploy/longhorn-images.txt
- 我們提供了一個(gè)腳本 save-images.sh 來快速拉取上面的 longhorn-images.txt 列表。如果您為標(biāo)志 --images 指定 tar.gz 文件名,腳本會(huì)將所有鏡像保存到提供的文件名。在下面的示例中,腳本將 Longhorn 鏡像拉取并保存到文件 longhorn-images.tar.gz。然后,您可以將該文件復(fù)制到您的 air-gap 環(huán)境中。另一方面,如果您不指定文件名,腳本只會(huì)將鏡像列表拉到您的計(jì)算機(jī)上。
- wget https://raw.githubusercontent.com/longhorn/longhorn/v1.1.2/scripts/save-images.sh
- chmod +x save-images.sh
- ./save-images.sh --image-list longhorn-images.txt --images longhorn-images.tar.gz
- 我們提供了另一個(gè)腳本 load-images.sh,用于將 Longhorn 鏡像推送到您的私有 registry。如果您為標(biāo)志 --images 指定 tar.gz 文件名,腳本將從 tar 文件加載鏡像并推送它們。否則,它將在您的本地 Docker 中找到鏡像并推送它們。在下面的示例中,腳本從文件 longhorn-images.tar.gz 加載鏡像并將它們推送到
- wget https://raw.githubusercontent.com/longhorn/longhorn/v1.1.2/scripts/load-images.sh
- chmod +x load-images.sh
- ./load-images.sh --image-list longhorn-images.txt --images longhorn-images.tar.gz --registry
- 有關(guān)使用腳本的更多選項(xiàng),請(qǐng)參閱 flag --help:
- ./save-images.sh --help
- ./load-images.sh --help
使用 Manifest File
獲取 Longhorn Deployment manifest file
- wget https://raw.githubusercontent.com/longhorn/longhorn/v1.1.2/deploy/longhorn.yaml
創(chuàng)建 Longhorn namespace
- kubectl create namespace longhorn-system
如果私有 registry 需要身份驗(yàn)證,在 longhorn-system 命名空間中創(chuàng)建 docker-registry secret:
- kubectl -n longhorn-system create secret docker-registry
--docker-server= --docker-username= --docker-password=
- longhorn-driver-deployer Deployment
- longhorn-manager DaemonSet
- longhorn-ui Deployment
- 在以下資源中將您的 secret 名稱 SECRET_NAME 添加到 imagePullSecrets.name
示例:
- apiVersion: apps/v1
- kind: Deployment
- metadata:
- labels:
- app: longhorn-ui
- name: longhorn-ui
- namespace: longhorn-system
- spec:
- replicas: 1
- selector:
- matchLabels:
- app: longhorn-ui
- template:
- metadata:
- labels:
- app: longhorn-ui
- spec:
- containers:
- - name: longhorn-ui
- image: longhornio/longhorn-ui:v0.8.0
- ports:
- - containerPort: 8000
- env:
- - name: LONGHORN_MANAGER_IP
- value: "http://longhorn-backend:9500"
- imagePullSecrets:
- - name:
## Add SECRET_NAME here - serviceAccountName: longhorn-service-account
對(duì) manifest file 應(yīng)用以下修改
- longhornio/longhorn-manager
- image:
/longhorn-manager:
- longhornio/longhorn-engine
- image:
/longhorn-engine:
- longhornio/longhorn-share-manager
- image:
/longhorn-instance-manager:
- longhornio/longhorn-ui
- image:
/longhorn-ui:
- CSI_ATTACHER_IMAGE
- CSI_PROVISIONER_IMAGE
- CSI_NODE_DRIVER_REGISTRAR_IMAGE
- CSI_RESIZER_IMAGE
- CSI_SNAPSHOTTER_IMAGE
修改 longhorn-driver-deployer Deployment 中的 Kubernetes CSI driver 組件環(huán)境變量指向你的私有 registry 鏡像
- - name: CSI_ATTACHER_IMAGE
- value:
/csi-attacher: - - name: CSI_PROVISIONER_IMAGE
- value:
/csi-provisioner: - - name: CSI_NODE_DRIVER_REGISTRAR_IMAGE
- value:
/csi-node-driver-registrar: - - name: CSI_RESIZER_IMAGE
- value:
/csi-resizer: - - name: CSI_SNAPSHOTTER_IMAGE
- value:
/csi-snapshotter:
- 修改 Longhorn 鏡像以指向您的私有 registry 鏡像
示例:
- apiVersion: apps/v1
- kind: Deployment
- metadata:
- labels:
- app: longhorn-ui
- name: longhorn-ui
- namespace: longhorn-system
- spec:
- replicas: 1
- selector:
- matchLabels:
- app: longhorn-ui
- template:
- metadata:
- labels:
- app: longhorn-ui
- spec:
- containers:
- - name: longhorn-ui
- image:
/longhorn-ui: ## Add image name and tag here - ports:
- - containerPort: 8000
- env:
- - name: LONGHORN_MANAGER_IP
- value: "http://longhorn-backend:9500"
- imagePullSecrets:
- - name:
- serviceAccountName: longhorn-service-account
使用修改后的 manifest 文件部署 Longhorn
- kubectl apply -f longhorn.yaml
使用 Helm Chart
在 v1.1.2 中,Longhorn 自動(dòng)為鏡像添加 前綴。您只需設(shè)置 registryUrl 參數(shù)即可從您的私有 registry 中提取鏡像。
注意: 一旦您將 registryUrl 設(shè)置為您的私有 registry ,Longhorn 會(huì)嘗試專門從注冊(cè)表中提取鏡像。確保所有 Longhorn 組件的鏡像都在注冊(cè)表中,否則 Longhorn 將無法拉取鏡像。
使用默認(rèn)鏡像名稱
如果您按照此處推薦的方式保留鏡像名稱,則只需執(zhí)行以下步驟:
克隆 Longhorn 倉(cāng)庫(kù):
- git clone https://github.com/longhorn/longhorn.git
在 chart/values.yaml
Longhorn 將使用這些信息自動(dòng)生成一個(gè) secret,并使用它從您的私人 registry 中提取鏡像。
- defaultSettings:
- registrySecret:
- privateRegistry:
- registryUrl:
- registryUser:
- registryPasswd:
- registrySecret:
- 指定 Private registry URL。如果注冊(cè)表需要身份驗(yàn)證,請(qǐng)指定 Private registry user、Private registry password 和 Private registry secret。
使用自定義鏡像名稱
如果要使用自定義圖像的名稱,可以使用以下步驟:
克隆 longhorn repo
- git clone https://github.com/longhorn/longhorn.git
在 chart/values.yaml 中
注意: 不包括私有 registry 前綴,它將自動(dòng)添加。例如:如果您的鏡像是 example.com/username/longhorn-manager,請(qǐng)?jiān)谝韵?charts 中使用 username/longhorn-manager。
- 指定 Longhorn 鏡像和 tag:
- image:
- longhorn:
- engine:
- repository: longhornio/longhorn-engine
- tag:
- manager:
- repository: longhornio/longhorn-manager
- tag:
- ui:
- repository: longhornio/longhorn-ui
- tag:
- instanceManager:
- repository: longhornio/longhorn-instance-manager
- tag:
- shareManager:
- repository: longhornio/longhorn-share-manager
- tag:
- 指定 CSI Driver 組件鏡像和標(biāo)簽:
- csi:
- attacher:
- repository: longhornio/csi-attacher
- tag:
- provisioner:
- repository: longhornio/csi-provisioner
- tag:
- nodeDriverRegistrar:
- repository: longhornio/csi-node-driver-registrar
- tag:
- resizer:
- repository: longhornio/csi-resizer
- tag:
- snapshotter:
- repository: longhornio/csi-snapshotter
- tag:
- 指定 Private registry URL。如果 registry 需要身份驗(yàn)證,請(qǐng)指定 Private registry user、Private registry password 和 Private registry secret。 Longhorn 將使用這些信息自動(dòng)生成一個(gè) secret,并使用它從您的私有 registry 中提取鏡像。
- defaultSettings:
- registrySecret:
- privateRegistry:
- registryUrl:
- registryUser:
- registryPasswd:
安裝 Longhorn
- Helm2
- helm install ./chart --name longhorn --namespace longhorn-system
- Helm3
- kubectl create namespace longhorn-system
- helm install longhorn ./chart --namespace longhorn-system
使用 Rancher app
使用默認(rèn)鏡像名稱
如果您按照上面推薦的方式保留鏡像名稱,則只需執(zhí)行以下步驟:
- 在 Private Registry Settings 部分指定:
Longhorn 將使用這些信息自動(dòng)生成一個(gè) secret,并使用它從您的私人 registry 中提取鏡像。
- 私有 registry URL
- 私有 registry user
- 私有 registry password
- 私有 registry secret name
使用自定義鏡像名稱
- 如果要使用自定義鏡像的名稱,可以將 Use Default Images 設(shè)置為 False 并指定鏡像的名稱。
注意: 不包括私有 registry 前綴,它將自動(dòng)添加。例如:如果您的鏡像是 example.com/username/longhorn-manager,請(qǐng)?jiān)谝韵?charts 中使用 username/longhorn-manager。
- 指定 Private registry URL。如果注冊(cè)中心需要身份驗(yàn)證,請(qǐng)指定 Private registry user、Private registry password 和 Private registry secret name。Longhorn 將使用這些信息自動(dòng)生成一個(gè) secret,并使用它從您的私人 registry 中提取鏡像。
故障排除
對(duì)于 Helm/Rancher 安裝,如果用戶忘記提交 secret 以對(duì)私有 registry 進(jìn)行身份驗(yàn)證,則 longhorn-manager DaemonSet 將無法創(chuàng)建。
創(chuàng)建 Kubernetes secret
- kubectl -n longhorn-system create secret docker-registry
--docker-server= --docker-username= --docker-password=
手動(dòng)創(chuàng)建 registry-secret 設(shè)置對(duì)象。
- apiVersion: longhorn.io/v1beta1
- kind: Setting
- metadata:
- name: registry-secret
- namespace: longhorn-system
- value:
kubectl apply -f registry-secret.yml
刪除 Longhorn 并重新安裝。
- Helm2
- helm uninstall ./chart --name longhorn --namespace longhorn-system
- helm install ./chart --name longhorn --namespace longhorn-system
- Helm3
- helm uninstall longhorn ./chart --namespace longhorn-system
- helm install longhorn ./chart --namespace longhorn-system
推薦:
強(qiáng)烈建議不要操作鏡像 tag,尤其是實(shí)例管理器鏡像 tag,例如 v1_20200301,因?yàn)槲覀冇幸馐褂萌掌谝员苊鈱⑵渑c Longhorn 版本相關(guān)聯(lián)。
Longhorn 組件的鏡像托管在 Dockerhub 中的 longhornio 帳戶下。例如,longhornio/longhorn-manager:v1.1.2。建議在將鏡像推送到私有 registry 時(shí)保持帳戶名 longhornio 相同。這有助于避免不必要的配置問題。
分享題目:Longhorn云原生容器分布式存儲(chǔ)-AirGap安裝
文章鏈接:http://www.dlmjj.cn/article/djjehgh.html


咨詢
建站咨詢
