版本:v25.03

集群扩容

本文档介绍集群扩容的操作指导,其他支持的操作系统、架构扩容流程与示例流程一致,下面以openEuler22.03 ARM64为例进行说明。

配置要求

节点资源要求

表 1 工作节点建议资源配置信息

vCPU内存(GB)
48

输入图片说明 说明:
当未启用并发多线程(SMT)或超线程时,一个vCPU相当于一个物理内核。启用后,使用以下公式换算:vCPU=(每个内核的线程数×内核数)×插槽数。

表 2 控制平面节点建议资源配置信息

vCPU内存(GB)工作节点数量
4161~24
83225~100
1664101~150
2464151~200

输入图片说明说明:

  • 控制平面节点资源大小随工作节点数量增加而增加。
  • 当未启用并发多线程(SMT)或超线程时,一个vCPU相当于一个物理内核。启用后,使用以下公式换算:vCPU=(每个内核的线程数×内核数)×插槽数。

节点配置要求

  • 选定安装执行机作为扩容执行机。
  • 扩容执行机与集群网络连通。
  • 所有待扩容机器可使用root用户登录。

环境准备

两台已经安装openEuler22.03操作系统的Linux计算机,一个高可用集群或非高可用集群。

表 3 环境信息

主机IP地址主机名称操作系统角色
192.168.0.5node4openEuler扩容执行机(之前的安装执行机)。
192.168.0.6node5openEuler集群内控制平面节点。
192.168.0.13node12openEuler待扩容控制平面节点。
192.168.0.14node13openEuler待扩容工作节点。

扩容配置文件样例

如下展示了高可用集群扩容与普通集群扩容的配置文件样例,下面扩容步骤中会以集群规划配置文件为基础,将其修改为集群扩容配置文件。

  1. 高可用集群扩容yaml文件样例。

    yaml
    apiVersion: openfuyao.io/v1beta1
    kind: cluster
    metadata:
        name: example-cluster
    spec:
        nodes:
            masters:
                - hostname: fuyao-master
                  user: root
                  ip: 192.168.0.6
                  port: 22
                  privateKeyPath: /root/.ssh/id_rsa
                  removeTaint: true
                  labels:
                    - name: label-name
                      value: label-value
            workers:
                - hostname: fuyao-worker
                  user: root
                  ip: o.x.y.z
                  port: 22
                  privateKeyPath: /root/.ssh/id_rsa
                  labels:
                    - name: label-name
                      value: label-value
        components:
            - name: kube-vip
              param:
                - name: vip
                  value: 192.168.100.129
                  type: string
                  describe: 虚拟ip
                - name: interface
                  value: eth0
                  type: string
                  describe: 网卡
  2. 普通集群扩容yaml文件样例。

    yaml
    apiVersion: openfuyao.io/v1beta1
    kind: cluster
    metadata:
        name: example-cluster
    spec:
        nodes:
            masters:
                - hostname: fuyao-master
                  user: root
                  ip: 192.168.0.6
                  port: 22
                  privateKeyPath: /root/.ssh/id_rsa
                  removeTaint: true
                  labels:
                    - name: label-name
                      value: label-value
            workers:
                - hostname: fuyao-worker
                  user: root
                  ip: o.x.y.z
                  port: 22
                  privateKeyPath: /root/.ssh/id_rsa
                  labels:
                    - name: label-name
                      value: label-value

