导入标准 Kubernetes 集群

支持将使用 kubeadm 部署的标准原生 Kubernetes 集群接入平台,实现统一管理。

目录

术语

术语说明
托管 Kubernetes 集群云厂商提供的一类 Kubernetes 集群,Master 节点及其组件由厂商管理,用户无法登录或管理 Master 节点。
非托管 Kubernetes 集群相对而言,部分云厂商提供的集群由用户管理 Master 节点,如阿里云 ACK 专有版或腾讯云 TKE 独立集群。

前提条件

注意事项

平台默认监控匹配 eth.*|en.*|wl.*|ww.* 的网卡流量,若您的网卡命名规则不同,集成后请根据 [Custom NIC Monitoring] 更新配置。

获取镜像仓库地址

  • 若使用平台在 global cluster 安装时部署的镜像仓库,可在 global 控制节点执行:

    if [ "$(kubectl get productbase -o jsonpath='{.items[].spec.registry.preferPlatformURL}')" = 'false' ]; then
        REGISTRY=$(kubectl get cm -n kube-public global-info -o jsonpath='{.data.registryAddress}')
    else
        REGISTRY=$(kubectl get cm -n kube-public global-info -o jsonpath='{.data.platformURL}' | awk -F // '{print $NF}')
    fi
    echo "Registry address: $REGISTRY"
  • 若使用 外部镜像仓库,请手动设置 REGISTRY

    REGISTRY=<external-registry-address>  # 例如 registry.example.cn:60080 或 192.168.134.43
    echo "Registry address: $REGISTRY"

检查是否需要额外的镜像仓库配置

  1. 运行以下命令检查仓库是否支持带有受信任 CA 证书的 HTTPS:

    REGISTRY=<registry-address-from-previous-step>
    
    if curl -s -o /dev/null --retry 3 --retry-delay 5 -- "https://${REGISTRY}/v2/"; then
        echo 'Pass: Registry uses a trusted CA certificate. No extra config needed.'
    else
        echo 'Fail: Registry does not support HTTPS or uses an untrusted certificate. Follow "Trust Insecure Registry".'
    fi
  2. 若检查失败,请参见如何信任不安全的镜像仓库?

获取集群信息

请参考如何获取集群信息?

集成集群

  1. 在左侧导航中,进入 集群管理 > 集群

  2. 点击 导入集群

  3. 按下表配置参数:

    参数说明
    Registry存储所需平台组件镜像的镜像仓库。选项包括:平台默认(global 安装时配置)、私有仓库(需填写地址、端口、用户名、密码)、公共仓库(需更新云凭证)。
    集群信息可手动填写或从 KubeConfig 文件解析。必填字段包括:集群地址CA 证书(手动填写时需 Base64 解码)、认证信息(token 或具备 cluster-admin 权限的客户端证书)。
  4. 点击 检测连通性,平台将验证网络访问并自动识别集群类型。

  5. 若检测成功,点击 导入 完成操作。

    可通过 执行进度 弹窗查看进度(status.conditions)。集成完成后,集群列表中显示为健康状态。

网络配置

确保 global 集群与导入集群之间的网络连通。

常见问题

为什么“添加节点”按钮是灰色不可用?

无论托管还是非托管集群,平台 UI 均不支持添加节点。请直接或通过厂商方式添加节点。

支持哪些证书?

  1. Kubernetes 证书:仅支持查看 API Server 证书,其他证书不支持且不会自动轮换。
  2. 平台组件证书:支持查看和自动轮换。

哪些功能不支持?

  • 托管集群:不支持审计日志。
  • 托管集群:不支持 ETCD、Scheduler、Controller Manager 监控(仅支持 API Server 指标)。
  • 所有集群:除 API Server 外的证书不支持。

如何解决 Containerd 运行时导致分布式存储部署失败?

使用 Containerd 时,分布式存储部署失败,需在所有节点调整 Containerd 配置:

  1. 编辑 /etc/systemd/system/containerd.service,设置 LimitNOFILE=1048576

  2. 执行 systemctl daemon-reload

  3. 重启 Containerd:systemctl restart containerd

  4. 在控制节点重启分布式存储 Pod:

    kubectl delete pod --all -n rook-ceph