跳转至

工作集群离线升级指南

Note

本文仅针对离线模式下,使用 DCE 5.0 平台所创建的工作集群的 kubernetes 的版本进行升级,不包括其它 kubeneters 组件的升级。

概述

在离线场景下,用户可以通过制作增量离线包的方式对使用 DCE 5.0 平台所创建的工作集群的 kubernetes 的版本进行升级。整体的升级思路为: 1. 在联网节点构建离线包 2. 将离线包导入火种节点 3. 更新 Global 集群的 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 服务的默认账户和密码。

更新 Global 集群的 kubernetes 版本清单

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

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

下一步

登录 DCE 5.0 的 UI 管理界面,参照集群升级文档对自建的工作集群进行升级。

评论