有奖捉虫:办公协同&微信生态&物联网文档专题 HOT

购买须知

说明
因为不遵循本购买须知导致的服务不可用,相应服务不可用时间不属于服务不可用的计算范畴,更多请参考 《容器服务服务等级协议》
TKE 集群的可用性与集群 Pod、ConfigMap、CRD、Event 等资源的数量、以及各类资源的 Get/List 读操作 QPS、Patch/Delete/Create/Update 等写操作 QPS 密切相关,应尽量避免对资源数量较多的集群发起类 List 操作,避免把 TKE 集群当数据库使用,写入过多的 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 内存造成较大压力,仅建议在请求频率较低时使用该方式。

推荐配置

请在选购集群时参考如下推荐配置,根据业务实际情况选择合适的集群规格,以免集群控制面组件负载过大导致集群不可用。 例如,如果您计划在一个集群中部署50个节点,但是计划部署2000个 Pod, 则应该选用最大管理节点规模为100(而非50)的集群规格。
说明
节点指 Kubernetes Node, 包含 CVM 节点,黑石节点,第三方节点等。节点计数时不包含超级节点。
Pod 包括所有 Namespace 下,所有状态的 Pod,但不包括系统组件相关 Pod(cni-agent 等)。
CRD 不统计 TKE 系统组件产生的 CRD(如 VPC-CNI 相关组件产生的 CRD)。
最大其他 K8s 资源数量指除表格中单独列出的资源外,其他的 K8s 资源的最大数量。例如您购买了最大管理节点规模为L100的集群,为了保障集群的可用性,集群中的 ClusterRole、Service、Endpoint 等 K8s 资源的数量均不应该超过2500。
建议每种资源类型的所有对象总和不应超过800MiB,每个资源对象大小不超过100KB。
集群规格
最大管理节点数量
最大 Pod 数量(推荐)
最大 replicasets 数量
最大 ConfigMap 数量(推荐)
最大 CRD 数量 / 最大其他 K8s 资源数量(推荐)
L5
5
150
900
128
150
L20
20
600
3600
256
600
L50
50
1500
9000
512
1250
L100
100
3000
18000
1024
2500
L200
200
6000
36000
2048
5000
L500
500
15000
90000
4096
10000
L1000
1000
30000
180000
6144
20000
L3000
3000
90000
540000
8192
50000
L5000
5000
150000
900000
10240
100000