Sobes.tech
Middle
132

Ingress бақылаушысы негізінде жүктеме теңгерімшісі (load balancer service) қызметінің сыртқы IP мекенжайына қалай қол жеткізуге болады?

AI-дан жауап

sobes.tech AI

Ingress контроллерінде сыртқы LoadBalancer типті сервистерге тікелей қол жеткізілмейді. Ingress контроллері — бұл кіріс нүктесі және ол Ingress ресурсында анықталған ережелер негізінде трафикті әртүрлі сервистерге бағыттайды.

LoadBalancer типті сервисте Ingress арқылы қол жеткізу үшін:

  1. Қолданбаңыз үшін LoadBalancer типті сервисті жасаңыз. Kubernetes бұл сервисте сыртқы IP мекенжайын бөледі.

    // 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. Бұл сервисте трафикті бағыттайтын Ingress ресурсын жасаңыз.

    // ingress.yaml
    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: my-app-ingress
    spec:
      rules:
      - host: myapp.example.com # Немесе басқа домен/жол, ол арқылы қолданба қол жетімді болады
        http:
          paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: my-app-service # Сервистің атауы
                port:
                  number: 80 # Трафикті бағыттайтын порт
    
  3. Ingress контроллері орнатылған және кластерде жұмыс істеп тұрғанына көз жеткізіңіз. Ingress контроллері (мысалы, Nginx Ingress Controller, Traefik) сыртқы IP мекенжайын тыңдайды және myapp.example.com сұрауларын my-app-service сервісіне бағыттайды.

Осылайша, қолданбаға қол жеткізу Ingress контроллерінің сыртқы IP арқылы қамтамасыз етіледі, ал тікелей LoadBalancer сыртқы IP арқылы емес (бірақ Ingress бұл LoadBalancer-ді подтарға қол жеткізу үшін пайдалана алады).