创建集群
通过平台可基于基础设施搭建一个 Kubernetes 业务集群。
约束与限制
-
集群创建成功后,集群的网络模式、容器网段和服务网段、GPU 类型、硬件架构、IPv4/IPv6 双栈、节点代理配置信息不可更改,需要重新创建集群才能调整,请谨慎配置。
-
集群中控制节点的个数只能为 1、3、5。当集群中仅有 1 个控制节点时,一旦控制节点异常,将导致整个集群不可用,请勿将此类集群作为生产环境使用。
-
一个节点只能属于一个集群,待添加节点不能被其他集群占用。且待添加至集群的节点的硬件架构需与集群 硬件架构 一致。
前提条件
-
当集群的控制节点个数为 3 或 5 时,请提前准备好硬件或软件负载均衡器,为集群提供负载均衡能力,例如:F5 设备、IaaS 层的负载均衡器或 HAProxy 软件等。
-
如需使用 自建 VIP 作为集群地址,使集群地址高可用,请提前联系平台的网络管理员或运维人员申请 VIP(Virtual IP)及 VRID(虚拟路由器 ID)。
提示:VIP 需为集群节点 IP 所在子网中的空闲 IP(IPv4 地址)且不可与节点 IP 相同。
-
如需从 外部 镜像仓库拉取集群所需的平台组件镜像,请提前搭建好存储平台组件镜像的镜像仓库,具体实施方案请联系技术支持人员。
-
节点相关:
-
请参考 节点可用性检查参照表 准备、检查待添加至集群的节点。确保条件均已满足,否则可能会导致集群部署失败。
-
如需为集群启用 GPU 特性,需要为作为 GPU 节点的服务器安装 GPU 驱动和 GPU 硬件,请参考 安装 GPU 驱动 。
-
当 global 集群无法直接通过 SSH 访问待添加至集群的节点,而需要通过代理访问时,请提前准备好代理服务。
提示:代理服务目前仅支持 SOCKS5 代理。
-
操作步骤
-
在左侧导航栏中,单击 集群管理 > 集群。
-
单击 创建集群。
-
参照以下说明,配置 基本信息、容器网络、节点配置 及 扩展参数。
配置基本信息
参数 | 说明 |
---|---|
Kubernetes 版本 | 集群的 Kubernetes 组件的版本及选中版本支持的容器运行时组件类型和版本。 提示:当其他要部署在集群上的业务组件对 Kubernetes 版本有强依赖关系时,请结合集群的业务用途,基于 自建集群组件版本要求 选择合适的版本。 |
运行时组件 | Kubernetes 版本 支持的容器运行时组件的类型及版本。 |
集群地址 | 集群对外暴露 API Server 的访问地址,需支持 https 协议。
|
镜像仓库 | 存储集群所需平台组件镜像的仓库。 - 平台默认:部署 global 时配置的镜像仓库。 - 外部:提前搭建的外部镜像仓库。需输入访问镜像仓库的 私有镜像仓库地址、端口、用户名、密码。 提示:若当前集群的节点无法访问 平台默认 的镜像仓库,请参考 业务集群无法访问平台默认镜像仓库,如何处理? |
GPU | 集群是否支持 GPU。若支持,部署成功的集群可为业务容器组提供 GPU 资源,允许在集群的 GPU 节点上调度 GPU 服务容器组。请根据 GPU 节点的属性选择提供的 GPU 资源类型。 不使用:不支持 GPU。 虚拟 GPU:可实现 GPU 共享和细粒度资源分配。1 vGPU = 0.01 核;1 个单位的显存为 256 Mi。 物理 GPU:只能整颗分配,1 颗 = 1 核。 |
硬件架构 | 集群的硬件架构类型,支持选择 X86 或 ARM。 注意:仅支持在当前集群下添加硬件架构与所选类型一致的节点。 |
配置容器网络
参数 | 说明 |
---|---|
IPv4/IPv6 双栈(Alpha) | 是否启用 IPv4/IPv6 双栈,支持双栈可以有效弥补 IPv4 网络地址资源有限的问题。 打开开关后,集群下节点可在双栈模式下运行,即节点可以同时拥有 IPv4 地址和 IPv6 地址,这两个 IP 地址都可以进行内网/公网访问,Flannel 不支持双栈模式。 注意:启用了双栈的集群,不支持还原为 IPv4 单栈。 当您的业务应用涉及到以下场景时,建议您启用双栈: - 您的应用需要为使用 IPv6 终端的用户提供访问服务。 - 您需要对使用 IPv6 终端访问应用提供的服务的访问来源进行数据分析处理。 - 如果您的应用系统与其他系统(例如:数据库系统)、应用系统之间需要使用 IPv6 进行内网访问。 |
网络模式 及相关配置 | -
Kube-OVN
- Calico - Flannel - 自定义 |
-
它是一款由灵雀云自主研发的开源企业级云原生 Kubernetes 容器网络编排系统,通过将 OpenStack 领域成熟的网络功能平移到 Kubernetes,不仅能够支持跨云网络管理、传统网络架构与基础设施的互联互通、边缘集群落地等复杂的应用场景,且极大增强了 Kubernetes 容器网络的安全性,提升了管理效率及性能。
参数 说明 网段 即 Cluster CIDR,表示 默认子网 网段,集群创建后,支持新增子网。 传输方式 Overlay:在基础设施之上抽象出的虚拟 Overlay 网络,不占用物理网络资源。创建 Overlay 默认子网时,集群内所有 Overlay 子网使用相同的集群网卡和节点网卡配置。
Underlay:该传输方式的实现依赖物理网络设备。可以直接给 Pod 分配物理网络中的地址资源,确保更好的性能以及和物理网络的连通性。Underlay 子网的节点必须为多网卡,且桥接网络使用的网卡需被 Underlay 独占,不可再承载其他流量,如 SSH。创建 Underlay 默认子网时,集群网卡实质上是一个桥接网络的默认网卡,节点网卡为桥接网络内的节点网卡配置。
提示:Underlay 传输方式下容器网络需要依赖物理网络支持,请和网络管理员共同规划,可参考最佳实践 准备 Kube-OVN Underlay 物理网络 。
- 默认网关:物理网络的网关地址,即 Cluster CIDR 网段的网关地址(必须在 Cluster CIDR 地址范围内)。
- VLAN ID:虚拟局域网标识(VLAN 编号),例如:0
。
- 保留 IP:设置的保留 IP 将不会被自动分配,例如子网内某些 IP 被其他设备占用,可将其设置为保留 IP。Service 网段 供类型为 ClusterIP 的 Kubernetes Service 使用的 IP 地址段,不可与默认子网的网段重叠。 Join 网段 Overlay 传输方式下,供节点与容器组间通信使用的 IP 地址段。不可与默认子网、Service 网段重叠。 -
Calico
Calico 是一种可为容器提供安全网络连接的三层网络方案,具有简单、易扩展、安全性高、性能好等优势。
参数 说明 默认子网 即 Cluster CIDR,表示默认子网网段,集群创建后,支持新增子网。 Service 网段 供类型为 ClusterIP 的 Kubernetes Service 使用的 IP 地址段,不可与默认子网重叠。 -
Flannel
Flannel 为集群内所有容器提供一个扁平化的网络环境,让集群中的不同节点主机创建的容器都具有全集群唯一的虚拟 IP 地址。容器组网段会按照掩码均匀划分给每个集群中的节点,每个节点上的容器组会从节点上划分的网段中分配 IP 地址。提高了容器之间通信效率,不用考虑 IP 转换问题。
参数 说明 容器网段 即 Cluster CIDR,供集群创建时启动的容器组使用的 IP 地址段。并支持设置当前容器网络下允许在每个节点上分配给容器组的最大 IP 个数。
说明:平台会根据以上配置,自动计算集群最多可容纳的节点个数,并在输入框下方的提示内容中展示。
注意:集群创建后,集群网络不支持变更,请合理规划网络。Service 网段 供类型为 ClusterIP 的 Kubernetes Service 使用的 IP 地址段,不可与容器网段重叠。 -
自定义
如需安装其他网络插件,请选择 自定义 模式 ,集群创建成功后可手动安装网络插件。
参数 说明 容器网段 即 Cluster CIDR,供集群创建时启动的容器组使用的 IP 地址段。 Service 网段 供类型为 ClusterIP 的 Kubernetes Service 使用的 IP 地址段,不可与容器网段重叠。
配置节点设置
参数 | 说明 |
---|---|
网卡 | 集群网络插件使用的主机网卡设备的名称。 注意:Kube-OVN 默认子网选择 Underlay 传输方式时,您须指定网卡名称,此时的网卡为桥接网络的默认网卡。 |
节点名称 | 可选择使用节点 IP 或主机名称(Hostname)作为平台上节点的名称。 注意:当选择使用主机名称作为平台上节点名称时,需确保添加至集群的节点的主机名称唯一。 |
节点信息 | 为集群 添加节点,或 从草稿恢复 临时保存的配置数据,详细信息请参考
节点配置参数说明
。 注意: - 当节点的操作系统为 EulerOS 时,需要在 扩展参数 区域,为 kubelet 参数添加 cgroup-driver: cgroupfs 键值对。- 控制节点至少添加 1 个,且个数只能为 1、3、5;控制节点个数大于等于 3 时,集群才具有多备容灾能力;不建议将仅有 1 个控制节点的集群作为生产环境集群使用。 |
监控组件类型 | 支持 Prometheus 和 VictoriaMetrics,监控工具选型可参考文档
如何选择监控组件?
选择 VictoriaMetrics 监控组件时,您须配置 部署方式: - 部署 VictoriaMetrics: 部署相关的所有组件,包括 VMStorage、VMAlert、VMAgent 等。 - 部署 VictoriaMetrics 代理:仅部署日志采集组件,即 VMAgent。使用该部署方式时,需要关联平台中其他集群上已部署的 VictoriaMetrics 实例,才可为集群提供监控服务。 |
监控组件部署节点 | 选择用于部署集群监控组件的节点,支持选择计算节点和允许部署应用的控制节点。 为避免影响集群性能,建议优先选择计算节点。集群创建成功后,将在选中的节点上部署存储类型为 本地卷 的监控组件。 提示:如果创建集群时选择不配置该参数(暂不部署监控组件),当集群创建成功且状态正常时,可前往集群的 插件 页面为集群部署监控组件,此时,存储类型可选 本地卷、存储类 或 持久卷,具体操作参见 部署监控组件 。 |
表 - 节点配置参数说明
参数 | 说明 |
---|---|
类型 | 控制节点:负责运行集群中的 kube-apiserver、kube-scheduler、kube-controller-manager、etcd 等组件、容器网络以及平台的部分管理组件。当 可部署应用 时,控制节点同时可作为计算节点使用。 计算节点:负责承载运行在集群上的业务容器组。 注意:如果集群中没有计算节点,集群仅能运行平台组件和少量业务,无法正常运行生产业务。 提示:单击 类型 左侧 ![]() |
IPv4 地址 | 节点的 IPv4 地址。在内网模式下创建的集群,请输入节点的 私有 IP。 |
IPv6 地址 | 集群启用 IPv4/IPv6 双栈时,该参数有效。为节点的 IPv6 地址。 |
GPU 节点 | 是否作为 GPU 节点使用。即是否允许调度 GPU 服务的容器组至该节点,为业务容器组提供 GPU 计算能力。 注意:启用该配置的节点,需包含 GPU 计算资源且已安装 GPU 驱动。 |
可部署应用 | 当 节点类型 为 控制节点 时该参数有效。是否允许在该控制节点上部署业务应用,将业务应用相关的容器组调度到该节点上。 |
显示名称 | 节点的显示名称。 |
SSH 连接 IP | 通过 SSH 服务访问节点时,可连通节点的 IP 地址。 如果能够通过 ssh <username>@<节点的 IPv4 地址> 登录节点,无需设置该参数;否则,需要输入节点的公网 IP 或 NAT 的外网 IP,确保 global 集群和代理能够通过该 IP 连接节点。 |
网卡名称 | 请填写节点使用的网卡名称,网卡配置生效的优先级如下,从左到右优先级依次递减: kube-OVN Underlay:节点网卡 > 集群网卡 kube-OVN Overlay:节点网卡 > 集群网卡 > 节点默认路由对应的网卡 Calico:集群网卡 > 节点默认路由对应的网卡 Flannel:集群网卡 > 节点默认路由对应的网卡 |
关联桥接网络 | 提示:创建集群时,不支持配置桥接网络;仅当集群中已创建了 Underlay 子网后,为集群 添加节点 时,可配置此项。 选择已创建的 桥接网络 ,若您不希望使用桥接网络默认网卡,可单独配置节点网卡。 |
SSH 端口 | SSH 服务端口号,例如:22 。 |
SSH 用户名 | SSH 用户名,需要输入具有 root 权限的用户名,例如:root 。 |
代理(Alpha) | 是否通过代理访问节点的 SSH 端口。当 global 集群无法直接通过 SSH 访问待添加节点(例如:global 集群和业务集群不在同一网段;节点 IP 为内网 IP,global 集群无法直接访问)时,需要打开该开关并配置代理相关参数。配置代理后,即可通过代理实现节点的访问、部署。 提示:目前仅支持使用 SOCKS5 代理。 地址:代理服务器的地址,例如: 192.168.1.1:1080 。用户名:访问代理服务器的用户名。 密码:访问代理服务器的密码。 |
节点认证 | 登录已添加节点的认证方式及对应的认证信息。可选择: 密码:需要输入具有 root 权限的用户名及对应的 SSH 密码。 密钥:需要输入具有 root 权限的 私钥 及 私钥密码。 |
保存草稿 | 将当前对话框中已配置的数据保存为草稿并关闭 添加节点 对话框。 在不离开 创建集群 页面的前提下,可通过选择 从草稿恢复 打开 添加节点 对话框并恢复保存为草稿的配置数据。 提示:从草稿中恢复的数据为最近一次保存为草稿的数据。 |
(可选)配置扩展参数
提示:
-
除了必须的配置,不建议设置扩展参数,设置错误可能导致集群不可用,且集群创建后无法修改。
-
如果填写的 键 与默认参数 键 重复,则会覆盖默认配置。
操作步骤
-
单击 扩展参数,展开扩展参数配置区域,可选择为集群设置以下扩展参数。
参数 说明 Docker 参数 dockerExtraArgs
,Docker 额外的配置参数,将写入/etc/sysconfig/docker
,建议不要修改。通过daemon.json
文件配置 Docker,必须以键、值的方式进行配置。Kubelet 参数 kubeletExtraArgs
,Kubelet 额外的配置参数。
说明:当 容器网络 的 节点 IP 个数 参数输入后,会自动生成一个键为max-pods
,值为 节点 IP 个数 的默认 Kubelet 参数 配置。用于设置集群下任意节点上最多可运行的容器组数,该配置不在界面上显示。
在 Kubelet 参数 区域新添加max-pods: 可运行的最大容器组数
键值对后,会覆盖默认值。值允许输入任意正整数,建议使用默认值(节点 IP 个数),或输入不超过256
的值。Controller Manager 参数 controllerManagerExtraArgs
,Controller Manager 额外的配置参数。Scheduler 参数 schedulerExtraArgs
,Scheduler 额外的配置参数。APIServer 参数 apiServerExtraArgs
,APIServer 额外的配置参数。APIServer 地址 publicAlternativeNames
,签发到证书中的 APIServer 访问地址,只能填写 IP 或域名,最多 253 个字符。Cluster Annotation 参数 集群的注解信息,通过键值对的形式在元数据下标记集群特征,供平台组件或业务组件获取相关信息。 -
单击 创建。返回集群列表页面,集群处于 创建中 状态。
提示:集群处于 创建中 状态时,可查看执行进度,具体操作请参考本文的 后续操作 内容。
后续操作
查看执行进度
在集群列表页面,可查看已创建的集群的列表信息,其中,处在 创建中 状态的集群,可查看执行进度。
操作步骤
-
单击处在 创建中 状态的集群右侧的
> 查看执行进度。
-
在弹出的执行进度对话框中,可查看集群的执行进度(status.conditions)。
提示:当某个类型正在执行中或状态为失败且有原因时,光标悬浮在对应的原因(显示蓝色字体)上时,可查看原因(status.conditions.reason)的详细信息。
部署插件
集群创建成功后,您可前往 插件管理 选择为集群部署必须的插件,包括监控组件、日志采集组件、日志存储组件等。
关联项目
通过基于集群 创建项目 ,或通过 添加项目关联集群 的方式将集群添加至已有项目,可将新创建的集群关联至项目。
进而通过 创建命名空间 可在集群下创建命名空间,将集群资源分配给命名空间,为业务容器提供运行环境。