专栏首页黑客下午茶Longhorn云原生容器分布式存储-Air Gap安装

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

内容来源于官方 Longhorn 1.1.2 英文技术手册

系列

Longhorn 可以通过使用 manifest fileHelm chartRancher UI 安装在 air gapped 环境中。

目录

  • 前提要求
  • 使用 Manifest File
  • 使用 Helm chart
  • 使用 Rancher app
  • 故障排除

前提要求

  • Longhorn Components 镜像部署到您自己的 registry
  • Kubernetes CSI driver 组件镜像部署到您自己的 registry

注意:

所有需要的镜像的完整列表在 longhorn-images.txt 中。首先,通过运行下载镜像列表:

我们提供了一个脚本 save-images.sh 来快速拉取上面的 longhorn-images.txt 列表。如果您为标志 --images 指定 tar.gz 文件名,脚本会将所有镜像保存到提供的文件名。在下面的示例中,脚本将 Longhorn 镜像拉取并保存到文件 longhorn-images.tar.gz。然后,您可以将该文件复制到您的 air-gap 环境中。另一方面,如果您不指定文件名,脚本只会将镜像列表拉到您的计算机上。

我们提供了另一个脚本 load-images.sh,用于将 Longhorn 镜像推送到您的私有 registry。如果您为标志 --images 指定 tar.gz 文件名,脚本将从 tar 文件加载镜像并推送它们。否则,它将在您的本地 Docker 中找到镜像并推送它们。在下面的示例中,脚本从文件 longhorn-images.tar.gz 加载镜像并将它们推送到 <YOUR-PRIVATE-REGISTRY>

有关使用脚本的更多选项,请参阅 flag --help

使用 Manifest File

获取 Longhorn Deployment manifest file

创建 Longhorn namespace

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

  • longhorn-driver-deployer Deployment
  • 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: <SECRET_NAME> ## Add SECRET_NAME here serviceAccountName: longhorn-service-account

对 manifest file 应用以下修改

  • longhornio/longhorn-manager image: <REGISTRY_URL>/longhorn-manager:<LONGHORN_MANAGER_IMAGE_TAG>
  • longhornio/longhorn-instance-manager image: <REGISTRY_URL>/longhorn-instance-manager:<LONGHORN_INSTANCE_MANAGER_IMAGE_TAG>
  • longhornio/longhorn-ui image: <REGISTRY_URL>/longhorn-ui:<LONGHORN_UI_IMAGE_TAG>
  • CSI_ATTACHER_IMAGE
  • CSI_NODE_DRIVER_REGISTRAR_IMAGE
  • CSI_SNAPSHOTTER_IMAGE
  • 修改 longhorn-driver-deployer Deployment 中的 Kubernetes CSI driver 组件环境变量指向你的私有 registry 镜像 - name: CSI_ATTACHER_IMAGE value: <REGISTRY_URL>/csi-attacher:<CSI_ATTACHER_IMAGE_TAG> - name: CSI_PROVISIONER_IMAGE value: <REGISTRY_URL>/csi-provisioner:<CSI_PROVISIONER_IMAGE_TAG> - name: CSI_NODE_DRIVER_REGISTRAR_IMAGE value: <REGISTRY_URL>/csi-node-driver-registrar:<CSI_NODE_DRIVER_REGISTRAR_IMAGE_TAG> - name: CSI_RESIZER_IMAGE value: <REGISTRY_URL>/csi-resizer:<CSI_RESIZER_IMAGE_TAG> - name: CSI_SNAPSHOTTER_IMAGE value: <REGISTRY_URL>/csi-snapshotter:<CSI_SNAPSHOTTER_IMAGE_TAG>

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

使用 Helm Chart

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

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

使用默认镜像名称

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

克隆 Longhorn 仓库:

chart/values.yaml

defaultSettings:
  registrySecret: <SECRET_NAME>

privateRegistry:
    registryUrl: <REGISTRY_URL>
    registryUser: <REGISTRY_USER>
    registryPasswd: <REGISTRY_PASSWORD>
    registrySecret: <REGISTRY_SECRET_NAME>
  • 指定 Private registry URL。如果注册表需要身份验证,请指定 Private registry userPrivate registry passwordPrivate registry secret

使用自定义镜像名称

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

克隆 longhorn repo

chart/values.yaml

  • 指定 Longhorn 镜像和 tagimage: longhorn: engine: repository: longhornio/longhorn-engine tag: <LONGHORN_ENGINE_IMAGE_TAG> manager: repository: longhornio/longhorn-manager tag: <LONGHORN_MANAGER_IMAGE_TAG> ui: repository: longhornio/longhorn-ui tag: <LONGHORN_UI_IMAGE_TAG> instanceManager: repository: longhornio/longhorn-instance-manager tag: <LONGHORN_INSTANCE_MANAGER_IMAGE_TAG> shareManager: repository: longhornio/longhorn-share-manager tag: <LONGHORN_SHARE_MANAGER_IMAGE_TAG>
  • 指定 Private registry URL。如果 registry 需要身份验证,请指定 Private registry userPrivate registry passwordPrivate registry secretLonghorn 将使用这些信息自动生成一个 secret,并使用它从您的私有 registry 中提取镜像。 defaultSettings: registrySecret: <SECRET_NAME> privateRegistry: registryUrl: <REGISTRY_URL> registryUser: <REGISTRY_USER> registryPasswd: <REGISTRY_PASSWORD>

