Skip to content

工作集群离线部署/升级指南

Note

本文仅针对离线模式下,使用 AI 算力中心平台所创建的工作集群的 kubernetes 的版本进行部署或升级, 不包括其它 kubeneters 组件的部署或升级。

本文适用以下离线场景:

  • 用户可以通过以下操作指南,部署 AI 算力中心平台所创建的非界面中推荐的 Kubernetes 版本。
  • 用户可以通过制作增量离线包的方式对使用 AI 算力中心平台所创建的工作集群的 kubernetes 的版本进行升级。

整体的思路为:

  1. 在联网节点构建离线包
  2. 将离线包导入火种节点
  3. 更新全局服务集群的 Kubernetes 版本清单
  4. 使用平台 UI 创建工作集群或升级工作集群的 kubernetes 版本

Note

目前支持构建的离线 kubernetes 版本,请参考 kubean 支持的 kubernetes 版本列表

在联网节点构建离线包

由于离线环境无法联网,用户需要事先准备一台能够 联网的节点 来进行增量离线包的构建,并且在这个节点上启动 Docker 或者 podman 服务。 参阅如何安装 Docker?

  1. 检查联网节点的 Docker 服务运行状态

    ps aux|grep docker
    

    预期输出如下:

    root     12341  0.5  0.2 654372 26736 ?        Ssl  23:45   0:00 /usr/bin/docked
    root     12351  0.2  0.1 625080 13740 ?        Ssl  23:45   0:00 docker-containerd --config /var/run/docker/containerd/containerd.toml
    root     13024  0.0  0.0 112824   980 pts/0    S+   23:45   0:00 grep --color=auto docker
    
  2. 在联网节点的 /root 目录下创建一个名为 manifest.yaml 的文件,命令如下:

    vi manifest.yaml
    

    manifest.yaml 内容如下:

    manifest.yaml
    image_arch:
    - "amd64"
    kube_version: # 填写待升级的集群版本
    - "v1.28.0"
    
    • image_arch 用于指定 CPU 的架构类型,可填入的参数为 amd64arm64
    • kube_version 用于指定需要构建的 kubernetes 离线包版本,可参考上文的支持构建的离线 kubernetes 版本。
  3. /root 目录下新建一个名为 /data 的文件夹来存储增量离线包。

    mkdir data
    

    执行如下命令,使用 kubean airgap-patch 镜像生成离线包。 airgap-patch 镜像 tag 与 Kubean 版本一致,需确保 Kubean 版本覆盖需要升级的 Kubernetes 版本。

    # 假设 kubean 版本为 v0.13.9
    docker run --rm -v $(pwd)/manifest.yml:/manifest.yml -v $(pwd)/data:/data ghcr.m.daocloud.io/kubean-io/airgap-patch:v0.13.9
    

    等待 Docker 服务运行完成后,检查 /data 文件夹下的文件,文件目录如下:

    data
    ├── amd64
    │   ├── files
    │   │   ├── import_files.sh
    │   │   └── offline-files.tar.gz
    │   ├── images
    │   │   ├── import_images.sh
    │   │   └── offline-images.tar.gz
    │   └── os-pkgs
    │       └── import_ospkgs.sh
    └── localartifactset.cr.yaml
    

将离线包导入火种节点

  1. 将联网节点的 /data 文件拷贝至火种节点的 /root 目录下,在 联网节点 执行如下命令:

    scp -r data root@x.x.x.x:/root
    

    x.x.x.x 为火种节点 IP 地址

  2. 在火种节点上将 /data 文件内的镜像文件拷贝至火种节点内置的 docker resgitry 仓库。登录火种节点后执行如下命令:

    1. 进入镜像文件所在的目录

      cd data/amd64/images
      
    2. 执行 import_images.sh 脚本将镜像导入火种节点内置的 Docker Resgitry 仓库。

      REGISTRY_ADDR="127.0.0.1"  ./import_images.sh
      

    Note

    上述命令仅仅适用于火种节点内置的 Docker Resgitry 仓库,如果使用外部仓库请使用如下命令:

    REGISTRY_SCHEME=https REGISTRY_ADDR=${registry_address} REGISTRY_USER=${username} REGISTRY_PASS=${password} ./import_images.sh
    
    • REGISTRY_ADDR 是镜像仓库的地址,比如1.2.3.4:5000
    • 当镜像仓库存在用户名密码验证时,需要设置 REGISTRY_USER 和 REGISTRY_PASS
  3. 在火种节点上将 /data 文件内的二进制文件拷贝至火种节点内置的 Minio 服务上。

    1. 进入二进制文件所在的目录

      cd data/amd64/files/
      
    2. 执行 import_files.sh 脚本将二进制文件导入火种节点内置的 Minio 服务上。

      MINIO_USER=rootuser MINIO_PASS=rootpass123 ./import_files.sh http://127.0.0.1:9000
      

Note

上述命令仅仅适用于火种节点内置的 Minio 服务,如果使用外部 Minio 请将 http://127.0.0.1:9000 替换为外部 Minio 的访问地址。 “rootuser” 和 “rootpass123”是火种节点内置的 Minio 服务的默认账户和密码。

更新全局服务集群的 kubernetes 版本清单

火种节点上执行如下命令,将 localartifactset 资源部署到全局服务集群:

kubectl apply -f data/kubeanofflineversion.cr.patch.yaml

下一步

登录 AI 算力中心的 UI 管理界面,您可以继续执行以下操作:

  1. 参照创建集群的文档进行工作集群创建,此时可以选择 Kubernetes 增量版本。

  2. 参照升级集群的文档对自建的工作集群进行升级。