Sobes.tech
Middle

Hogyan lehet elérni a load balancer szolgáltatáson alapuló szolgáltatás külső IP-címét az Ingress vezérlőben?

sobes.tech MI

Válasz az MI-től

Ingress vezérlőben nem közvetlenül a LoadBalancer típusú szolgáltatás külső IP-címére hivatkoznak. Az Ingress vezérlő bemeneti pontként működik, és az Ingress erőforrásban meghatározott szabályok alapján irányítja a forgalmat különböző szolgáltatásokhoz.

Az Ingressen keresztül a LoadBalancer típusú szolgáltatáshoz való hozzáféréshez:

  1. Hozzon létre egy LoadBalancer típusú szolgáltatást az alkalmazásához. A Kubernetes felhőszolgáltatója ehhez a szolgáltatáshoz külső IP-címet rendel.

    // service.yaml
    apiVersion: v1
    kind: Service
    metadata:
      name: my-app-service
    spec:
      selector:
        app: my-app
      ports:
        - protocol: TCP
          port: 80
          targetPort: 80
      type: LoadBalancer
    
  2. Hozzon létre egy Ingress erőforrást, amely a forgalmat erre a szolgáltatásra irányítja.

    // ingress.yaml
    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: my-app-ingress
    spec:
      rules:
      - host: myapp.example.com # Vagy más domain/útvonal, ahol az alkalmazás elérhető lesz
        http:
          paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: my-app-service # A LoadBalancer szolgáltatás neve
                port:
                  number: 80 # A szolgáltatás portja, amelyre a forgalom irányul
    
  3. Győződjön meg arról, hogy az Ingress vezérlő telepítve van és működik a klaszterben. Az Ingress vezérlő (pl. Nginx Ingress Controller, Traefik) a neki kijelölt külső IP-n hallgat, és átirányítja a kéréseket a myapp.example.com-ra a my-app-service szolgáltatásra.

Így az alkalmazáshoz való hozzáférés az Ingress vezérlő külső IP-jén keresztül történik, nem közvetlenül a LoadBalancer típusú szolgáltatás külső IP-jén (bár az Ingress használhatja ezt a LoadBalancert a podok eléréséhez).