Import Standard Kubernetes Cluster

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

Terminology

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

Prerequisites

Notes

平台默认监控匹配 eth.*|en.*|wl.*|ww.* 的网卡流量。如网卡命名不符,请集成后根据从自定义命名网卡采集网络数据更新配置。

Obtain Registry Address

  • 若使用平台在 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"

Check if Extra Registry Config is Needed

  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. 若检查失败,请参见如何信任不安全的镜像仓库?

Get Cluster Info

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

Integrate Cluster

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

  2. 点击 导入集群

  3. 按下表配置参数:

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

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

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

Network Configuration

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

Post-import Configuration

若需平台采集导入的标准 Kubernetes 集群的审计数据,导入后请在集群上配置 Kubernetes API Server 审计日志。详见如何配置导入标准 Kubernetes 集群的审计采集?

FAQ

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

无论托管集群还是非托管集群,平台 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