关于 nginx ingress 的 externalIp

关于 nginx ingress 的 externalIp

是否必须使用外部IP当我有类型 a 时,nginx 入口控制器的字段负载均衡器

apiVersion: v1
kind: Service
metadata:
  name: ingress-nginx
  namespace: ingress-nginx
  labels:
    app: ingress-nginx
spec:
  type: LoadBalancer
  externalIPs:
  - {{  vip_address }}
  ports:
  - port: 80
    targetPort: 80
  selector:
    app: ingress-nginx

是否有任何 aws 工具可用于在集群中创建和管理 VIP?
aws 是否允许使用 elasticIP 代替 VIP 直接从外部访问 LB?

答案1

不,不需要指定服务类型externalIPsLoadBalancer

外部 IP这是 Kubernetes 集群的一个略有不同的特性:

如果有外部 IP 路由到一个或多个集群节点,Kubernetes 服务可以在这些外部 IP 上公开。通过服务端口进入集群的外部 IP(作为目标 IP)的流量将被路由到其中一个服务端点。外部 IP 不由 Kubernetes 管理,而由集群管理员负责。

在 ServiceSpec 中,externalIPs 可以与任何 ServiceType 一起指定。

为了LoadBalancerloadBalancerIP可以指定服务类型:

使用云提供商的负载均衡器向外部公开服务。外部负载均衡器将路由到的 NodePort 和 ClusterIP 服务将自动创建。

在支持外部负载均衡器的云提供商上,将 type 字段设置为 LoadBalancer 将为您的服务配置负载均衡器。负载均衡器的实际创建是异步进行的,有关已配置的均衡器的信息将在 的Service字段中发布.status.loadBalancer

来自外部负载均衡器的流量将被定向到后端 Pod,但具体如何工作取决于云提供商。一些云提供商允许指定loadBalancerIP。在这些情况下,将使用用户指定的创建负载均衡器loadBalancerIP。如果loadBalancerIP未指定该字段,将为负载均衡器分配一个临时 IP。如果loadBalancerIP指定了,但云提供商不支持该功能,则将忽略该字段。

Azure 的特别说明:若要使用用户指定的公网类型loadBalancerIP,需要先创建静态类型的公网IP地址资源,且与集群其他自动创建的资源在同一个资源组中。

与云的交互是通过云控制器您可以在云提供商页。

对于不在 Kubernetes 核心中的云控制器管理器,您可以在云供应商或 sig 负责人维护的存储库中找到相应的项目。

从 v1.8 开始,云控制器管理器可以实现:

  • 节点控制器 - 负责使用云 API 更新 kubernetes 节点并删除云上已删除的 kubernetes 节点。
  • 服务控制器 - 负责云上针对 LoadBalancer 类型的服务的负载均衡器。
  • 路由控制器 - 负责在云上设置网络路由
  • 持久卷标签控制器 - 负责在 GCP 和 AWS 云中创建的持久卷上设置区域和区域标签。
  • 如果您正在运行树外提供程序,您希望实现的任何其他功能。

相关内容