tke-eni-ip-webhook 说明

最近更新时间:2025-09-26 19:20:42

我的收藏

简介

组件介绍

tke-eni-ip-webhook 是腾讯云容器服务 TKE 在 VPC-CNI 网络模式下用于 Pod 创建的钩子组件。该组件在每次 Pod 创建时,作为钩子接收 kube-apiserver 的请求,并为新建的 Pod 添加相应的网络资源请求(requests),从而实现用户无感知的网络资源调度。

部署在集群内的 Kubernetes 对象

以下对象仅部署在 TKE 独立集群(Master&Etcd 由用户自维护),而 TKE 托管集群(Master&Etcd 由平台管理)中以下对象也由平台管理,不会部署到用户集群内。
Kubernetes 对象名称
类型
资源量
Namespaces
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-iptke.cloud.tencent.com/eip),并使 Pod 配置对应资源请求。
由于手动为每个 Pod 配置网络资源较为繁琐,tke-eni-ip-webhook 组件能自动根据当前集群网络模式与 Pod 所需网络资源,为 Pod 设置合适的网络资源请求,并将其添加到第一个容器(container)的 resources.requestsresources.limits 字段中。

工作原理

tke-eni-ip-webhook 组件实现了 kubernetes MutatingAdmissionWebhook。该组件启动后会自行创建名为 add-pod-eni-ip-limit-webhook 的 MutatingWebhookConfiguration,这个配置挂钩了 Pod 创建,每次 Pod 创建时该组件会接收 kube-apiserver 的挂钩请求,然后根据集群的网络模式和 Pod 网络配置为新建的 Pod 添加对应网络资源的请求。如共享网卡模式的 Pod 会给第一个容器添加以下配置:
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