13518219792

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

Longhorn云原生容器分布式存储-AirGap安装

Longhorn云原生容器分布式存储-Air Gap安装

作者:为少 2021-08-29 23:53:32

存储

存储软件

云原生

分布式 Longhorn 可以通过使用 manifest file、Helm chart 或 Rancher UI 安装在 air gapped 环境中。

成都创新互联长期为上千余家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为雨花台企业提供专业的网站设计制作、做网站雨花台网站改版等技术服务。拥有十年丰富建站经验和众多成功案例,为您定制开发。

Longhorn 可以通过使用 manifest file、Helm chart 或 Rancher UI 安装在 air gapped 环境中。

目录

前提要求

注意:

wget https://raw.githubusercontent.com/longhorn/longhorn/v1.1.2/deploy/longhorn-images.txt

  
 
 
 
  1. wget https://raw.githubusercontent.com/longhorn/longhorn/v1.1.2/scripts/save-images.sh 
  2. chmod +x save-images.sh 
  3. ./save-images.sh --image-list longhorn-images.txt --images longhorn-images.tar.gz 
  
 
 
 
  1. wget https://raw.githubusercontent.com/longhorn/longhorn/v1.1.2/scripts/load-images.sh 
  2. chmod +x load-images.sh 
  3. ./load-images.sh --image-list longhorn-images.txt --images longhorn-images.tar.gz --registry  
  
 
 
 
  1. ./save-images.sh --help 
  2. ./load-images.sh --help 

使用 Manifest File

获取 Longhorn Deployment manifest file

  
 
 
 
  1. wget https://raw.githubusercontent.com/longhorn/longhorn/v1.1.2/deploy/longhorn.yaml 

创建 Longhorn namespace

  
 
 
 
  1. kubectl create namespace longhorn-system 

如果私有 registry 需要身份验证,在 longhorn-system 命名空间中创建 docker-registry secret:

  
 
 
 
  1. kubectl -n longhorn-system create secret docker-registry  --docker-server= --docker-username= --docker-password= 

示例:

  
 
 
 
  1. apiVersion: apps/v1 
  2. kind: Deployment 
  3. metadata: 
  4.   labels: 
  5.     app: longhorn-ui 
  6.   name: longhorn-ui 
  7.   namespace: longhorn-system 
  8. spec: 
  9.   replicas: 1 
  10.   selector: 
  11.     matchLabels: 
  12.       app: longhorn-ui 
  13.   template: 
  14.     metadata: 
  15.       labels: 
  16.         app: longhorn-ui 
  17.     spec: 
  18.       containers: 
  19.       - name: longhorn-ui 
  20.         image: longhornio/longhorn-ui:v0.8.0 
  21.         ports: 
  22.         - containerPort: 8000 
  23.         env: 
  24.           - name: LONGHORN_MANAGER_IP 
  25.             value: "http://longhorn-backend:9500" 
  26.       imagePullSecrets: 
  27.       - name:                           ## Add SECRET_NAME here 
  28.       serviceAccountName: longhorn-service-account 

对 manifest file 应用以下修改

  
 
 
 
  1. image: /longhorn-manager: 
  
 
 
 
  1. image: /longhorn-engine: 
  
 
 
 
  1. image: /longhorn-instance-manager: 
  
 
 
 
  1. image: /longhorn-ui: 

修改 longhorn-driver-deployer Deployment 中的 Kubernetes CSI driver 组件环境变量指向你的私有 registry 镜像

  
 
 
 
  1. - name: CSI_ATTACHER_IMAGE 
  2.   value: /csi-attacher: 
  3. - name: CSI_PROVISIONER_IMAGE 
  4.   value: /csi-provisioner: 
  5. - name: CSI_NODE_DRIVER_REGISTRAR_IMAGE 
  6.   value: /csi-node-driver-registrar: 
  7. - name: CSI_RESIZER_IMAGE 
  8.   value: /csi-resizer: 
  9. - name: CSI_SNAPSHOTTER_IMAGE 
  10.   value: /csi-snapshotter: 

示例:

  
 
 
 
  1. apiVersion: apps/v1 
  2. kind: Deployment 
  3. metadata: 
  4.   labels: 
  5.     app: longhorn-ui 
  6.   name: longhorn-ui 
  7.   namespace: longhorn-system 
  8. spec: 
  9.   replicas: 1 
  10.   selector: 
  11.     matchLabels: 
  12.       app: longhorn-ui 
  13.   template: 
  14.     metadata: 
  15.       labels: 
  16.         app: longhorn-ui 
  17.     spec: 
  18.       containers: 
  19.       - name: longhorn-ui 
  20.         image: /longhorn-ui:   ## Add image name and tag here 
  21.         ports: 
  22.         - containerPort: 8000 
  23.         env: 
  24.           - name: LONGHORN_MANAGER_IP 
  25.             value: "http://longhorn-backend:9500" 
  26.       imagePullSecrets: 
  27.       - name:  
  28.       serviceAccountName: longhorn-service-account 

使用修改后的 manifest 文件部署 Longhorn

  
 
 
 
  1. kubectl apply -f longhorn.yaml 

使用 Helm Chart