安装 Longhorn

  • Helm2 helm install ./chart --name longhorn --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 userPrivate registry passwordPrivate registry secret name。Longhorn 将使用这些信息自动生成一个 secret,并使用它从您的私人 registry 中提取镜像。

故障排除

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

创建 Kubernetes secret

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

kubectl apply -f registry-secret.yml

删除 Longhorn 并重新安装。

  • Helm2 helm uninstall ./chart --name longhorn --namespace longhorn-system helm install ./chart --name longhorn --namespace longhorn-system

推荐:

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

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

本文分享自微信公众号 - 黑客下午茶(hi-weishao),作者:为少

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-08-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Longhorn 云原生容器分布式存储 - Python Client

    目前,您可以使用 Longhorn UI 操作 Longhorn。同时,您可以使用 Python 访问 Longhorn API,如下所示。

    为少
  • Longhorn,Kubernetes 云原生分布式块存储

    Longhorn 是用于 Kubernetes 的轻量级、可靠且功能强大的分布式块存储系统。

    为少
  • Longhorn,企业级云原生容器分布式存储 - 高可用

    数据局部性设置(data locality setting)旨在在以下情况下启用:只要有可能,至少应在与使用该卷的 pod 相同的节点上调度 Longhorn ...

    为少
  • Longhorn,企业级云原生容器分布式存储 - 支持 ReadWriteMany (RWX) 工作负载(实验性功能)

    Longhorn 通过 NFSv4 服务器(share-manager)公开常规 Longhorn 卷,原生支持 RWX 工作负载。

    为少
  • Longhorn,企业级云原生容器分布式存储 - 监控(Prometheus+AlertManager+Grafana)

    Longhorn 在 REST 端点 http://LONGHORN_MANAGER_IP:PORT/metrics 上以 Prometheus 文本格式原生公...

    为少
  • Longhorn项目

    说明:Longhorn是Kubernetes的分布式块存储系统。Longhorn轻便、可靠、强大。你可以使用kubectl apply命令或使用Helm cha...

    CNCF
  • Longhorn 企业级云原生分布式容器存储-券(Volume)和节点(Node)

    在本教程中,您将学习如何创建与 Longhorn 卷对应的持久卷 (PV) 和持久卷声明 (PVC) 的 Kubernetes 持久存储资源。您将使用 kube...

    为少
  • K8s原生存储持续进化,Longhorn 1.1迎来ARM支持

    当DevOps团队同时使用Rancher和Longhorn 1.1时,他们可以轻松管理位于任意位置的持久化数据卷,无论这些持久化数据卷位于云端、数据中心抑或边缘...

    CNCF
  • Longhorn,企业级云原生容器分布式存储 - 定制部署默认设置

    您可以在部署 Longhorn 时自定义它的默认设置。例如,您可以在启动 Longhorn 之前指定 Create Default Disk With Node...

    为少
  • Longhorn,企业级云原生容器分布式存储 - K8S 资源配置示例

    请注意,只有 ext4 文件系统支持在卷意外分离后(detached unexpectedly)自动重新挂载。

    为少
  • Longhorn 企业级云原生容器存储解决方案-部署篇

    安装 Longhorn 的 Kubernetes 集群中的每个节点都必须满足以下要求:

    为少
  • 使用Longhorn优雅地恢复正在运行中的容器应用

    鞠宏超,Rancher研发工程师。4年云计算领域经验,2018年加入Rancher Labs,先后参与了Longhorn产品研发,Rancher2.x产品研发,...

    CNCF
  • Longhorn 微服务化存储初探

    Longhorn 官方推荐的最小配置如下,如果数据并不算太重要可适当缩减和调整,具体请自行斟酌:

    CNCF
  • Longhorn 云原生分布式块存储解决方案设计架构和概念

    Longhorn 设计有两层:数据平面(data plane)和控制平面(control plane)。Longhorn Engine 是存储控制器对应数据平面...

    为少
  • Rancher大中华区技术总监带你6分钟了解Rancher 1.5

    摘要 Rancher容器管理平台1.5版已正式与大家见面了,此次分享将由Rancher Labs大中华区技术总监介绍Rancher的版本演进历史以及Ranche...

    IT大咖说
  • Windows Vista已死,有事烧纸

    源 \ 36氪 编者按:从后来的很多反馈看来,Vista 都是一个超前于时代的操作系统。但这个操作系统在当年却遭遇了前所未有的失利——究竟为什么 Vista 会...

    顶级程序员
  • 使用 OpenEBS 实现 Local PV 动态持久化存储

    问卷链接(https://www.wjx.cn/jq/97146486.aspx)

    CNCF
  • 019.Kubernetes二进制集群存储longhorn

    提示:更多介绍参考:https://github.com/longhorn/longhorn。

    木二
  • 附022.Kubernetes_v1.18.3高可用部署架构一

    Kubernetes的高可用主要指的是控制平面的高可用,即指多套Master节点组件和Etcd组件,工作节点通过负载均衡连接到各Master。

    木二

扫码关注云+社区

领取腾讯云代金券