Sobes.tech
Middle

Ինչպես դիմել Ingress վերահսկիչում բեռի հավասարակշռիչ ծառայության (load balancer service) վրա հիմնված ծառայության արտաքին IP հասցեին?

sobes.tech AI

Պատասխան AI-ից

Ingress վերահսկիչում, ոչ ուղղակիորեն դիմում են LoadBalancer տեսակի ծառայության արտաքին IP-ին: Ingress վերահսկիչը գործել է որպես մուտքի կետ և ուղղորդում է տրաֆիկը տարբեր ծառայությունների միջև՝ հիմնվելով Ingress ռեսուրսում սահմանված կանոնների վրա:

Ingress-ի միջոցով LoadBalancer տեսակի ծառայության հասանելիությունը ապահովելու համար անհրաժեշտ է՝

  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 ծառայությունը:

Այսպիսով, հավելվածին հասանելիությունը ապահովվում է Ingress վերահսկիչի արտաքին IP-ով, ոչ թե ուղղակիորեն LoadBalancer ծառայության արտաքին IP-ով (համենայն դեպս, Ingress-ը կարող է օգտագործել այս LoadBalancer-ը՝ հասնելու համար պոդերին):