在 v1.1.2 中,Longhorn 自动为镜像添加 前缀。您只需设置 registryUrl 参数即可从您的私有 registry 中提取镜像。

注意: 一旦您将 registryUrl 设置为您的私有 registry ,Longhorn 会尝试专门从注册表中提取镜像。确保所有 Longhorn 组件的镜像都在注册表中,否则 Longhorn 将无法拉取镜像。

使用默认镜像名称

如果您按照此处推荐的方式保留镜像名称,则只需执行以下步骤:

克隆 Longhorn 仓库:

  
 
 
 
  1. git clone https://github.com/longhorn/longhorn.git 

在 chart/values.yaml

Longhorn 将使用这些信息自动生成一个 secret,并使用它从您的私人 registry 中提取镜像。

  
 
 
 
  1. defaultSettings: 
  2.   registrySecret:  
  3.  
  4. privateRegistry: 
  5.     registryUrl:  
  6.     registryUser:  
  7.     registryPasswd:  
  8.     registrySecret:  

使用自定义镜像名称

如果要使用自定义图像的名称,可以使用以下步骤:

克隆 longhorn repo

  
 
 
 
  1. git clone https://github.com/longhorn/longhorn.git 

在 chart/values.yaml 中

注意: 不包括私有 registry 前缀,它将自动添加。例如:如果您的镜像是 example.com/username/longhorn-manager,请在以下 charts 中使用 username/longhorn-manager。

  
 
 
 
  1. image: 
  2.   longhorn: 
  3.     engine: 
  4.       repository: longhornio/longhorn-engine 
  5.       tag:  
  6.     manager: 
  7.       repository: longhornio/longhorn-manager 
  8.       tag:  
  9.     ui: 
  10.       repository: longhornio/longhorn-ui 
  11.       tag:  
  12.     instanceManager: 
  13.       repository: longhornio/longhorn-instance-manager 
  14.       tag:  
  15.     shareManager: 
  16.       repository: longhornio/longhorn-share-manager 
  17.       tag:  
  
 
 
 
  1. csi: 
  2.     attacher: 
  3.       repository: longhornio/csi-attacher 
  4.       tag:  
  5.     provisioner: 
  6.       repository: longhornio/csi-provisioner 
  7.       tag:  
  8.     nodeDriverRegistrar: 
  9.       repository: longhornio/csi-node-driver-registrar 
  10.       tag:  
  11.     resizer: 
  12.       repository: longhornio/csi-resizer 
  13.       tag:  
  14.     snapshotter: 
  15.       repository: longhornio/csi-snapshotter 
  16.       tag:  
  
 
 
 
  1. defaultSettings: 
  2.   registrySecret:  
  3.  
  4. privateRegistry: 
  5.     registryUrl:  
  6.     registryUser:  
  7.     registryPasswd:  

安装 Longhorn

  
 
 
 
  1. helm install ./chart --name longhorn --namespace longhorn-system 
  
 
 
 
  1. kubectl create namespace longhorn-system 
  2.  
  3. helm install longhorn ./chart --namespace longhorn-system 

使用 Rancher app

使用默认镜像名称

如果您按照上面推荐的方式保留镜像名称,则只需执行以下步骤:

Longhorn 将使用这些信息自动生成一个 secret,并使用它从您的私人 registry 中提取镜像。

使用自定义镜像名称

注意: 不包括私有 registry 前缀,它将自动添加。例如:如果您的镜像是 example.com/username/longhorn-manager,请在以下 charts 中使用 username/longhorn-manager。

故障排除

对于 Helm/Rancher 安装,如果用户忘记提交 secret 以对私有 registry 进行身份验证,则 longhorn-manager DaemonSet 将无法创建。

创建 Kubernetes secret

  
 
 
 
  1. kubectl -n longhorn-system create secret docker-registry  --docker-server= --docker-username= --docker-password= 

手动创建 registry-secret 设置对象。

  
 
 
 
  1. apiVersion: longhorn.io/v1beta1 
  2. kind: Setting 
  3. metadata: 
  4.   name: registry-secret 
  5.   namespace: longhorn-system 
  6. value:  

kubectl apply -f registry-secret.yml

删除 Longhorn 并重新安装。

  
 
 
 
  1. helm uninstall ./chart --name longhorn --namespace longhorn-system 
  2.  
  3. helm install ./chart --name longhorn --namespace longhorn-system 
  
 
 
 
  1. helm uninstall longhorn ./chart --namespace longhorn-system 
  2.  
  3. helm install longhorn ./chart --namespace longhorn-system 

推荐:

强烈建议不要操作镜像 tag,尤其是实例管理器镜像 tag,例如 v1_20200301,因为我们有意使用日期以避免将其与 Longhorn 版本相关联。

Longhorn 组件的镜像托管在 Dockerhub 中的 longhornio 帐户下。例如,longhornio/longhorn-manager:v1.1.2。建议在将镜像推送到私有 registry 时保持帐户名 longhornio 相同。这有助于避免不必要的配置问题。


分享文章:Longhorn云原生容器分布式存储-AirGap安装
网址分享:http://cdbrznjsb.com/article/djjehgh.html

其他资讯

让你的专属顾问为你服务