Sobes.tech
Middle

Kuidas pääseda Ingressi kontrollijas põhjal load balancer teenuse (load balancer service) välisele IP-aadressile?

sobes.tech AI

Vastus AI-lt

Ingress kontrolleris eiühenda otse LoadBalancer tüüpi teenuse välist IP-aadressi. Ingress kontroller ise on sisenemispunkt ja suunab liiklust reeglite alusel, mis on määratletud Ingress ressursis.

Selleks, et pääseda LoadBalancer tüüpi teenusele Ingressi kaudu, tuleb:

  1. Luua LoadBalancer tüüpi teenus oma rakenduse jaoks. Kubernetes pilveteenuse pakkuja eraldab sellele teenusele välimise IP-aadressi.

    // 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. Luua Ingress ressurss, mis suunab liikluse sellele teenusele.

    // ingress.yaml
    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: my-app-ingress
    spec:
      rules:
      - host: myapp.example.com # või teine domeen/tee, mille kaudu rakendus on kättesaadav
        http:
          paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: my-app-service # Teie LoadBalancer tüüpi teenuse nimi
                port:
                  number: 80 # Teenuse port, millele liiklus suunatakse
    
  3. Veenduge, et Ingress kontroller on paigaldatud ja töötab klastris. Ingress kontroller (näiteks Nginx Ingress Controller, Traefik) kuulab välist IP-d ja suunab päringud myapp.example.com teenusele my-app-service.

Seega tagatakse rakenduse ligipääs Ingress kontrolleri välimise IP kaudu, mitte otse välimise IP kaudu (kuigi Ingress võib kasutada seda LoadBalancerit, et pääseda podidele).