როგორ მივიღოთ წვდომა Ingress კონტროლერში დატვირთვის ბალანსის სერვისზე (load balancer service) დაფუძნებული სერვისის გარე IP მისამართზე?
sobes.tech AI
პასუხი AI-სგან
Ingress კონტროლერში პირდაპირ არ ხდება მიმართვა სერვისის ტიპის LoadBalancer-ის გარე IP-ზე. Ingress კონტროლერი თავად არის შესასვლელი წერტილი და маршруტირებს ტრეფიკს წესების საფუძველზე, რომლებიც განსაზღვრულია Ingress რესურსში.
მიუხედავად იმისა, რომ გსურთ მიმართვა სერვისის ტიპის LoadBalancer-ზე Ingress-ის საშუალებით, საჭიროა:
-
შექმნათ
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 -
შექმნათ
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 # სერვისის პორტი, სადაც ტრეფიკი გადამისამართდება -
დარწმუნდით, რომ Ingress კონტროლერი დაყენებულია და მუშაობს კლასტერში. Ingress კონტროლერი (მაგალითად, Nginx Ingress Controller, Traefik) ისმენს გარე IP-ს და გადამისამართავს მოთხოვნებს
myapp.example.com-ზე, სერვისსmy-app-service.
ამგვარად, აპლიკაციის წვდომა უზრუნველყოფილია Ingress კონტროლერის გარე IP-ის საშუალებით, არა პირდაპირ გარე IP-ზე (თუმცა, Ingress-ი შეიძლება გამოიყენოს ეს LoadBalancer-ი პოდების მისაწვდომად).