安装

本节描述安装 global 集群的具体步骤。

安装路径

本页记录的是传统操作系统安装路径。如果你的环境运行在不可变基础设施(Alauda OS on Huawei DCS、VMware vSphere 或 Huawei Cloud Stack)上,请改为参考 在不可变基础设施上安装 global 集群。

在开始安装之前,请确保你已完成前置检查、安装包下载与校验、节点预处理以及其他准备工作。

流程

上传并解压安装包

将 Core Package 安装包上传到 global 集群控制平面节点中的任意一台机器,并按照以下命令进行解压:

# Assume that the /root/cpaas-install folder already exists on the machine
tar -xvf {Path to Core Package File}/{Core Package File Name} -C /root/cpaas-install
cd /root/cpaas-install/installer || exit 1
信息
  • 该机器将在 global 集群安装完成后成为第一个控制平面节点。
  • Core Package 解压后,至少需要 100GB 磁盘空间。请确保有足够的存储资源。
  • 如果你已经下载了扩展,请先完成 ACP Core 的安装,然后按照 扩展 上传并安装它们。

启动安装程序

执行以下安装脚本以启动安装程序。安装程序成功启动后,命令行终端会输出 Web 控制台访问地址。

等待约 5 分钟后,你就可以在 PC 上使用浏览器访问安装程序提供的 Web 控制台。

bash setup.sh
警告

请确保安装程序所在节点的 IP 地址和 8080 端口可正常访问,以便安装程序成功启动后能够顺利访问其提供的 Web 控制台。

IP Family

bash setup.sh --ip-family ipv6

如果你计划创建 Single-stack Network IPv6 的 global 集群,则在启动安装程序时必须显式指定 --ip-family ipv6。如果不指定该参数,安装程序创建的 global 集群默认支持 Single-stack Network IPv4 和 Dual-stack Network。

参数配置

按照页面引导完成安装参数配置后,确认安装。

参数说明 提供了关键参数的详细说明。请仔细阅读并根据实际需求进行配置。

监控安装进度

确认参数后,安装程序将经历多个阶段。一个 3 节点 global 集群通常会在 30–60 分钟内完成;总耗时取决于节点硬件、网络吞吐量以及所选插件数量。

你将观察到的阶段

阶段正在发生的事情首先查看的位置
Bootstrap安装程序容器在安装节点上的临时 minialauda KIND 环境中启动,并拉起内置镜像仓库。bash setup.sh 的终端输出
Control plane provisioning通过 kubeadm 引导第一个控制平面节点;启动 etcd;其余控制平面节点加入集群。安装程序 Web UI;安装程序 log
Network and core add-onsCNI(默认是 Kube-OVN)、CoreDNS、kube-proxy 以及其他集群内网络组件启动。安装程序 Web UI;新集群上执行 kubectl get pods -n kube-system
Core platform部署基础 operator,创建 ClusterModule/global,并拉起平台控制平面。安装程序 Web UI;kubectl get clustermodule global
对齐插件所选对齐插件的 AppRelease 进入协调状态。kubectl get apprelease -A
完成安装程序发布平台访问 URL,并在短暂宽限期后停止引导容器。安装程序 Web UI;/var/cpaas/data/installer.log

安装过程中的信号

如果 Web UI 看起来卡住了超过几分钟,请改为检查后端信号——Web UI 会轮询后端进度 API,因此可能会有延迟,但底层状态始终可以在安装节点上获取。

# Live installer log on the installation node
tail -f /var/cpaas/data/installer.log

# Use the installer kubeconfig until the global cluster takes over
export KUBECONFIG=/var/cpaas/data/alauda.kubeconfig

# Cluster API resources that drive the new global cluster
kubectl get clusters.cluster.x-k8s.io -A
kubectl get kubeadmcontrolplane -A
kubectl get machines -A

# Charts that the installer is reconciling
kubectl get apprelease -A

安装程序 log 会记录每个阶段的切换以及所有可重试错误。大多数瞬时错误会以 10 秒为间隔自动重试;持续性错误会保留在 log 中,并在 Web UI 中表现为某个阶段停滞。

验证安装成功

安装完成后,平台访问 URL 会显示在 Web UI 中。点击 访问 按钮打开平台,并确认可以成功登录。

接下来,在新 global 集群的一个控制平面节点上运行以下命令,以确认安装状态:

# All nodes are Ready
kubectl get nodes

# ClusterModule/global reports the base module as healthy
kubectl get clustermodule global -o jsonpath='{.status.phase}'

# No AppRelease is in a failed state
kubectl get apprelease -A

# No Pod is stuck outside Running or Completed
kubectl get pod --all-namespaces | awk '{if ($4 != "Running" && $4 != "Completed")print}' | awk -F'[/ ]+' '{if ($3 != $4)print}'

当满足以下条件时,说明安装健康:

  • 所有 global 集群节点均为 Ready。
  • ClusterModule/global 报告为健康阶段。
  • 每个 AppRelease 均处于非失败状态。
  • cpaas-system 中的关键 Pod 处于 Running 或 Completed 状态。

安装产品文档插件

INFO