扩容步骤

  1. 以root用户登录安装执行机。

  2. 下载安装工具与安装脚本,若之前安装集群时已下载安装包则跳过此步骤。

    curl -sfL https://openfuyao.obs.cn-north-4.myhuaweicloud.com/openFuyao/installer/releases/download/v25.03/download.sh | bash -

    执行上述命令默认下载最新版本的安装包,若想下载其他版本,请使用如下命令指定版本后进行工具下载。

    输入图片说明 说明:
    安装包完整校验请参见安装包完整性校验

    export VERSION=x.y.z
    
    curl -sfL https://openfuyao.obs.cn-north-4.myhuaweicloud.com/openFuyao/installer/releases/download/v25.03/download.sh | bash -
  3. 生成集群规划配置文件。

    • 进入安装包目录。

      输入图片说明 说明:
      此处以openEuler22.03 ARM64为例,具体路径应视实际情况而定。

      shell
      export INSTALLER_PACKAGE_PATH=fuyao-v25.03-openEuler-22.03-arm64
      
      cd $INSTALLER_PACKAGE_PATH
    • 执行如下命令,生成高可用配置文件。

      shell
      ./fuyao create cluster-config --ha
    • 配置文件内容如下。

      shell
      apiVersion: openfuyao.io/v1beta1
      kind: cluster
      metadata:
          name: example-cluster
      spec:
          nodes:
              masters:
                  - hostname: fuyao-master
                    user: root
                    ip: 192.168.0.6
                    port: 22
                    privateKeyPath: /root/.ssh/id_rsa
                    removeTaint: true
                    labels:
                      - name: label-name
                        value: label-value
              workers:
                  - hostname: fuyao-worker
                    user: root
                    ip: o.x.y.z
                    port: 22
                    privateKeyPath: /root/.ssh/id_rsa
                    labels:
                      - name: label-name
                        value: label-value
          components:
             - name: kube-vip
                param:
                  - name: vip
                    value: 192.168.100.129
                    type: string
                    describe: 虚拟ip
                  - name: interface
                    value: eth0
                    type: string
                    describe: 网卡
  4. 修改集群规划配置文件。

    • 编辑集群规划配置文件。

      shell
      export HA_ADD_NODE_CONFIG_FILE=example-cluster.yaml
      
      vi $HA_ADD_NODE_CONFIG_FILE
    • 填写节点清单信息,示例如下。

      • 至少填写1个控制平面节点信息与1个工作节点信息,在节点清单中,控制平面节点配置必须为集群内的控制平面节点。
      • hostname:集群中节点名称,需要与实际机器名称相同。
      • user:部署时用于登录节点的用户名,当前仅支持root用户。
      • ip:节点IP地址。
      • port:ssh使用的端口号,默认为22。
    • 输入i进入编辑状态进行修改。 修改完成后,输入:wq保存并退出,修改后的配置文件如下。

      yaml
      apiVersion: openfuyao.io/v1beta1
      kind: cluster
      metadata:
        name: example-cluster
      spec:
        # 节点清单
        nodes:
          # 控制平面节点配置
          masters:
            # 集群中hostname,可以和主机hostname不同
            - hostname: node5   # 修改项
              user: root        # 修改项
              ip: 192.168.0.6   # 修改项
              port: 22          # 修改项
              privateKeyPath: /root/.ssh/id_rsa  # 修改项(选填项)
            - hostname: node12  # 修改项
              user: root        # 修改项
              ip: 192.168.0.13  # 修改项
              port: 22          # 修改项
              privateKeyPath: /root/.ssh/id_rsa  # 修改项(选填项)
              labels:
                - name: node12       # 修改项(选填项)
                  value: master-04   # 修改项(选填项)
          workers:
            - hostname: node13  # 修改项
              user: root        # 修改项
              ip: 192.168.0.14  # 修改项
              port: 22          # 修改项
              privateKeyPath: /root/.ssh/id_rsa  # 修改项(选填项)
              labels:
                - name: node13      # 修改项(选填项)
                  value: worker-02  # 修改项(选填项)
        components:
          - name: kube-vip  # 若为非高可用集群扩容,则无需编写kube-vip组件
            param:
              - name: vip
                value: 192.168.0.50  # 修改项
                type: string
                describe: 虚拟IP
              - name: interface
                value: eth0          # 修改项
                type: string
                describe: 网卡
    • 若配置安装过程中使用密钥登录集群节点,则需提前在安装执行机配置使用SSH密钥登录所有集群节点。

  5. 在安装包目录内执行扩容。

    ./fuyao add nodes -f $HA_ADD_NODE_CONFIG_FILE

    若配置使用密码登录集群节点,则安装过程中需根据提示输入对应节点的密码。

  6. 扩容结果确认。

    自动化扩容过程执行成功后,可到控制平面节点执行如下命令查看扩容结果,当所有Pod状态都为running后表示环境准备完毕。

    kubectl get pod -A

    输入图片说明 说明:

    • 所有Pod状态都为running状态则安装完毕。具体时间与实际网络情况有关,网速较慢时等待时间会比较长。
    • openFuyao认证鉴权机制采用自签名方式生成密钥,所有认证鉴权密钥与配置文件存放在所有控制平面节点的/etc/kubernetes/webhook下,在完成安装后可自行选择删除该路径下文件,若删除该路径下文件后重启apiserver,则会导致认证失败。
    • 安装部署工具扩容时部署的组件均采用默认配置,仅用于测试openFuyao平台功能,若在生产环境使用,请自行调整Kubernetes、容器运行时、网络插件组件安全配置。

注意事项

多次扩容时,例如先扩容worker1节点,需要将worker1节点的信息写入到yaml文件中。准备再次扩容worker2节点时,只需要再将worker2节点的信息写入到yaml文件中,worker1节点信息不需要再次写入yaml文件。

卸载

  1. 以root身份登录安装执行机。

  2. 删除asset/install-component-manifest.yaml文件。

    rm asset/install-component-manifest.yaml
  3. 执行如下命令,进入安装包目录。

    shell
    cd $INSTALLER_PACKAGE_PATH

    编写配置文件,配置文件修改内容与安装时一致,填写集群中控制平面节点与工作节点的hostname、user、passwd、ip、port。

    shell
    vi $CLUSTER_HA_CONFIG_FILE

    输入图片说明 注意:
    需要将扩容节点填写到配置文件内。

  4. 在安装包目录内执行卸载。

    输入图片说明 须知:
    若环境中通过应用市场安装了多种应用或扩展组件,建议先通过应用管理或扩展组件管理卸载已安装的应用和扩展组件,否则可能会出现卸载慢或卸载失败的情况。

    shell
    ./fuyao destroy cluster -f <cluster-yam-path, eg:./example-cluster.yaml>
  5. 出现Successfully completed cluster destroy字样后即完成集群卸载。

    卸载操作未删除安装与卸载过程中打印的日志,日志存放路径为/var/log/fuyao-installer/,若想删除日志可执行如下命令。

    shell
    rm -rf /var/log/fuyao-installer/