托管集群使用说明
注意事项
CCE集群的可用性与集群中管理的Pod、ConfigMap、CRD等资源数量、以及各类资源的Get/List读操作和QPS、Patch/Delete/Create/Update等写操作QPS密切相关,应尽量避免对资源数量较多的集群发起类List操作,避免把集群当数据库使用,写入过多的ConfigMap/CRD/EndPoints 等,影响集群可用性。
常见的类List操作如下(以Pod为例):
-
带标签查询
kubectl get pod -l app=nginx
-
指定namespace查询
kubectl get pod -n default
-
查询整个集群的Pod
kubectl get pod --all-namespaces
-
通过client-go发起的List请求
k8sClient.CoreV1().Pods("").List(metav1.ListOptions{})
如您有类似查询集群全量资源的需求,建议使用K8s的informer机制通过本地cache查询。对于一些简单的场景,可以通过在List请求中增加ResourceVersion参数,在kube-apiserver cache中查询,如 k8sClient.CoreV1().Pods("").List(metav1.ListOptions{ResourceVersion: "0"})。需注意,即使从kube-apiserver cache查询,如果对大量资源频繁发起List请求,仍会对kube-apiserver内存造成较大压力,仅建议在请求频率较低时使用该方式。
集群规模推荐配置
请在创建托管集群时参考如下推荐配置,根据业务实际情况选择合适的集群规模,以免集群控制面组件负载过大导致集群不可用。
说明:
当前默认仅支持创建L50规模托管集群,若您想要创建更大规模集群,或者针对存量集群升级至所需的集群规模,您可以提工单联系我们。
示例:若您计划在一个集群中部署50个节点,但是需要部署2000个Pod,则应该选择推荐最大管理节点规模为200(而非50)的集群规模。
集群规模 | 最大管理节点数 | 推荐最大Pod数 | 推荐最大Service数 | 推荐最大ConfigMap数 | 推荐最大Secret数 | 推荐最大PV数 | 推荐最大PVC数 | 推荐最大CRD数 |
---|---|---|---|---|---|---|---|---|
L50 | 50 | 1500 | 100 | 300 | 300 | 250 | 250 | 1000 |
L200 | 200 | 6000 | 400 | 1200 | 1200 | 1000 | 1000 | 4000 |
L500 | 500 | 15000 | 1000 | 3000 | 3000 | 2500 | 2500 | 10000 |
L1000 | 1000 | 30000 | 2000 | 6000 | 6000 | 5000 | 5000 | 20000 |
L3000 | 3000 | 90000 | 6000 | 18000 | 18000 | 15000 | 15000 | 60000 |
L5000 | 5000 | 150000 | 10000 | 30000 | 30000 | 25000 | 25000 | 100000 |
说明:
- Pod管理数量不包含集群系统组件产生的Pod(如CoreDNS)。
- CRD管理数量不包含集群系统组件产生的CRD(如网络相关系统组件产生的CRD)。
- 建议每种资源类型的所有对象总和不应超过800MiB,每个资源对象大小不超过100KB。