Sobes.tech
Middle

Ako pristúpiť k externej IP adrese služby založenej na load balancer (load balancer service) v Ingress kontroléri?

sobes.tech AI

Odpoveď od AI

V kontroléri Ingress sa priamym prístupom na externé IP služby typu LoadBalancer sa ne zaobchádza. Kontrolér Ingress slúži ako vstupný bod a smeruje prevádzku na základe pravidiel definovaných v zdroji Ingress na rôzne služby.

Na prístup k službe typu LoadBalancer cez Ingress je potrebné:

  1. Vytvoriť službu typu LoadBalancer pre vašu aplikáciu. Poskytovateľ Kubernetes v cloude priradí tejto službe 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. Vytvoriť zdroj Ingress, ktorý bude smerovať prevádzku na túto službu.

    // ingress.yaml
    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: my-app-ingress
    spec:
      rules:
      - host: myapp.example.com # Alebo iná doména/cesta, kde bude aplikácia dostupná
        http:
          paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: my-app-service # Názov vašej služby LoadBalancer
                port:
                  number: 80 # Port služby, na ktorý bude smerovaný prevádzka
    
  3. Uistiť sa, že kontrolér Ingress je nainštalovaný a funguje v klastre. Kontrolér Ingress (napríklad Nginx Ingress Controller, Traefik) bude počúvať na pridelenom externom IP a bude presmerovávať požiadavky na myapp.example.com na službu my-app-service.

Takto je prístup k aplikácii zabezpečený cez externé IP Ingress kontroléra, nie priamo cez externé IP služby typu LoadBalancer (hoci Ingress môže použiť tento LoadBalancer na prístup k podom).