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 环境中。
目录
- 前提要求
- 使用 Manifest File
- 使用 Helm chart
- 使用 Rancher app
- 故障排除
前提要求
- 将 Longhorn Components 镜像部署到您自己的 registry。
- 将 Kubernetes CSI driver 组件镜像部署到您自己的 registry。
注意:
- 所有需要的镜像的完整列表在 longhorn-images.txt 中。首先,通过运行下载镜像列表:
wget https://raw.githubusercontent.com/longhorn/longhorn/v1.1.2/deploy/longhorn-images.txt
- 我们提供了一个脚本 save-images.sh 来快速拉取上面的 longhorn-images.txt 列表。如果您为标志 --images 指定 tar.gz 文件名,脚本会将所有镜像保存到提供的文件名。在下面的示例中,脚本将 Longhorn 镜像拉取并保存到文件 longhorn-images.tar.gz。然后,您可以将该文件复制到您的 air-gap 环境中。另一方面,如果您不指定文件名,脚本只会将镜像列表拉到您的计算机上。
- 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
- 我们提供了另一个脚本 load-images.sh,用于将 Longhorn 镜像推送到您的私有 registry。如果您为标志 --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
- 有关使用脚本的更多选项,请参阅 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
创建 Longhorn namespace
- kubectl create namespace longhorn-system
如果私有 registry 需要身份验证,在 longhorn-system 命名空间中创建 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
对 manifest file 应用以下修改
- 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 组件环境变量指向你的私有 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 自动为镜像添加 前缀。您只需设置 registryUrl 参数即可从您的私有 registry 中提取镜像。
注意: 一旦您将 registryUrl 设置为您的私有 registry ,Longhorn 会尝试专门从注册表中提取镜像。确保所有 Longhorn 组件的镜像都在注册表中,否则 Longhorn 将无法拉取镜像。
使用默认镜像名称
如果您按照此处推荐的方式保留镜像名称,则只需执行以下步骤:
克隆 Longhorn 仓库:
- git clone https://github.com/longhorn/longhorn.git
在 chart/values.yaml
Longhorn 将使用这些信息自动生成一个 secret,并使用它从您的私人 registry 中提取镜像。
- defaultSettings:
- registrySecret:
- privateRegistry:
- registryUrl:
- registryUser:
- registryPasswd:
- registrySecret:
- 指定 Private registry URL。如果注册表需要身份验证,请指定 Private registry user、Private registry password 和 Private registry secret。
使用自定义镜像名称
如果要使用自定义图像的名称,可以使用以下步骤:
克隆 longhorn repo
- git clone https://github.com/longhorn/longhorn.git
在 chart/values.yaml 中
注意: 不包括私有 registry 前缀,它将自动添加。例如:如果您的镜像是 example.com/username/longhorn-manager,请在以下 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 组件镜像和标签:
- 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 需要身份验证,请指定 Private registry user、Private registry password 和 Private registry secret。 Longhorn 将使用这些信息自动生成一个 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
使用默认镜像名称
如果您按照上面推荐的方式保留镜像名称,则只需执行以下步骤:
- 在 Private Registry Settings 部分指定:
Longhorn 将使用这些信息自动生成一个 secret,并使用它从您的私人 registry 中提取镜像。
- 私有 registry URL
- 私有 registry user
- 私有 registry password
- 私有 registry secret name
使用自定义镜像名称
- 如果要使用自定义镜像的名称,可以将 Use Default Images 设置为 False 并指定镜像的名称。
注意: 不包括私有 registry 前缀,它将自动添加。例如:如果您的镜像是 example.com/username/longhorn-manager,请在以下 charts 中使用 username/longhorn-manager。
- 指定 Private registry URL。如果注册中心需要身份验证,请指定 Private registry user、Private registry password 和 Private registry secret name。Longhorn 将使用这些信息自动生成一个 secret,并使用它从您的私人 registry 中提取镜像。
故障排除
对于 Helm/Rancher 安装,如果用户忘记提交 secret 以对私有 registry 进行身份验证,则 longhorn-manager DaemonSet 将无法创建。
创建 Kubernetes secret
- kubectl -n longhorn-system create secret docker-registry
--docker-server= --docker-username= --docker-password=
手动创建 registry-secret 设置对象。
- 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
推荐:
强烈建议不要操作镜像 tag,尤其是实例管理器镜像 tag,例如 v1_20200301,因为我们有意使用日期以避免将其与 Longhorn 版本相关联。
Longhorn 组件的镜像托管在 Dockerhub 中的 longhornio 帐户下。例如,longhornio/longhorn-manager:v1.1.2。建议在将镜像推送到私有 registry 时保持帐户名 longhornio 相同。这有助于避免不必要的配置问题。
网站标题:Longhorn云原生容器分布式存储-AirGap安装
文章网址:http://jxjierui.cn/article/djjehgh.html


咨询
建站咨询