Alauda Container Platform Product Docs 插件用于在平台内访问产品文档。平台中的所有帮助链接都会跳转到该文档。如果未安装此插件,点击平台中的帮助链接将会产生 404 访问错误。

  1. 进入 管理员。

  2. 在左侧边栏中,点击 Marketplace > 集群插件,然后选择 global 集群。

  3. 找到 Alauda Container Platform Product Docs 插件并点击 安装。

参数说明

参数说明
Kubernetes Version

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

Cluster Network Protocol

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

Cluster Endpoint

    输入预先准备好的域名。
    如果没有域名,请输入预先准备好的 global VIP。
    Self-built VIP 默认禁用,仅在未提供 LoadBalancer 时启用。

    使用 Self-built VIP 时必须满足以下条件:

    • 存在可用的 VRID;
    • 主机网络支持 VRRP 协议;
    • 所有控制平面节点和 VIP 必须位于同一子网。

    提示: 在功能体验场景的单节点部署中,你可以直接输入节点 IP,无需启用 Self-built VIP 或准备 global VIP 等网络资源。

Platform Access Address

    如果你不需要区分 Cluster Endpoint 和 Platform Access Address,请输入与 Cluster Endpoint 相同的地址。
    如果你需要区分,例如 global 集群仅用于内网访问,而平台需要提供外网访问,请输入预先准备好的域名或 External IP。
    平台默认使用 HTTPS 访问,不启用 HTTP。如果你需要启用 HTTP 访问,请在 高级设置 中启用(不推荐)。
    注意: 以下情况必须输入域名,

    • 已规划 global 集群的灾难恢复方案;
    • 平台需要支持 IPv6 访问。

    提示: 如果你需要配置更多平台访问地址,可以在下一步的 其他设置 > 其他平台访问地址 中添加。或者在安装完成后,根据用户手册在平台管理中添加。

Certificate

平台默认提供自签名证书以支持 HTTPS 访问。
如果你需要使用自定义证书,可以上传已有证书。

Image Repository

默认使用 Platform Deployment 镜像仓库,其中包含所有组件的镜像。
如果你需要使用 External 镜像仓库,请在配置前联系技术支持获取镜像同步方案。

Container Network

集群默认子网不能与 Service 网络段重叠。
使用 Kube-OVN Overlay 网络时,请确保容器网络与主机网络不在同一网段,否则可能导致网络异常。

Node Name

如果选择 Host Name as Node Name,请确保所有节点的主机名唯一。

global Cluster Platform Node Isolation

仅在你计划在 global 集群中运行应用工作负载时启用。
启用后:

  • 节点可设置为 Platform Exclusive,即仅运行平台组件,从而确保平台与应用工作负载隔离;
  • 排除 DaemonSet 类型工作负载。
Add NodeControl Plane Node:
    • 支持添加 1 个或 3 个控制平面节点(3 个用于高可用配置);
    • 如果启用 Platform Exclusive,则会强制禁用 Deployable Applications,控制平面节点仅运行平台组件;
    • 如果禁用 Platform Exclusive,你可以选择是否启用 Deployable Applications,从而允许控制平面节点运行应用工作负载。
Worker Node:
    • 如果启用 Platform Exclusive,则会强制禁用 Deployable Applications;
    • 如果禁用 Platform Exclusive,则会强制启用 Deployable Applications。

使用 Kube-OVN 时,你可以通过输入网关名称来指定节点网卡。

如果节点可用性检查失败,请根据页面提示进行调整后重新添加。

常见卡点及排查位置

如果安装程序报告错误或看起来没有进展,请先从下表中的症状入手。表中列出的信号是首先需要查看的位置;在创建工单之前,请先收集这些输出,以便支持团队能够基于相同数据进行处理。

症状首先查看的位置需要关注的内容
Web UI 无法加载安装节点上的 setup.sh 终端输出和 nerdctl psminialauda-control-plane 容器处于 Running 状态,并且浏览器可以访问 8080 端口。
安装程序 log 停止前进tail -f /var/cpaas/data/installer.log最后一行 log 会告诉你安装程序当前所在的阶段。如果同一阶段持续超过几分钟,通常是下表中的某一种原因导致的。
卡在控制平面部署kubectl get machines -A 以及在一个未处于 Ready 状态的 machine 上执行 kubectl describe该 machine 上的 Bootstrap 和 Infrastructure 条件;通常可以通过 status.addresses 中的 IP 访问该节点。
卡在网络和核心附加组件新集群上的 kubectl -n kube-system get podsKube-OVN、CoreDNS 和 kube-proxy Pod 处于 Running 状态。镜像拉取失败通常指向镜像仓库可达性问题。
AppRelease 显示 Failedkubectl describe apprelease <name> -n <namespace>Status 条件和最近的 Events 会描述底层 chart 错误。
Pod 处于 ImagePullBackOff 或 ErrImagePullkubectl describe pod <pod>确认失败节点能够访问平台镜像仓库。
ClusterModule/global 未达到健康阶段kubectl describe clustermodule globalStatus.conditions 会描述哪个模块阻止了集群完成。

未在此列出的故障通常指向环境相关原因。请收集安装程序 log 和相关的 kubectl describe 输出,然后升级处理。

安装程序清理

通常情况下,安装完成后安装程序会被自动删除。如果安装 30 分钟后安装程序未自动删除,请在安装程序所在节点上执行以下命令,强制删除安装程序容器:

nerdctl rm -f minialauda-control-plane

其他资源