Kubernetes 如何为aws eks提供弹性ip,以便使用类型loadbalancer进行外部服务?

Kubernetes 如何为aws eks提供弹性ip,以便使用类型loadbalancer进行外部服务?,kubernetes,amazon-eks,aws-load-balancer,elastic-ip,Kubernetes,Amazon Eks,Aws Load Balancer,Elastic Ip,我使用的是eks 1.16。我有一个服务,它具有面向internet的Loadbalancer类型 apiVersion: v1 kind: Service metadata: annotations: service.beta.kubernetes.io/aws-load-balancer-backend-protocol: tcp service.beta.kubernetes.io/aws-load-balancer-type: nlb name: kafka-te

我使用的是eks 1.16。我有一个服务,它具有面向internet的Loadbalancer类型

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/aws-load-balancer-backend-protocol: tcp
    service.beta.kubernetes.io/aws-load-balancer-type: nlb
  name: kafka-test-3-0-external
  labels:
    helm.sh/chart: kafka-0.21.5
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: kafka-broker
    app.kubernetes.io/name: kafka
    app.kubernetes.io/instance: kafka-test-3
    pod: "kafka-test-3-0"
spec:
  type: LoadBalancer
  ports:
    - name: external-broker
      port: 19092
      targetPort: 19092
      protocol: TCP
#
  selector:
    app.kubernetes.io/component: kafka-broker
    app.kubernetes.io/name: kafka
    app.kubernetes.io/instance: kafka-test-3
    statefulset.kubernetes.io/pod-name: "kafka-test-3-0"
我想为该外部服务提供弹性ip/静态ip

问题: 对于Loadbalancer类型,当我删除服务时,它将删除Loadbalancer。 当我再次安装时,它将使用新的ip创建新的负载平衡器

用例:如果我要卸载/删除该服务,IP必须保持不变


如何提供弹性ip/静态ip?

有一个注释为网络负载平衡器提供弹性ip

service.beta.kubernetes.io/aws-load-balancer-eip-allocations:eipalloc-05666791973f6a240

如果您使用的是Amazon EKS 1.16或更高版本,则可以通过添加以下注释为网络负载平衡器分配弹性IP地址。用弹性IP地址的分配ID替换(包括)。分配ID的数量必须与用于负载平衡器的子网数量匹配

注意:您不能对内部负载平衡器使用此注释

apiVersion: v1
kind: Service
metadata:
  annotations:
    external-dns.alpha.kubernetes.io/hostname: "kafka-test-3-1.kafka.internal"
    external-dns.alpha.kubernetes.io/ttl: "60"
    service.beta.kubernetes.io/aws-load-balancer-backend-protocol: tcp
    service.beta.kubernetes.io/aws-load-balancer-type: nlb
    service.beta.kubernetes.io/aws-load-balancer-eip-allocations: eipalloc-022b9722973f6a222
  name: kafka-test-3-1-external
  labels:
    helm.sh/chart: kafka-0.21.5
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: kafka-broker
    app.kubernetes.io/name: kafka
    app.kubernetes.io/instance: kafka-test-3
    pod: "kafka-test-3-1"
spec:
  type: LoadBalancer
  ports:
    - name: external-broker
      port: 19092
      targetPort: 19092
      protocol: TCP
#
  selector:
    app.kubernetes.io/component: kafka-broker
    app.kubernetes.io/name: kafka
    app.kubernetes.io/instance: kafka-test-3
    statefulset.kubernetes.io/pod-name: "kafka-test-3-1"
该负载平衡器将始终使用elasticIp

有关更多eks注释


这是否回答了您的问题?你不能按照我的研发。你只能分配弹性ip