kunernetes Service 和 Ingress 的区别

Bob*_*421 5 kubernetes

我想为 4 个 http 服务器 Pod 创建一个负载均衡器。

我也有一个 mysql pod。

一切正常,我为 http 创建了一个负载均衡器服务,为 mysql 创建了另一个服务。

我读过我也应该创建一个入口。但我不明白什么是入口,因为一切都与服务一起工作。

Ingress 的增值是什么?

谢谢

Sha*_*k V 10

由于您有一个服务 http 的服务,因此您当前使用 LoadBalancer 服务类型的解决方案工作正常。想象一下,您有多个基于 http 的服务,您希望在不同的路由上向外部提供这些服务。您必须为每个服务创建一个 LoadBalancer 服务,并且默认情况下您将为每个服务获得不同的 IP 地址。相反,您可以使用Ingress位于这些服务前面并执行路由的 。

入口清单示例:

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: test-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - http:
      paths:
      - path: /cart
        backend:
          serviceName: cart
          servicePort: 80
     - path: /payment
        backend:
          serviceName: payment
          servicePort: 80
Run Code Online (Sandbox Code Playgroud)

这里,Ingress 在单个 IP 地址上公开了两个不同的 HTTP 服务。使用 Ingress 时,您不需要为每个服务配备一个 LoadBalancer。