简介
组件介绍
tke-eni-ip-webhook 是腾讯云容器服务 TKE 在 VPC-CNI 网络模式下用于 Pod 创建的钩子组件。该组件在每次 Pod 创建时,作为钩子接收 kube-apiserver 的请求,并为新建的 Pod 添加相应的网络资源请求(requests),从而实现用户无感知的网络资源调度。
部署在集群内的 Kubernetes 对象
以下对象仅部署在 TKE 独立集群(Master&Etcd 由用户自维护),而 TKE 托管集群(Master&Etcd 由平台管理)中以下对象也由平台管理,不会部署到用户集群内。
|
add-pod-eni-ip-limit-webhook | ServiceAccount | - | tke-eni-ip-webhook |
add-pod-eni-ip-limit-webhook | ClusterRole | - | - |
add-pod-eni-ip-limit-webhook | ClusterRoleBinding | - | - |
add-pod-eni-ip-limit-webhook | Service | - | tke-eni-ip-webhook |
add-pod-eni-ip-limit-webhook | Deployment | 0.01核 CPU,30MB 内存 | tke-eni-ip-webhook |
使用场景和限制
适用于 VPC-CNI 网络模式下的 TKE 标准集群。
组件原理
背景
在 TKE VPC-CNI 网络模式下,每个节点的网络资源有配额限制(详情请参见 VPC-CNI Pod 数量限制)。为实现网络资源调度,使 Pod 调度之后可分配到 IP 等网络资源,TKE VPC-CNI 网络模式下会为每个节点添加扩展网络资源(如 tke.cloud.tencent.com/eni-ip、tke.cloud.tencent.com/eip),并使 Pod 配置对应资源请求。 由于手动为每个 Pod 配置网络资源较为繁琐,tke-eni-ip-webhook 组件能自动根据当前集群网络模式与 Pod 所需网络资源,为 Pod 设置合适的网络资源请求,并将其添加到第一个容器(container)的 resources.requests 和 resources.limits 字段中。
工作原理
resources:
requests:
tke.cloud.tencent.com/eni-ip: "1"
limits:
tke.cloud.tencent.com/eni-ip: "1"
最新版本目前支持自动添加的网络资源:
共享网卡:tke.cloud.tencent.com/eni-ip
独立网卡/独占网卡:tke.cloud.tencent.com/direct-eni
中继子网卡:tke.cloud.tencent.com/sub-eni
弹性公网IP:tke.cloud.tencent.com/eip