创建本地集群

先决条件

节点要求

  1. 如果您从 下载安装包 下载了单架构安装包,请确保您的节点机器与该包具有相同的架构。否则,节点将因缺少特定架构的镜像而无法启动。
  2. 验证您的节点操作系统和内核是否受支持。详情请参见 支持的操作系统和内核
  3. 对节点机器进行可用性检查。具体检查项请参考 节点预处理 > 节点检查
  4. 如果节点机器的 IP 不能通过 SSH 直接访问,请为节点提供 SOCKS5 代理。global 集群将通过此代理服务访问节点。

负载均衡

对于生产环境,集群控制平面节点需要负载均衡器以确保高可用性。 您可以提供自己的硬件负载均衡器或启用 自建 VIP,该选项通过 haproxy + keepalived 提供软件负载均衡。 我们推荐使用硬件负载均衡器,因为:

  • 更好的性能:硬件负载均衡器的性能优于软件负载均衡器。
  • 更低的复杂性:如果您不熟悉 keepalived,错误的配置可能会导致集群不可用,从而导致漫长的故障排除过程,并严重影响集群的可靠性。

在使用自有硬件负载均衡器时,您可以使用负载均衡器的 VIP 作为 IP 地址 / 域名 参数。如果您有一个解析到负载均衡器 VIP 的域名,可以将该域名用作 IP 地址 / 域名 参数。 注意:

  • 负载均衡器必须正确将流量转发到集群中所有控制平面节点的端口 64431178011781
  • 如果您的集群只有一个控制平面节点,并且使用该节点的 IP 作为 IP 地址 / 域名 参数,则该集群无法从单节点扩展为高可用的多节点设置。因此,我们建议即使对于单节点集群也提供负载均衡器。

启用 自建 VIP 时,您需要准备:

  1. 一个可用的 VRID
  2. 一个支持 VRRP 协议的主机网络
  3. 所有控制平面节点和 VIP 必须在同一子网中,VIP 必须与任何节点 IP 不同。

连接global 集群和工作负载集群

平台要求 global 集群和工作负载集群之间相互访问。如果它们不在同一网络上,您需要:

  1. 为工作负载集群提供 外部访问 以确保 global 集群能够访问它。网络要求必须确保 global 可以访问所有控制平面节点上的端口 64431178011781
  2. global 添加一个工作负载集群可以访问的额外地址。在创建工作负载集群时,请将此地址添加到集群的注释中,键为 cpaas.io/platform-url,值设置为 global 的公共访问地址。

镜像仓库

集群镜像支持平台内置、私有仓库和公共仓库选项。

  • 平台内置:使用 global 集群提供的镜像仓库。如果集群无法访问 global,请参见 为内置仓库添加外部地址
  • 私有仓库:使用您自己的镜像仓库。有关将所需镜像推送到您的仓库的详细信息,请联系技术支持。
  • 公共仓库:使用平台的公共镜像仓库。在使用之前,请完成 更新公共仓库凭据

容器网络

如果您打算使用 Kube-OVN 的 Underlay 为您的集群提供服务,请参考 准备 Kube-OVN Underlay 物理网络

创建过程

  1. 进入 平台管理 视图,在左侧导航栏点击 集群/集群

  2. 点击 创建集群

  3. 根据以下说明配置以下部分:基本信息、容器网络、节点设置和扩展参数。

基本信息

参数描述
Kubernetes 版本

所有可选版本均经过严格测试,以确保稳定性和兼容性。
建议:选择最新版本以获得最佳功能和支持。

容器运行时

Containerd 被提供为默认容器运行时。
如果您希望使用 Docker 作为容器运行时,请参考 选择容器运行时

集群网络协议

支持三种模式:IPv4 单栈、IPv6 单栈、IPv4/IPv6 双栈。
注意:如果您选择双栈模式,确保所有节点都已正确配置 IPv6 地址;设置后无法更改网络协议。

集群端点

IP 地址 / 域名:如果没有域名可用,请输入预先准备的域名或 VIP。
自建 VIP:默认禁用。仅在未提供负载均衡器时启用。启用时,安装程序将自动部署 keepalived 以支持软件负载均衡。
外部访问:当集群与 global 集群不在同一网络环境中时,输入为集群准备的外部可访问地址。

容器网络

Kube-OVN
Calico
Flannel
自定义

