Sobes.tech
Middle

როგორ მივიღოთ წვდომა Ingress კონტროლერში დატვირთვის ბალანსის სერვისზე (load balancer service) დაფუძნებული სერვისის გარე IP მისამართზე?

sobes.tech AI

პასუხი AI-სგან

Ingress კონტროლერში პირდაპირ არ ხდება მიმართვა სერვისის ტიპის LoadBalancer-ის გარე IP-ზე. 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-ის საშუალებით, არა პირდაპირ გარე IP-ზე (თუმცა, Ingress-ი შეიძლება გამოიყენოს ეს LoadBalancer-ი პოდების მისაწვდომად).