一、购买须知
注意:说明:
注意:因为不遵循本购买须知导致的服务不可用,相应服务不可用时间不属于服务不可用的计算范畴,更多请参考 《容器服务服务等级协议》。
常见的类 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)的集群规格。
注意:说明:
| 集群规格 | 最大管理节点数量 | 最大 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 |