灵雀云开发的企业级云原生 Kubernetes 容器网络编排系统。它将 OpenStack 领域的成熟网络能力引入 Kubernetes,支持跨云网络管理、传统网络架构与基础设施互联,以及边缘集群部署场景,同时大大增强 Kubernetes 容器网络的安全性、管理效率和性能。

参数描述
子网

又称集群 CIDR,表示 默认子网 段。集群创建后,可以添加其他子网。

传输模式

Overlay:在基础设施之上抽象出的虚拟网络,不消耗物理网络资源。创建 Overlay 默认子网时,集群中的所有 Overlay 子网都使用相同的集群 NIC 和节点 NIC 配置。
Underlay:此传输方式依赖于物理网络设备。它可以直接将物理网络地址分配给 Pods,确保性能和与物理网络的连接更好。Underlay 子网中的节点必须拥有多个 NIC,桥接网络使用的 NIC 必须专门用于 Underlay,并且不能承载其他流量,如 SSH。在创建 Underlay 默认子网时,集群 NIC 实际上是桥接网络的默认 NIC,节点 NIC 是桥接网络中节点的 NIC 配置。

  • 默认网关:物理网络网关地址,必须在集群 CIDR 地址范围内。
  • VLAN ID:虚拟局域网标识符(VLAN 编号),例如 0
  • 保留 IPs:设置不会被自动分配的保留 IP,例如,子网中已由其他设备使用的 IP。
服务 CIDR

Kubernetes 类型为 ClusterIP 的服务所使用的 IP 地址范围。不能与默认子网范围重叠。

加入 CIDR

在 Overlay 传输模式下,节点与 pods 之间通信所用的 IP 地址范围。不能与默认子网或服务 CIDR 重叠。

节点设置

参数描述
网络接口卡

集群网络插件使用的主机网络接口设备的名称。
注意:

  • 当选择 Kube-OVN 默认子网的 Underlay 传输模式时,必须指定网络接口名称,该名称将作为桥接网络的默认 NIC。
  • 平台对网络接口流量监控默认识别名为 eth.|en.|wl.|ww. 的接口流量。如果您使用不同命名约定的接口,请参考 监控自定义网络接口 在集群上线后修改相关资源,以确保平台能够正确监控网络接口流量。
节点名称

您可以选择使用节点 IP 或主机名作为平台上的节点名称。
注意: 当选择使用主机名作为节点名称时,确保添加到集群的节点的主机名是唯一的。

节点

添加节点 到集群,或 从草稿恢复 临时保存的节点信息。有关添加节点的详细参数描述,请参见下文。

监控类型

支持 PrometheusVictoriaMetrics
当选择 VictoriaMetrics 作为监控组件时,必须配置 部署类型:
- 部署 VictoriaMetrics: 部署所有相关组件,包括 VMStorageVMAlertVMAgent 等。
- 部署 VictoriaMetrics Agent: 仅部署日志收集组件 VMAgent。使用此部署方式时,您需要与平台上已在另一个集群中部署的 VictoriaMetrics 实例关联,以为集群提供监控服务。

监控节点

选择部署集群监控组件的节点。支持选择允许应用部署的计算节点和控制平面节点。
为避免影响集群性能,建议优先选择计算节点。集群成功创建后,存储类型为 本地卷 的监控组件将被部署在选定的节点上。

节点添加参数

参数描述
类型

控制平面节点: 负责运行 kube-apiserver、kube-scheduler、kube-controller-manager、etcd、容器网络和集群中的一些平台管理组件。当启用 可部署应用 时,控制平面节点也可以用作计算节点。
工作节点: 负责在集群中托管业务 Pods。

IPv4 地址

节点的 IPv4 地址。对于内部网络模式下创建的集群,请输入节点的 私有 IP

IPv6 地址

当集群启用 IPv4/IPv6 双栈时有效。节点的 IPv6 地址。

可部署应用

节点类型控制平面节点 时有效。是否允许在此控制平面节点上部署业务应用,将与业务相关的 Pods 调度到该节点。

显示名称

节点的显示名称。

SSH 连接 IP

通过 SSH 服务访问节点时可以连接到节点的 IP 地址。
如果您可以使用 ssh <username>@<node 的 IPv4 地址> 登录节点,则无需此参数;否则,请输入节点的公共 IP 或 NAT 外部 IP,以确保 global 集群和代理可以通过此 IP 连接到节点。

