Sobes.tech
Middle

Jak získat přístup k externí IP adrese služby založené na load balanceru (load balancer service) v Ingress kontroléru?

sobes.tech AI

Odpověď od AI

V řadiči Ingress se přímo na externí IP služby typu LoadBalancer ne odkazuje. Řadič Ingress funguje jako vstupní bod a směruje provoz na základě pravidel definovaných v zdroji Ingress na různé služby.

Pro přístup ke službě typu LoadBalancer přes Ingress je třeba:

  1. Vytvořit službu typu LoadBalancer pro vaši aplikaci. Poskytovatel Kubernetes v cloudu této službě přiřadí externí IP adresu.

    // 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. Vytvořit zdroj Ingress, který bude směrovat provoz na tuto službu.

    // ingress.yaml
    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: my-app-ingress
    spec:
      rules:
      - host: myapp.example.com # Nebo jiná doména/cesta, kde bude aplikace dostupná
        http:
          paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: my-app-service # Název vaší služby LoadBalancer
                port:
                  number: 80 # Port služby, na který bude směrován provoz
    
  3. Ujistěte se, že je nainstalován a funguje řadič Ingress v clusteru. Řadič Ingress (například Nginx Ingress Controller, Traefik) bude poslouchat na přidělené externí IP a přesměrovávat požadavky na myapp.example.com na službu my-app-service.

Tímto způsobem je přístup k aplikaci zajištěn přes externí IP řadiče Ingress, nikoli přímo přes externí IP služby typu LoadBalancer (ačkoliv Ingress může tuto LoadBalancer využít pro přístup k podům).