Ingress与service的关系

2023-12-02  本文已影响0人  木火应

在Kubernetes 中,Ingress 和 Service 是两个不同的概念,但它们通常一起使用以提供对应用程序的外部访问。以下是它们之间的关系:

  1. Service:
    • Service 是 Kubernetes 中一种用于暴露应用程序的网络服务的抽象。
    • Service 可以将 Pod 组织成一个单一的访问点,并提供负载均衡以确保流量被均匀分配到这组 Pod 中。
    • Service 主要用于集群内部的服务发现和负载均衡,通常使用 ClusterIP、NodePort 或 LoadBalancer 类型。
  2. Ingress:
    • Ingress 是 Kubernetes 中用于公开和管理集群中服务的 API 对象。
    • Ingress 允许从集群外部访问集群内部的服务,提供了一种将外部流量路由到集群内 Service 的机制。
    • Ingress 定义了规则,指定了外部流量如何映射到后端服务。这些规则可能包括主机名、路径和后端服务的映射关系。
  3. 关系:
    • Ingress 通常与 Service 一起使用,将外部流量引导到 Service。
    • Ingress 规则中的后端服务通常是指已在集群内定义的 Service。
    • Service 通过 ClusterIP 暴露在集群内,而 Ingress 则负责将流量从集群外部引导到这些 Service 上。

例子:

假设有一个 Service 和一个相应的 Ingress:

apiVersion: v1
kind: Service
metadata:
  name: myapp-service
spec:
  selector:
    app: myapp
  ports:
    - protocol: TCP
      port: 80
      targetPort: 8080

---

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: myapp-ingress
spec:
  rules:
  - host: myapp.example.com
    http:
      paths:
      - path: /app
        pathType: Prefix
        backend:
          service:
            name: myapp-service
            port:
              number: 80

在这个例子中,myapp-service 是一个 Service,myapp-ingress 是一个 Ingress,规定了将 myapp.example.com/app 的请求路由到 myapp-service Service 中。流量从 Ingress 进入集群,然后被路由到相应的 Service。

上一篇下一篇

猜你喜欢

热点阅读