Sobes.tech
Middle

Как да се обърнете към външния IP адрес на услугата, базирана на балансировчика на натоварване (load balancer service) в контролера Ingress?

sobes.tech AI

Отговор от AI

В контролера Ingress не се обръща директно към външния IP на услуга от тип 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 # Името на вашата услуга LoadBalancer
                port:
                  number: 80 # Портът на услугата, към който ще се пренасочва трафикът
    
  3. Да се уверите, че контролерът Ingress е инсталиран и работи в клъстера. Контролерът Ingress (например, Nginx Ingress Controller, Traefik) ще слуша на предоставения му външен IP и ще пренасочва заявките към myapp.example.com към услугата my-app-service.

По този начин, достъпът до приложението се осигурява чрез външния IP на контролера Ingress, а не директно чрез външния IP на услугата от тип LoadBalancer (макар че Ingress може да използва този LoadBalancer за достъп до подовете).