概述
流量从 CLB 转发到 Nginx Ingress 的链路可以直连,即不通过 NodePort 通信。这种方式可以带来更好的性能,并且可以实现获取真实源 IP 的需求。
如果您使用的是 TKE Serverless 集群,或者您能确保所有 Nginx Ingress Pod 都调度到超级节点上,那么这段链路本身就是直连的,无需进行任何额外操作。
在其他情况下,这段链路中间默认会通过 NodePort 通信。如果您希望启用直连,可以参考以下步骤(根据您的集群环境选择适用的步骤)。
GlobalRouter+VPC-CNI 网络模式启用直连
如果集群网络模式是 GlobalRouter,且启用了 VPC-CNI:
建议为 Nginx Ingress 声明用 VPC-CNI 网络,同时启用 CLB 直连,values.yaml
配置方法:
controller:
podAnnotations:
tke.cloud.tencent.com/networks: tke-route-eni
resources:
requests:
tke.cloud.tencent.com/eni-ip: "1"
limits:
tke.cloud.tencent.com/eni-ip: "1"
service:
annotations:
service.cloud.tencent.com/direct-access: "true"
GlobalRouter 网络模式启用直连
如果不希望开启 VPC-CNI,可以根据以下步骤启用直连,但是需接受 使用限制。 注意:
请确认您的账号满足上述条件,并接受使用限制。
1. 修改 configmap 开启 GlobalRouter 集群维度的直连能力:
kubectl edit configmap tke-service-controller-config -n kube-system
将 GlobalRouteDirectAccess
置为 true:
2. 配置 values.yaml
启用 CLB 直连:
controller:
service:
annotations:
service.cloud.tencent.com/direct-access: "true"
VPC-CNI 网络模式启用直连
如果集群网络本身就是 VPC-CNI,直接配置 values.yaml
启用 CLB 直连即可:
controller:
service:
annotations:
service.cloud.tencent.com/direct-access: "true"
本页内容是否解决了您的问题?