使用 Helm 在腾讯云 TKE 上部署 VPC-ENI 模式的 ingress-nginx

腾讯云 TKE 新支持了 VPC-ENI 模式,创建集群时可以启用。

这种网络模式允许直连 Pod,不经过主机网卡转发。

实际在使用 Helm 安装 ingress-nginx 的时候,遇到了很多个坑,因此在此记录下

前提条件

创建腾讯云 TKE 集群的时候,选择启用 VPC-ENI 模式,并配置好容器网段

添加 Helm Repo

可以直接使用 Helm Repository

helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx

配置部署参数

配置部署参数的时候,需要注意三个点

  1. Service 需要添加额外的 Annotation,启用腾讯云负载均衡的弹性网卡模式
  2. Service 的 targetPort 字段需要是数字,腾讯云 TKE 目前有 BUG,无法解析端口命名
  3. Pod 需要添加额外的 Annotation,启用 VPC-ENI 模式

示例参数如下:

controller:
  image:
    repository: ccr.ccs.tencentyun.com/mlgf/nginx-ingress-controller
  autoscaling:
    enabled: true
    minReplicas: 3
    maxReplicas: 6
  service:
    targetPorts: # 注意项 2
      http: 80
      https: 443
    annotations: # 注意项 1
      service.cloud.tencent.com/direct-access: "true"
  podAnnotations: # 注意项 3
    tke.cloud.tencent.com/networks: "tke-route-eni"
defaultBackend:
  enabled: true
  image:
    repository: ccr.ccs.tencentyun.com/mlgf/nginx-ingress-defaultbackend

把上述参数保存为 vars.yml

执行命令 helm install ingress-nginx -f vars.yml ingress-nginx/ingress-nginx 就好了

你可能感兴趣的:(Kubernetes,kubernetes,ingress,腾讯)