我想用AWS内部的NLB创建一个nginx入口控制器,要求是固定NLB端点的IP地址,例如,目前Nginx入口服务的NLB dns是abc.elb.eu-central-1.amazonaws。 com 解析为 ip 地址 192.168.1.10,如果我删除并重新创建 nginx 入口控制器,我希望 NLB DNS 必须与以前相同。查看 kubernetes 服务注释,我没有看到任何重用现有 NLB 的方法,但是,我在链接中找到了注释 service.beta.kubernetes.io/aws-load-balancer-private-ipv4-addresses ,据我了解,它允许我为 NLB 设置 ip 地址,但它没有按我的预期工作,每次我重新创建 nginx 控制器时,ip 地址都是不同的,下面是 K8s 服务 yaml 文件。
# Source: ingress-nginx/templates/controller-service.yaml
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/aws-load-balancer-internal: "true"
service.beta.kubernetes.io/aws-load-balancer-type: "nlb"
service.beta.kubernetes.io/aws-load-balancer-private-ipv4-addresses: "10.136.103.251"
service.beta.kubernetes.io/aws-load-balancer-subnets: "subnet-00df069133b22"
labels:
helm.sh/chart: ingress-nginx-3.23.0
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/instance: ingress-nginx
app.kubernetes.io/version: 0.44.0
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: controller
name: ingress-nginx-controller
spec:
type: LoadBalancer
externalTrafficPolicy: Local
我知道这个要求很奇怪,可以这样做吗?