集群管理
集群
概述
集群主要指运行容器应用的Kubernetes集群,ZStack Zaku提供标准化、高可用、稳定的Kunernetes集群,并简化集群的部署、扩容、升级、高可用等运维操作,让用户可以专注自己的上层容器应用。
创建集群
准备工作
- 确保要用于创建集群的节点已安装 ZStack Cloud定制版操作系统,请联系官方技术支持获取与当前平台版本配套的定制版操作系统。
- 确保作为管理节点的每台节点各挂载1个500G的数据盘,用于存储集群的监控和日志数据。
- 确保要用于创建集群的节点之间网络能够互通,且所有节点都能被管理集群访问。
创建集群
在ZStack Zaku主菜单,点击,进入集群界面。点击创建集群,进入创建集群界面。
创建集群分为以下三步:
- 节点配置可参考以下示例输入相应内容:
- 管理网与业务网复用:选择管理网是否复用业务网。开启后,管理网复用业务网,管理集群将通过节点的业务网IP访问节点、管理业务集群,请确保管理集群与业务网连通。
- 集群高可用:选择是否开启集群高可用。默认开启,如关闭,则集群不支持高可用,只需 1 个管理节点。生产环境不建议关闭集群高可用。
- 节点信息:填写要用于创建集群的节点的信息
- 添加方式:添加节点的方式,包括IP地址、IP范围
- 业务网IPv4地址:填写节点的业务网IPv4地址。添加方式为IP地址时填写该字段
- 管理网IPv4地址:填写节点的管理网IPv4地址。添加方式为IP地址时填写该字段。管理集群通过管理网 IPv4 地址访问、管理业务集群节点,请确保管理集群与该地址连通。管理网与业务网复用时,管理网 IPv4 地址和业务网 IPv4 地址相同
- 业务网IPv4范围:填写节点的业务网IPv4范围。添加方式为IP范围时填写该字段
- 管理网IPv4范围:填写节点的管理网IPv4范围。添加方式为IP范围时填写该字段。管理网与业务网复用时,管理网
IPv4 范围和业务网 IPv4 范围相同Note:
- 请确保填写的IP地址与机器实际配置一致。
- 请确保管理网IPv4地址与管理集群可连通。若管理网与业务网复用时,请确保业务网IPv4地址与管理集群可连通。
- 请确保各节点的业务网IPv4地址互相间可连通。
- 不同节点的管理网 IPv4 地址不能重复;不同节点的业务网 IPv4 地址不能重复;管理网与业务网不复用的情况下,管理网 IPv4 地址和业务网 IPv4 地址不能重复。
- 管理网与业务网不复用时,需确保管理网 IPv4 范围跟业务网 IPv4 范围的 IP 是一一对应的,同一个顺序上的 IP 属于同一个节点,如业务网 IPv4 范围的第 1 个 IP 和管理网 IPv4 范围的第 1个 IP 属于第 1 个节点。
- 请确保3个管理节点的业务网IPv4地址所在网卡的网卡名称一致,3个管理节点的管理网IPv4地址所在网卡的网卡名称一致。
- 节点名称:设置节点的名称。命名规则 :长度限制2-45字符
,只能包含小写字母、数字和分隔符 (-),
必须以小写字母开头,且不能以分隔符结尾。当添加方式是IP范围时,需指定起始后缀,节点名称由名称和后缀组成,后缀将会自动从起始后缀依次往上增加,如"-1/-2/-3"以此类推。Note:
- 添加节点过程中会将主机的hostname设置为节点名称。
- 本批次节点使用的节点名称不能重复。
- 节点角色:选择节点的角色,可选:管理节点、计算节点、GPU节点。开启集群高可用时,一个集群必须要有3个管理节点;关闭集群高可用时,一个集群必须要有1个管理节点。Note:
- 管理节点可同时作为计算节点,则业务容器组也可调度到管理节点。
- GPU 节点在部署过程中将自动安装对应组件,请根据实际情况选择是否将机器安装为GPU节点。
- 如勾选 GPU节点,请确保该节点已正确安装 GPU 驱动,如未安装驱动,则只会安装对应组件不会将节点设置为 GPU节点角色。
- GPU厂商:节点角色勾选 GPU节点时需填写该字段,选择该节点上的 GPU
的厂商,系统将安装对应厂商的 GPU 相关组件,当前支持:NVIDIA、华为、海光、天数、阿里巴巴Note:
- 华为NPU驱动及相关组件需要使用系统账户HwHiAiUser、hwMindX及UID/GID 1000、9000。若提示UID/GID被占用,表示所列节点的UID/GID 1000或9000已被上述华为账户以外的用户或用户组占用。
- 选择华为GPU厂商时,需在提示的节点上处理占用冲突,重新检测通过后才能继续。
- 未选择华为GPU厂商时,可确认风险后继续;但后续使用华为NPU前仍需处理冲突,否则可能无法安装驱动或相关组件。
- 天数GPU虚拟化许可证:当存在GPU节点且GPU厂商为天数时需填写该字段,填写天数 GPU 虚拟化的许可证,如需在容器中共享天数 GPU 需要该许可证,许可证从天数官方获取
- 节点ROOT密码:填写节点root账号密码 ,便于添加节点过程中 ,SSH到节点执行安装步骤,请确保每个节点的ROOT密码一致
- 节点SSH端口:填写SSH节点使用的端口 ,便于添加节点过程中 ,SSH到节点执行安装步骤 ,请确保每个节点的该端口可被连通
- 基础配置可参考以下示例输入相应内容:
- 集群名称:设置集群的名称。命名规则 :长度限制2-50字符 ,只能包含小写字母、数字和分隔符 (-),必须以小写字母开头,不能以分隔符结尾
- 集群版本:选择集群的 Kubernetes 版本,默认 1.35版本,可通过配置开启1.30版本
- 业务网VIP:填写集群 API Server 在业务网的高可用地址,请填写业务网网段内的
IPv4 地址。
- 业务网所属云平台网络:已对接ZStack Cloud 5.2.0及以上版本,且存在包含该VIP的云平台网络时,选择VIP所属网络。平台将在所选网络中保留该IP,避免被其他云平台资源使用。
- 管理网VIP:填写集群 API Server 在管理网的高可用地址,请填写管理网网段内的
IPv4 地址。若管理网与业务网复用,则管理网VIP与业务网VIP相同。
- 管理网所属云平台网络:管理网与业务网不复用时,按上述条件选择管理网VIP所属网络,平台将在所选网络中保留该IP。
- 每节点最大容器组数量:填写每个节点允许运行的最大容器组数量,默认为110,只能填写50~1000的整数
- 监控日志磁盘:监控日志磁盘用于监控、日志组件创建数据卷,存储监控、日志数据。请为每台管理节点各选择 1 块磁盘作为监控日志磁盘。
- 网络插件:集群使用的网络插件,固定为Calico
- 网络模式:选择集群的网络模式,默认为VXLAN
- VXLAN(默认):叠加网络,对机房零要求、开箱即用,适用绝大多数场景。
- BGP:无封装、容器组 IP 集群外可直达,适用机房已用 BGP、需集群外直连容器组 IP、或对性能要求极高的场景。
Note: 选择BGP模式的前置条件:机房交换机支持并已配置 BGP(AS/邻居);容器组网段与机房网段不冲突;放通 TCP 179 端口。BGP 模式需机房网络支持 BGP 并已配置对接,否则集群网络不通。Note: BGP模式当前存在以下使用限制:- 仅业务集群支持BGP模式,管理集群不支持。
- BGP模式的集群不支持开启微服务治理,不支持部署微服务治理组件。
- BGP模式的集群不支持使用容器组外部网络。
- BGP模式的集群暂不支持集群升级。
- 路由器BGP地址:网络模式为BGP时需填写该字段,填写对端路由器的BGP地址,必须是IPv4格式,不能跟节点IP、容器组网段、服务网段冲突
- 路由器AS号:网络模式为BGP时需填写该字段,填写对端路由器的AS号,只能是1~4294967294的整数,不能填写23456、65535
- 集群AS号:网络模式为BGP时需填写该字段,填写本集群使用的AS号,只能是1~4294967294的整数,不能填写23456、65535,且不能与路由器AS号一致,不能与平台上已存在的集群AS号一致
- BGP RR 节点:网络模式为BGP时展示该字段,即与对端路由器建立 BGP 会话的节点,请在路由器上将其配置为 BGP 邻居。高可用集群固定为节点配置中填写的3个管理节点,单管理节点集群固定为该管理节点
- 容器组网段:填写集群中容器组使用的网段,用于分配容器组使用的 IP 地址
- 网络模式为VXLAN时,默认为10.233.64.0/18,必须是CIDR格式且掩码小于24。如修改默认容器组网段,请避免与内网网段及创建本集群时使用的其他网段重叠。
- 网络模式为BGP时,无默认值,必须是CIDR格式且掩码小于等于26。该网段会通告到物理网络、对集群外可路由,需填写由网络管理员分配、全局唯一、并已在路由器侧放行的网段,同时避免与机房现有网段、节点管理网IP所在网段及其他集群的容器组网段重叠。
- 节点IP块掩码:选择每次从容器组网段为节点上容器组申请的 IP
块掩码,可选/24~/30,默认为/26(每次申请64个IP)。掩码必须大于容器组网段的掩码,网段受限或单节点容器组较少时可调大掩码以容纳更多节点Note: 节点IP块掩码在集群创建后不可修改。
- 服务网段:填写集群中服务使用的网段,用于分配服务使用的 ClusterIP,默认为10.233.0.0/18。如修改默认服务网段,请避免与内网网段及创建本集群时使用的其他网段重叠
- DNS服务器:添加 DNS 服务器,提供 DNS 解析服务,解析集群外部域名,如未部署专用的 DNS 服务器,可填写公共 DNS 服务器地址,如 223.5.5.5
- 微服务治理:选择是否开启微服务治理,开启后,将在集群中部署微服务治理相关组件,支持在集群使用微服务治理相关功能。网络模式为BGP时不支持开启
- 镜像数据盘:可选项,选择用于存储镜像数据的镜像数据盘。若未设置镜像数据盘,则镜像数据默认存放在系统盘。当使用的镜像较多较大时,建议给节点专门加载一块磁盘存放镜像,避免镜像数据将系统盘占满,导致系统异常。
- 确认配置
确认集群的配置信息,支持跳转修改。
点击确定后,系统将开始创建集群,用户点击,进入集群界面,查看集群的创建情况。
管理集群
在ZStack Zaku主菜单,点击,进入集群界面。
集群支持以下操作:
| 操作 | 描述 |
|---|---|
| 创建集群 | 创建一个新的集群。 |
| 重新安装 | 重新安装创建失败的集群。 |
| 集群详情 | 进入集群详情页,查看集群的基本信息、网络配置、资源用量、kubeconfig,及集群操作日志,包括:创建集群、添加节点、移除节点等的日志。 Note:
点击容器组页签,查看当前集群的容器组,并可按当前页或全部导出符合查询条件的信息。容器组操作请参见管理容器组。 Note: 容器组所在命名空间未加入项目时,无法打开详情或终端连接,请联系管理员将命名空间加入项目。 |
| 功能组件 | 进入集群详情页,点击功能组件,可以查看平台支持的功能组件及组件在集群的部署情况,并根据需要部署组件。 |
| 纳管集群 | 将已有的 Kubernetes 集群纳管到平台进行管理。 Note:
|
| 取消纳管 | 取消纳管集群,取消后,将无法在当前平台上继续使用和管理该集群。 |
| 删除集群 | 将集群删除。 Note: 删除集群将同步删除当前集群内的所有资源,并清除节点上的集群配置。清除的资源和配置不可恢复,请谨慎操作。 |
集群访问配置
- 下载并安装最新版kubectl用户端,详见安装部署kubectl用户端。
- 查看集群Kubeconfig。
- 在ZStack Zaku主菜单,点击右上角,即可查看当前集群KubeConfig。
- 管理员也可直接进入集群详情页查看集群KubeConfig。
- 根据集群的网络情况,可选择使用业务网VIP或管理网VIP访问集群,选择对应的KubeConfig,复制Kubeconfig中的内容,并粘贴到kubectl用户端的$HOME/.kube/config目录下,即可完成访问配置。
Kubectl终端
Kubectl终端是平台提供的网页版命令行工具,无需在本地安装kubectl用户端,即可直接连接集群并执行kubectl命令。
- 在ZStack Zaku主菜单,点击右上角,在弹窗中选择集群并点击确定,系统将在新标签页打开Kubectl终端。
- 在集群界面,点击集群操作列的Kubectl终端,直接在新标签页打开该集群的Kubectl终端。
- 进入集群详情页,点击右上角操作中的Kubectl终端,或点击总览基本信息卡片中的打开Kubectl终端,直接在新标签页打开该集群的Kubectl终端。
- 用户可打开其加入的所有项目下命名空间所属集群的Kubectl终端,在终端中的操作权限与用户在平台的项目及读写权限保持一致,不能越权操作。
- 自建集群和管理集群在运行中、扩缩容中状态时可打开Kubectl终端,纳管集群仅运行中状态时可打开,其余状态不可打开。
- 支持同时打开多个Kubectl终端页面,各终端会话相互独立,互不影响。
- 离开页面或关闭标签页时连接将断开;20分钟无操作将自动断开连接。
集群高级设置
在ZStack Zaku主菜单,点击,进入集群界面。点击集群名称,进入集群详情页,点击高级设置,进入高级设置子页面。
集群支持以下高级设置:
| 名称 | 描述 |
|---|---|
| 日志数据保留时间 |
|
| 日志数据卷大小 |
|
| 恢复日志数据写入 |
Note:
|
| 监控数据保留时间 |
Note:
|
| 监控数据卷大小 |
Note:
|
| 节点弹性伸缩组 |
Note:
|
功能组件
功能组件列表展示了平台支持的功能组件及组件在集群的部署情况,用户可按需部署组件。目前支持如下 5 种功能组件:微服务治理组件、工作负载弹性伸缩组件、ZStone-RBD-CSI、ZCE-iSCSI-CSI、ZCE-NFS-CSI。
微服务治理组件
微服务治理组件包括istiod、可视化插件等微服务治理所需的所有组件,提供微服务治理能力,部署微服务治理组件后即可在集群使用微服务治理相关功能。
部署微服务治理组件
在ZStack Zaku主菜单,点击,进入集群界面。点击集群名称,进入集群详情页,点击功能组件,进入功能组件子页面。点击功能组件列表的微服务治理组件后面的部署按钮,打开部署微服务治理组件的弹窗。
- 命名空间默认为istio-system,若输入新的命名空间,将默认创建该命名空间,并将微服务治理组件部署在该命名空间。
- 请确保所填写的命名空间下未部署istio相关组件,以免出现冲突。
- 若微服务治理组件部署失败,可再次部署,此时命名空间不可再更改。
- 已成功部署微服务治理组件的集群不可再次部署。
- 网络模式为BGP的集群不支持微服务治理,无法部署微服务治理组件。
ZStone-RBD-CSI
ZStone-RBD-CSI 用于 Kubernetes 与 ZStone 的块存储服务对接,为容器提供持久化块存储。部署 ZStone-RBD-CSI 后即可对接到ZStone的块存储,在集群通过使用相关存储类创建数据卷进行使用。
准备工作
- 已存在可用的ZStone存储服务。
- 已在管理集群将ZStone-RBD-CSI的镜像及chart准备就绪。可按如下步骤操作:
- 请联系官方技术支持获取ZStone-RBD-CSI的镜像和chart资源包。
- 将获取的资源包上传到管理集群的第三个节点(如不是高可用集群则是第一个节点),并执行如下命令安装资源包:
bash zaku-${k8s version}-${version}-all-in-one-addon-csi.bin。其中${k8s version}与${version}分别是k8s集群版本及平台版本,根据具体的资源包名称填写。 - 只需在管理集群上传一次资源包,即可在该环境的任意集群安装ZStone-RBD-CSI。
部署ZStone-RBD-CSI
在ZStack Zaku主菜单,点击,进入集群界面。点击集群名称,进入集群详情页,点击功能组件,进入功能组件子页面。点击功能组件列表的ZStone-RBD-CSI后面的部署按钮,打开部署ZStone-RBD-CSI的弹窗。
- 存储集群ID:填写要对接的ZStone 存储集群的
UUID,可在存储节点上执行如下命令获得:
ceph -s | grep id: | awk '{print $2}' - Mon地址:填写存储服务的Mon地址,可在存储节点上执行如下命令获得:
ceph mon dumpNote:- 当存储服务有多个Mon地址时,请分别填入每个输入框。
- Mon地址需包含 IP 和端口,如:“172.31.12.216:6789”
- 存储池:填写存储池id,可在存储节点上执行如下命令获得:
rados lspools。数据卷对应的块存储将创建到该存储池
- 同一个集群不支持同时部署ZStone和ZCE的CSI。
- 已成功部署ZStone-RBD-CSI的集群不能再次部署。
- 对于部署失败的集群,可以卸载后再重新部署。
- ZStone-RBD-CSI默认部署在 zstack-csi 命名空间,部署CSI时将同步创建名称为 zaku-rbd的存储类,可使用该存储类创建数据卷使用块存储卷。
- 可在集群详情页的操作日志子页面查看部署的详细日志。
ZCE-iSCSI-CSI
ZCE-iSCSI-CSI 用于 Kubernetes 与 ZCE 的块存储服务对接,为容器提供持久化块存储。部署 ZCE-iSCSI-CSI 后即可对接到ZCE的块存储,在集群通过使用相关存储类创建数据卷进行使用。
准备工作
- 已存在可用的 ZCE 存储服务。
- 已在管理集群将ZCE-iSCSI-CSI的镜像及chart准备就绪。可按如下步骤操作:
- 请联系官方技术支持获取ZCE-iSCSI-CSI的镜像和chart资源包。
- 将获取的资源包上传到管理集群的第三个节点(如不是高可用集群则是第一个节点),并执行如下命令安装资源包:
bash zaku-${k8s version}-${version}-all-in-one-addon-csi.bin。其中${k8s version}与${version}分别是k8s集群版本及平台版本,根据具体的资源包名称填写。 - 只需在管理集群上传一次资源包,即可在该环境的任意集群安装ZCE-iSCSI-CSI和ZCE-NFS-CSI。
部署ZCE-iSCSI-CSI
在ZStack Zaku主菜单,点击,进入集群界面。点击集群名称,进入集群详情页,点击功能组件,进入功能组件子页面。点击功能组件列表的ZCE-iSCSI-CSI后面的部署按钮,打开部署ZCE-iSCSI-CSI的弹窗。
- multipathVendor:填写multipathVendor,在存储节点上执行如下命令获得:
sed -n -re 's/(.*DiskVendor\s*=\s*)(.*)/\2/p' /etc/xms/xms.conf - multipathProduct:填写multipathProduct,在存储节点上执行如下命令获得:
sed -n -re 's/(.*DiskModel\s*=\s*)(.*)/\2/p' /etc/xms/xms.conf - 存储服务访问令牌:填写在 ZCE 存储服务控制台生成的访问令牌
- 块存储访问路径:设置块存储访问路径,部署ZCE-iSCSI-CSI时,将自动在存储服务创建该名称的块存储访问路径,请确保设置的名称不会与存储服务控制台上块存储管理-访问路径中已有的访问路径名称冲突
- 存储服务管理节点IP:在存储服务器控制台-资源管理-节点列表获取有管理角色的节点的 IP,分别在每个输入框填写各管理节点的 IP
- 存储服务管理节点名称:在存储服务器控制台-资源管理-节点列表获取有管理角色的节点的名称,分别在每个输入框填写各管理节点的名称
- 存储池名称:填写存储服务控制台-资源管理-存储池中的存储池名称,数据卷对应的块存储将创建到该存储池
- 同一个集群不支持同时部署ZStone和ZCE的CSI。
- 已成功部署ZCE-iSCSI-CSI的集群不能再次部署。
- 对于部署失败的集群,可以卸载后再重新部署。
- ZCE-iSCSI-CSI默认部署在 zstack-csi 命名空间,部署CSI时将同步创建名称为 zaku-rbd的存储类,可使用该存储类创建数据卷使用块存储卷。
- 可在集群详情页的操作日志子页面查看部署的详细日志。
ZCE-NFS-CSI
ZCE-NFS-CSI 用于 Kubernetes 与 ZCE 的文件存储服务对接,为容器提供持久化文件存储。部署 ZCE-NFS-CSI 后即可对接到ZCE的文件存储,在集群通过使用相关存储类创建数据卷进行使用。
准备工作
- 已存在可用的 ZCE 存储服务。
- 已在管理集群将ZCE-NFS-CSI的镜像及chart准备就绪。可按如下步骤操作:
- 请联系官方技术支持获取ZCE-NFS-CSI的镜像和chart资源包。
- 将获取的资源包上传到管理集群的第三个节点(如不是高可用集群则是第一个节点),并执行如下命令安装资源包:
bash zaku-${k8s version}-${version}-all-in-one-addon-csi.bin。其中${k8s version}与${version}分别是k8s集群版本及平台版本,根据具体的资源包名称填写。 - 只需在管理集群上传一次资源包,即可在该环境的任意集群安装ZCE-iSCSI-CSI和ZCE-NFS-CSI。
部署ZCE-NFS-CSI
在ZStack Zaku主菜单,点击,进入集群界面。点击集群名称,进入集群详情页,点击功能组件,进入功能组件子页面。点击功能组件列表的ZCE-NFS-CSI后面的部署按钮,打开部署ZCE-NFS-CSI的弹窗。
- 存储服务访问令牌:填写在 ZCE 存储服务控制台生成的访问令牌
- NFS共享地址:填写在存储服务控制台-文件存储管理-文件共享-NFS共享中创建的NFS共享的共享地址,分别在每个输入框填写各共享地址Note:
- 不同的 ZCE-NFS-CSI 需要使用不同的 NFS 共享,请给每个 ZCE-NFS-CSI 都创建一个 NFS 共享。
- 在 ZCE 存储服务控制台创建NFS共享时客户端组(V5版本)或客户端IP(V6版本)请设置为Every-Client。
- 存储服务管理节点IP:在存储服务器控制台-资源管理-节点列表获取有管理角色的节点的 IP,分别在每个输入框填写各管理节点的 IP
- 同一个集群不支持同时部署ZStone和ZCE的CSI。
- 已成功部署ZCE-NFS-CSI的集群不能再次部署。
- 对于部署失败的集群,可以卸载后再重新部署。
- ZCE-NFS-CSI默认部署在 zstack-csi 命名空间,部署CSI时将同步创建名称为 zaku-share 的存储类,可使用该存储类创建数据卷使用文件存储。
- 可在集群详情页的操作日志子页面查看部署的详细日志。
工作负载弹性伸缩组件
工作负载弹性伸缩组件基于 KEDA 构建,包含伸缩控制器、指标服务和准入校验等核心组件,支持通过统一管理资源指标、Prometheus 指标和定时伸缩策略,为工作负载提供统一、可扩展的自动扩缩容能力。部署工作负载弹性伸缩组件后,即可在工作负载详情页的弹性伸缩标签页为工作负载配置伸缩策略。
部署工作负载弹性伸缩组件
在ZStack Zaku主菜单,点击,进入集群界面。点击集群名称,进入集群详情页,点击功能组件,进入功能组件子页面。点击功能组件列表的工作负载弹性伸缩组件后面的部署按钮,打开部署工作负载弹性伸缩组件的弹窗。
- 仅自建集群支持部署工作负载弹性伸缩组件,纳管集群的功能组件列表不展示该组件。
- 组件默认部署在zstack-autoscaling命名空间,该命名空间为系统保留命名空间,在命名空间等页面不可见。
- 如系统检查到当前集群中已存在非平台部署的工作负载弹性伸缩(KEDA)相关资源,为避免重复部署导致集群级资源冲突,将无法部署,请清理相关资源后重试。
- 如系统检测到集群中已存在非平台创建的zstack-autoscaling命名空间,为避免部署冲突或影响该命名空间中的已有资源,将无法部署,请先迁移其中资源并删除该命名空间后重试。
- 组件部署成功后暂不支持手动卸载;部署失败时可重新部署或卸载。
节点弹性伸缩组
概述
节点弹性伸缩组是适配 Kubernetes 集群的核心资源调度组件,核心通过对接云平台自动创建/删除云主机节点,再根据业务负载动态增减集群节点数量,实现资源供给与业务需求的精准匹配,是保障 K8S 集群高效、稳定运行的关键工具。
功能原理
- 扩容:当系统监测到集群资源紧张(存在待调度 Pod)时,会自动筛选符合条件的节点弹性伸缩组,通过云平台 API 按节点弹性伸缩组预设的节点配置(如计算规格、镜像、网络、存储等)自动创建云主机,完成初始化后将其加入集群供 Pod 调度。
- 缩容:当系统监测到集群资源长期闲置(如 CPU / 内存申请率持续低于 50%)时,会自动选取符合条件的节点弹性伸缩组,先通过 K8s 原生驱逐机制迁移目标节点上的可调度 Pod,再移除该节点并同步删除对应的云主机,释放资源。
- 伸缩组筛选:弹性扩缩容过程中,系统会从所有符合预设条件的节点弹性伸缩组中,随机选取目标组执行对应操作。
关键特性
- 多维度触发条件,支持基于 Pod Pending 状态、CPU / 内存使用率等触发伸缩。
- 兼容 K8s 原生规则,可关联节点选择器、节点亲和性 / 反亲和性配置,确保扩容节点符合 Pod 调度要求。
- 优雅伸缩机制,缩容前自动驱逐节点上的可调度 Pod 至其他健康节点,避免业务中断;内置节点健康检查,自动替换异常节点。
典型应用场景案例
- 周期性任务场景:每日固定时段(如早高峰数据处理、夜间备份)出现计算负载峰值,伸缩组按负载指标扩容,任务结束后快速缩容,提升资源利用率。
- 突发流量场景:APP 版本更新、热点事件引发突发访问量,伸缩组通过实时负载监测快速扩容,避免集群过载;流量回落时自动缩容,无需人工介入。
- 电商大促场景:促销活动期间流量激增,Pod 调度请求暴增,伸缩组触发扩容补充节点,保障订单、支付等核心服务正常运行;活动结束后自动缩容,降低闲置资源成本。
使用限制
- 支持 kubernetes 1.30及以上版本的集群;
- 仅支持自建集群,不支持纳管集群;
- 弹性扩容时,待扩容节点的 vCPU 总量不能超出许可证可用额度。
- 通过创建集群时初始化的节点,以及在节点列表手动添加的节点,均不属于节点弹性伸缩组管理范围,无法被自动缩容。
创建节点弹性伸缩组
在ZStack Zaku主菜单,点击,进入节点弹性伸缩组界面。点击创建节点弹性伸缩组,进入创建节点弹性伸缩组界面。
创建节点弹性伸缩组分为以下三步:
- 基础配置可参考以下示例输入相应内容:
- 伸缩组名称:设置节点弹性伸缩组的名称。命名规则:长度限制 1-50 字符,只能包含小写字母、数字及特殊字符 "-",且必须以小写字母开头,以数字或小写字母结尾
- 简介:可选项,备注相关信息
- 最小节点数:设置最小节点数。系统将保证节点弹性伸缩组下的节点数一直不会小于最小节点数
- 最大节点数:设置最大节点数。弹性扩容时,组内节点数将不会超过设置的最大节点数
- 节点标签:添加节点标签。扩容时将自动给节点添加设置的标签,同时系统会遵循 Pod指定的节点选择器和节点亲和性中的 requiredDuringSchedulingIgnoredDuringExecution 约束,仅考虑拥有符合这些约束条件的节点标签的节点弹性伸缩组
- 节点配置设置节点配置,弹性扩容时将根据该节点配置在云平台创建云主机。可参考以下示例输入相应内容:
- 节点名称前缀:设置节点名称前缀,节点名称将由节点名称前缀及系统自动生成的随机数组成,云主机名称将由k8s集群名称和节点名称组成
- 云主机所属区域:选择云平台的区域,云主机将创建到该区域
- CPU架构:设置云主机的CPU架构
- 操作系统:选择云主机的操作系统
- CPU:设置云主机的CPU大小
- 内存:设置云主机的内存大小
- 根云盘容量:设置云主机的根云盘容量
- 镜像数据盘:可选,如集群中的应用较多镜像较大时建议添加1个数据云盘作为镜像数据盘,存储镜像数据
- 网络配置:选择节点业务网、管理网使用的三层网络,其中业务网将作为云主机的默认网络Note:
- 请确保业务网使用的三层网络能跟集群中其他节点互通。
- 集群的管理网和业务网复用的情况下,请确保业务网能被管理集群访问。
- 只有在集群的管理网和业务网不复用的情况下,才需设置管理网,此时管理网需使用跟管理集群网络同网段的网络。
- ROOT密码:设置云主机 ROOT 账号的密码
- SSH端口:设置SSH到云主机时使用的端口,默认为 22
- DNS服务器:添加DNS服务器,用于解析 K8S 集群外部域名,如未部署专用的DNS服务器,可填写公共 DNS 服务器地址,如223.5.5.5
- 高可用模式:可选,设置云主机的高可用模式,支持None和NeverStop两种,默认为None
- 云主机集群:可选,选择云平台的集群,云主机将创建到该集群,若未指定将由云平台自动分配
- 根云盘主存储:可选,设置云主机的根云盘使用的主存储,若未指定将由云平台自动分配
- 数据云盘主存储:可选,设置云主机的数据云盘使用的主存储,若未指定将由云平台自动分配
- 确认信息
确认节点弹性伸缩组的配置信息,支持跳转修改。
管理节点弹性伸缩组
在ZStack Zaku主菜单,点击,进入节点弹性伸缩组界面。
| 操作 | 描述 |
|---|---|
| 创建节点弹性伸缩组 | 为集群添加节点弹性伸缩组,以达到自动扩缩容节点的效果。 |
| 修改基础配置 | 修改节点弹性伸缩组的基础配置。 Note: 节点弹性伸缩组的状态异常时不能修改基础配置。 |
| 修改节点配置 | 修改节点弹性伸缩组的节点配置。 Note:
|
| 故障恢复 | 当云平台故障、许可证超额等原因导致弹性扩容反复失败时可能导致节点弹性伸缩组故障,在排查故障原因并处理后,可通过故障恢复使节点弹性伸缩组自动恢复正常。 |
| 节点弹性伸缩组详情 |
|
| 删除节点弹性伸缩组 | 删除节点弹性伸缩组。 Note: 删除节点弹性伸缩组将同步移除伸缩组下的节点并删除节点对应的云主机,这可能导致节点上原来运行中的容器组由于资源不足而异常,请谨慎操作。 |
节点
概述
节点是Kubernetes集群的基本组成元素,分为管理节点 (Master) 和计算节点 (Node)。用户可根据实际需求,为集群添加或移除计算节点。
添加节点
添加节点主要指为Kubernetes集群添加计算节点,以达到扩容的效果。
准备工作
- 将主机作为计算节点添加进集群前,需确保该主机已安装ZStack Cloud定制版操作系统。请联系官方技术支持获取与当前平台版本配套的定制版操作系统。
- 确保所有容器组外部网络段对应的外部网络的网卡都在主机存在,以保证相关网络服务正常运行。
添加节点
在ZStack Zaku主菜单,点击,进入节点界面。点击添加节点,进入添加节点界面。
添加节点分为以下三步:
- 节点配置可参考以下示例输入相应内容:
- 集群名称:默认展示当前集群名称
- 管理网与业务网复用:默认展示当前集群管理网与业务网复用是否开启,若开启,则节点的管理网 IPv4地址和业务网IPv4地址相同
- 节点信息:填写要添加的节点的信息
- 添加方式:添加节点的方式,包括IP地址、IP范围
- 业务网IPv4地址:填写节点的业务网IPv4地址。添加方式为IP地址时填写该字段
- 管理网IPv4地址:填写节点的管理网IPv4地址。添加方式为IP地址时填写该字段。管理网与业务网复用时,管理网 IPv4 地址和业务网 IPv4 地址相同
- 业务网IPv4范围:填写节点的业务网IPv4范围。添加方式为IP范围时填写该字段
- 管理网IPv4范围:填写节点的管理网IPv4范围。添加方式为IP范围时填写该字段。管理网与业务网复用时,管理网
IPv4 范围和业务网 IPv4 范围相同Note:
- 请确保填写的IP地址与机器实际配置一致。
- 请确保管理网IPv4地址与管理集群可连通。若管理网与业务网复用时,请确保业务网IPv4地址与管理集群可连通。
- 请确保各节点的业务网IPv4地址互相间可连通。
- 管理网与业务网不复用时,需确保管理网 IPv4 范围跟业务网 IPv4 范围的 IP 是一一对应的,同一个顺序上的 IP 属于同一个节点,如业务网 IPv4 范围的第 1 个 IP 和管理网 IPv4 范围的第 1个 IP 属于第 1 个节点。
- 批量添加节点时,本批次节点的管理网 IPv4 地址不能重复;本批次节点的业务网 IPv4 地址不能重复;管理网与业务网不复用的情况下,管理网 IPv4 地址和业务网 IPv4 地址不能重复。
- 本批次节点的管理网 IPv4 地址和业务网 IPv4 地址不能与集群已有节点重复。
- 节点名称:设置节点的名称。命名规则 :长度限制2-45字符
,只能包含小写字母、数字和分隔符 (-),
必须以小写字母开头,且不能以分隔符结尾。当添加方式是IP范围时,需指定起始后缀,节点名称由名称和后缀组成,后缀将会自动从起始后缀依次往上增加,如"-1/-2/-3"以此类推。Note:
- 添加节点过程中会将主机的hostname设置为节点名称。
- 节点名称不能与集群已有节点重复。
- 批量添加节点时,本批次节点使用的名称不能重复。
- 节点角色:默认为计算节点,可选GPU节点Note:
- GPU 节点在部署过程中将自动安装对应组件,请根据实际情况选择是否将机器安装为 GPU节点。
- 如勾选 GPU节点,请确保该节点已正确安装 GPU 驱动,如未安装驱动,则只会安装对应组件不会将节点设置为 GPU节点角色。
- GPU厂商:节点角色勾选 GPU节点时需填写该字段,选择该节点上的 GPU
的厂商,系统将安装对应厂商的 GPU 相关组件,当前支持:NVIDIA、华为、海光、天数、阿里巴巴Note:
- 华为NPU驱动及相关组件需要使用系统账户HwHiAiUser、hwMindX及UID/GID 1000、9000。若提示UID/GID被占用,表示所列节点的UID/GID 1000或9000已被上述华为账户以外的用户或用户组占用。
- 选择华为GPU厂商时,需在提示的节点上处理占用冲突,重新检测通过后才能继续。
- 未选择华为GPU厂商时,可确认风险后继续;但后续使用华为NPU前仍需处理冲突,否则可能无法安装驱动或相关组件。
- 天数GPU虚拟化许可证:当集群内还没有天数GPU卡,且此次添加节点存在GPU节点且GPU厂商为天数时需填写该字段,填写天数 GPU 虚拟化的许可证,如需在容器中共享天数 GPU 需要该许可证,许可证从天数官方获取
- 节点ROOT密码:填写节点root账号密码 ,便于添加节点过程中 ,SSH到节点执行安装步骤,请确保每个节点的ROOT密码一致
- 节点SSH端口:填写SSH节点使用的端口 ,便于添加节点过程中 ,SSH到节点执行安装步骤 ,请确保每个节点的该端口可被连通
- DNS服务器:添加 DNS 服务器,提供 DNS 解析服务,解析集群外部域名,如未部署专用的 DNS 服务器,可填写公共 DNS 服务器地址,如 223.5.5.5
- 高级配置可参考以下示例输入相应内容:
- 镜像数据盘:可选项,选择用于存储镜像数据的镜像数据盘。若未设置镜像数据盘,则镜像数据默认存放在系统盘。当使用的镜像较多较大时,建议给节点专门加载一块磁盘存放镜像,避免镜像数据将系统盘占满,导致系统异常。
- 确认配置
确认节点的配置信息,支持跳转修改。
点击确定后,系统将开始添加节点,集群状态变为扩缩容中,用户点击,进入集群界面,查看节点的添加情况。
- 目前仅支持添加计算节点和GPU节点,不支持添加管理节点。
- 集群处于异常或删除中状态时不允许添加节点。
管理节点
在ZStack Zaku主菜单,点击,进入节点界面。
| 操作 | 描述 |
|---|---|
| 添加节点 | 为集群添加计算节点,以达到扩容的效果。 Note:
|
| 移除节点 | 将节点从集群中移除。 Note:
|
| 停止调度 | 停止调度节点后,新部署的应用将无法调度到该节点上。支持批量操作,适用于节点维护场景。未勾选驱逐节点已有容器组时,已运行的容器组不受影响;勾选后,节点上的容器组将被驱逐,由控制器管理的容器组会在其他符合条件的节点重新创建。 Note:
|
| 恢复调度 | 恢复调度节点后,新部署的应用可以调度到该节点上。支持批量操作,可跳过不满足条件的节点,继续处理其余节点。 Note:
|
| 修改标签 | 添加、修改或删除节点标签。 Note:
|
| 修改角色 | 修改管理节点的角色,将管理节点设为或取消计算节点。
Note:
|
| 终端连接 | 通过网页终端SSH连接节点,无需借助第三方工具即可登录节点执行命令。点击终端连接后,需输入节点用户名、节点密码及节点SSH端口(默认为22)完成认证,认证通过后将打开节点的网页终端。 Note:
|
| 节点详情 |
|
| 导出节点信息 | 将节点信息导出为CSV文件。支持导出当前页、全部 |
GPU池
GPU池是集合多块 GPU 形成的资源共享单元,实现对 GPU 的动态管理与分配,提升资源利用率并优化资源分配灵活性。
查看GPU池
在ZStack Zaku主菜单,点击,进入GPU池界面。
- 监控图表:统计所选集群的GPU状态、显存使用率、显存申请率和GPU使用率,方便了解集群GPU资源的健康状况和使用情况。Note: GPU状态变化不会减少总显存和总GPU数量;移除掉卡设备后,容量统计会相应减少。
- GPU列表:查看GPU的UUID、状态、厂商、型号、设备地址、所属节点、已调度/总可调度容器数、显存及使用情况、温度和功耗,支持按GPU状态筛选。
- 正常:GPU设备运行正常。
- 故障:GPU设备存在,但检测到故障。
- 未知:无法确定GPU设备状态。
- 掉卡:未检测到此前使用的GPU设备。
管理GPU
GPU支持以下操作:
| 操作 | 描述 |
|---|---|
| GPU详情 | 点击GPU UUID,查看设备的基本信息、硬件信息、实时负载和已调度容器组。支持查看GPU使用率、显存使用率、温度、功耗、风扇转速及PCIe收发吞吐量的监控曲线。 Note: 可查看的监控指标取决于GPU厂商和型号。设备故障或掉卡前已采集的监控数据仍可查询。 |
| 移除 | 将掉卡GPU的记录从GPU池中移除。 Note: 仅支持移除掉卡状态的GPU。设备恢复后,会重新显示在GPU池中。 |
GPU调度策略
GPU调度策略用于设置GPU容器组在节点之间及节点内GPU卡之间的分布方式。
在ZStack Zaku主菜单,点击,进入GPU池界面。选择集群,点击调度策略页签,编辑默认调度策略。
- 节点调度策略:设置GPU容器组在不同节点之间的分布方式,默认为binpack。
- spread:在满足资源需求的前提下,将容器组尽量分散到不同的GPU节点上。
- binpack:在满足资源需求的前提下,将容器组尽量集中到较少的GPU节点上。
- GPU卡调度策略:设置GPU容器组在目标节点内选择GPU卡的方式,默认为spread。
- spread:在满足资源需求的前提下,将容器组尽量分散到不同的GPU卡上。
- binpack:在满足资源需求的前提下,将容器组尽量集中到较少的GPU卡上。
- GPU调度策略适用于NVIDIA、华为、海光和阿里巴巴GPU,天数GPU暂不支持。
- 工作负载或任务未单独配置的策略使用集群默认值;已单独配置的策略以工作负载或任务的配置为准。
- 修改仅影响后续创建或重新调度的GPU容器组,已运行的容器组不会自动迁移。修改期间,新创建、扩容、重建或重新调度的GPU容器组可能短暂等待调度。
