容器服务
服务分类 | 组件定义 | 组件示例 |
服务分类 | 组件定义 | 组件示例 |
控制面 | Kubernetes 控制面组件 | 四个控制面组件:etcd、kube-apiserver、kube-scheduler、kube-controller-manager。 |
| VKE 托管组件 | cloud-controller-manager、cluster-autoscaler、karpenter、vpc-cni-controlplane 等 VKE 托管的组件。 说明 |
数据面 | Kubernetes 数据面组件 | 三个数据面组件:kubelet、kubeproxy、containerd。 |
| VKE 非托管组件 | 容器网络(CNI)相关组件、容器存储(CSI)相关组件、nvidia-device-plugin 等非托管组件。 说明 |
| 业务应用负载 | 业务创建的 Pod、Deployment、Service 、PV/PVC、Ingress 等对象。 |
分类 | 稳定性操作建议 | 影响说明 |
分类 | 稳定性操作建议 | 影响说明 |
网络规划 | 创建集群前,结合业务场景提前规划集群子网、容器网段和 Service 网段,避免后期出现网段冲突,影响业务:
| 若集群所在子网或容器网段较小,可能会导致集群无法扩容、无法创建 Pod 等问题。 |
部署 | 集群创建成功后,网络模型不可更改,请谨慎选择。 | |
| 安全组是重要的安全隔离手段,不当的安全策略配置可能会引起安全相关的隐患及服务连通性等问题。 | |
| 创建集群时,在 集群配置 步骤的 网络配置 中,建议选择至少两个可用区的子网。 | 选择多个可用区来创建集群可以提高 Kubernetes 控制面的可用性、容灾性、性能和事故处理能力等,有利于提高业务安全延续性和稳定性。 |
可靠性 | 创建集群时建议添加独立数据盘,并选择挂载容器、镜像存储目录/var/lib/containerd和var/lib/kubelet。 独立数据盘存储镜像有以下好处:
| 没有独立数据盘可能会存在系统盘 I/O 负荷高等问题。 |
安全性 | 创建集群时系统默认开启 集群删除保护,请保持开启状态,防止通过控制台或 Open API 误删集群。 | 未开启删除保护的集群,可通过控制台或 Open API 直接进行删除,对于业务集群来说是一个不安全因素。 |
分类 | 稳定性操作建议 | 影响说明 |
分类 | 稳定性操作建议 | 影响说明 |
可靠性 | 建议在集群容器网络的子网所属可用区和节点子网可用区保持一致。 | Pod 调度到节点上时,如果所在可用区没有可调度的节点,Pod 会启动失败。 |
| 集群容器网络配置的安全组,需要限制与安全组关联的 Pod 数量,建议不要超过 2000 个。 | 安全组默认支持关联最大 IP 数量为 2000,超过后新建 ENI 失败,Pod 也会启动失败。 |
分类 | 稳定性操作建议 | 影响说明 |
分类 | 稳定性操作建议 | 影响说明 |
部署 | 创建工作负载时建议设置 CPU 和内存的限制范围,提高业务的健壮性。 | 同一个节点上部署多个应用时,如果应用未设置资源限制,当应用出现异常导致资源泄露时,会造成其它应用由于无法分配所需资源而异常,且其监控信息将会出现误差。 |
可靠性 | 未配置容器健康检查,会导致用户业务出现异常时,Pod 因无法感知而导致不会自动重启恢复业务。最终将会出现 Pod 状态正常,但 Pod 中业务异常的现象。 | |
| 创建服务时需要根据实际访问需求选择合适的访问方式,目前支持公网访问、仅在集群内访问、VPC 内网访问及主机端口访问四种方式。 | 选择不当的访问方式,可能会造成服务内外部访问逻辑的混乱和资源浪费。 |
| 创建工作负载时,请根据自身业务合理设置实例个数(Pod 副本数),建议个数大于 1,同时也合理设置节点调度策略。 | 如设置单个 Pod 副本数,当节点异常或实例异常时会导致服务异常。为确保您的 Pod 能够调度成功,请确保您在设置调度规则后,节点有空余的资源用于容器的调度。 |
| 避免 containerd 或 kubelet 的 Hang 问题导致节点处于 NotReady 状态。 |