网络接口卡

输入节点使用的网络接口的名称。网络接口配置有效性优先级如下(从左到右,依次降低):
Kube-OVN Underlay:节点 NIC > 集群 NIC
Kube-OVN Overlay:节点 NIC > 集群 NIC > 节点默认路由对应的 NIC
Calico:集群 NIC > 节点默认路由对应的 NIC
Flannel:集群 NIC > 节点默认路由对应的 NIC

关联桥接网络

注意:创建集群时不支持桥接网络配置;该选项仅在向已创建 Underlay 子网的集群 添加节点 时可用。
选择现有的 添加桥接网络。如果不想使用桥接网络的默认 NIC,可以单独配置节点 NIC。

SSH 端口

SSH 服务端口号,例如 22

SSH 用户名

SSH 用户名,需要是具有 root 权限的用户,如 root

代理

是否通过代理访问节点的 SSH 端口。当 global 集群无法通过 SSH 直接访问要添加的节点(例如 global 集群和工作负载集群不在同一子网中;节点 IP 是 global 集群无法直接访问的内部 IP)时,需要打开此开关并配置代理相关参数。配置代理后,可以通过代理完成节点访问和部署。
注意:当前仅支持 SOCKS5 代理。
访问 URL:代理服务器地址,例如 192.168.1.1:1080
用户名:访问代理服务器的用户名。
密码:访问代理服务器的密码。

SSH 身份验证

登录已添加节点的身份验证方式及相关身份验证信息。选项包括:
密码:需要具有 root 权限的用户名和相应的 SSH 密码
密钥:需要具有 root 权限的 私钥私钥密码

保存草稿

将当前对话框中配置的数据作为草稿保存,并关闭 添加节点 对话框。
不离开 创建集群 页面,您可以选择 从草稿恢复 打开 添加节点 对话框并恢复保存为草稿的配置数据。
注意:从草稿恢复的数据为最近保存的草稿数据。

扩展参数

注意

  • 除了必要配置外,不建议设置扩展参数,因为配置不正确可能使集群不可用,并且创建集群后无法修改。

  • 如果输入的 与默认参数 重复,将覆盖默认配置。

过程

  1. 点击 扩展参数 展开扩展参数配置区域。您可以选择性地为集群设置以下扩展参数:
参数描述
Docker 参数

dockerExtraArgs,Docker 的额外配置参数,将写入 /etc/sysconfig/docker。不建议修改。要通过 daemon.json 文件配置 Docker,必须配置为键值对。

Kubelet 参数

kubeletExtraArgs,Kubelet 的额外配置参数。
注意:当输入 容器网络节点 IP 数量 参数时,系统会自动生成一个键为 max-pods,值为 节点 IP 数量 的默认 Kubelet 参数 配置。这设置了集群中任何节点上可以运行的最大 Pods 数量。此配置在界面上不显示。
Kubelet 参数 区域添加新的 max-pods:可运行的最大 Pods 数量 键值对将覆盖默认值。允许任何正整数,但建议使用默认值(节点 IP 数量)或输入不超过 256 的值。

控制器管理器参数

controllerManagerExtraArgs,控制器管理器的额外配置参数。

调度器参数

schedulerExtraArgs,调度器的额外配置参数。

APIServer 参数

apiServerExtraArgs,APIServer 的额外配置参数。

APIServer URL

publicAlternativeNames,在证书中发放的 APIServer 访问地址。只能输入 IP 或域名,最大 253 个字符。

集群注释

集群注释信息,以键值对的形式标记集群特征,便于平台组件或业务组件获取相关信息。

  1. 点击 创建。您将返回到集群列表页面,集群将处于 创建中 状态。

创建后的步骤

查看创建进度

在集群列表页面,您可以查看创建的集群列表。对于处于 创建中 状态的集群,您可以检查执行进度。

过程

  1. 点击集群状态右侧的小图标 查看执行进度

  2. 在出现的执行进度对话框中,您可以查看集群的执行进度 (status.conditions)。

    提示:当某一类型正在进行或处于失败状态时,悬停光标于相应的原因(以蓝色文本显示)上,可以查看该原因的详细信息 (status.conditions.reason)。

与项目关联

集群创建后,您可以将其添加到项目管理视图中的项目中。