本节介绍如何添加 KubeSphere 企业版集群节点。

节点添加过程中将用到开源工具 KubeKey。有关 KubeKey 的更多信息,请访问 GitHub KubeKey 仓库

说明

本节介绍的节点添加方式仅适用于 Kubernetes 通过 KubeKey 安装的场景。如果您的 Kubernetes 不是通过 KubeKey 安装,请参阅 Kubernetes 官方文档添加节点。

前提条件

  • 新增节点的操作系统和版本须为 Ubuntu 16.04、Ubuntu 18.04、Ubuntu 20.04、Ubuntu 22.04、Debian 9、Debian 10、CentOS 7、CentOS Stream、RHEL 7、RHEL 8、SLES 15 或 openSUSE Leap 15。多个集群节点的操作系统可以不同。关于其它操作系统和版本支持,请咨询青云科技官方解决方案专家或交付服务专家。

  • 为确保集群具有足够的计算和存储资源,建议新增节点配置至少 8 个 CPU 核心,16 GB 内存和 200 GB 磁盘空间。除此之外,建议在每台集群节点的 /var/lib/docker(对于 Docker)或 /var/lib/containerd(对于 containerd) 目录额外挂载至少 200 GB 磁盘空间用于存储容器运行时数据。

  • 如果添加控制平面节点,您需要提前为集群配置高可用性。如果您使用负载均衡器,请确保负载均衡器监听所有控制平面节点的 6443 端口。有关更多信息,请参阅配置高可用性

警告
  • 添加节点过程中不支持在 config-sample.yaml 配置文件中修改原有的集群配置。

  • 如果您无法获取安装配置文件 config-sample.yaml,您需要参阅安装 Kubernetes 和 KubeSphere 企业版 重新创建 config-sample.yaml 文件。重新创建该文件时,请务必确保文件中的集群信息与集群的当前实际情况一致。否则,添加节点后集群可能会出现错误。

操作步骤

  1. 如果您访问 GitHub/Googleapis 受限,请登录任意集群节点,执行以下命令设置下载区域:

    export KKZONE=cn
  2. 执行以下命令下载 KubeKey 最新版本:

    curl -sfL https://get-kk.kubesphere.io | sh -

    下载完成后当前目录下将生成 KubeKey 二进制文件 kk

    说明

    如果用于执行本节操作的集群节点无法连接互联网,您可以从互联网连接正常的设备手动下载 KubeKey 然后将其传输到用于执行本节操作的集群节点。

  3. 执行以下命令为 KubeKey 二进制文件 kk 添加执行权限:

    sudo chmod +x kk
  4. 将安装配置文件 config-sample.yaml 传输到当前目录。

  5. 执行以下命令编辑安装配置文件 config-sample.yaml

    vi config-sample.yaml
  6. config-sample.yaml 文件的 hosts 参数下设置新增节点的信息。

    参数 描述

    name

    用户自定义的服务器名称。

    address

    服务器的 SSH 登录 IP 地址。

    internalAddress

    服务器在子网内部的 IP 地址。

    port

    服务器的 SSH 端口号。如果使用默认端口 22 可不设置此参数。

    user

    服务器的 SSH 登录用户名,该用户必须为 root 用户或其他具有 sudo 命令执行权限的用户。如果使用 root 用户可不设置此参数。

    password

    服务器的 SSH 登录密码。如果已经设置 privateKeyPath 可不设置此参数。

    privateKeyPath

    服务器的 SSH 登录密钥的路径。如果已经设置 password 可不设置此参数。

    arch

    服务器的硬件架构。如果服务器的硬件架构为 arm64,请将此参数设置为 arm64,否则请勿设置此参数。安装包默认仅支持所有集群节点都为 x86_64 或 arm64 架构的场景。如果某集群节点的硬件架构不完全相同,需针对具体情况进行技术评估,请咨询青云科技官方解决方案专家或交付服务专家。

    警告

    请勿修改原有节点的信息。否则,添加节点后集群可能会出现错误。

  7. config-sample.yaml 文件的 roleGroups 参数下设置新增节点在集群中的角色。

    参数 描述

    etcd

    安装 etcd 数据库的节点。请在此参数下设置集群控制平面节点。

    control-plane

    集群控制平面节点。如果您已经为集群配置了高可用性,您可以设置多个控制平面节点。

    worker

    集群工作节点。

    registry

    用于创建私有镜像服务的服务器。该服务器不会用作集群节点。 安装、升级 KubeSphere 企业版时,如果集群节点无法连接互联网,需要在此参数下设置用于创建私有镜像服务的服务器。其他情况下请将此参数注释掉。

    警告

    请勿修改原有节点的角色。否则,添加节点后集群可能会出现错误。

  8. 如果新增控制平面节点并且当前集群未配置高可用性,在 config-sample.yaml 文件的 controlPlaneEndpoint 参数下设置高可用性信息。

    参数 描述

    internalLoadbalancer

    本地负载均衡器的类型。如果使用本地负载均衡配置,请将此参数设置为 haproxy。否则,请将此参数注释掉。

    domain

    负载均衡器的内部访问域名。请将此参数设置为 lb.kubesphere.local

    address

    负载均衡器的 IP 地址。如果使用本地负载均衡配置,请将此参数留空;如果使用专用负载均衡器,请将此参数设置为负载均衡器的 IP 地址;如果使用通用服务器作为负载均衡器,请将此参数设置为负载均衡器的浮动 IP 地址。

    port

    负载均衡器监听的端口号,即 apiserver 服务的端口号。请将此参数设置为 6443

    警告
    • 如果当前集群已配置高可用性,请勿修改 config-sample.yaml 文件中的高可用性信息。否则,添加节点后集群可能会出现错误。

    • 如果当前集群使用本地负载均衡实现高可用性,您不需要对集群高可用性进行任何操作;如果当前集群使用负载均衡器实现高可用性,您只需要设置负载均衡器监听所有控制平面节点的 6443 端口。有关更多信息,请参阅配置高可用性

  9. 保存配置文件,执行以下命令开始添加节点:

     ./kk add nodes -f config-sample.yaml
  10. 执行以下命令查看当前集群的节点:

    kubectl get node

    如果显示新增节点的信息,则表明节点添加成功。