Sobes.tech
Middle

Kubernetesda ishlayotgan ilovaga foydalanuvchilar kirishini qanday ta'minlash mumkin?

sobes.tech AI

AIdan javob

Asosiy usullarning bir nechtasi mavjud:

  1. Kubernetes Xizmat Turi: LoadBalancer. Bulut provayder tashqi yuk muvozanatlagichini yaratadi, u sizning ilovangiz podlariga trafikni yo'naltiradi.

    apiVersion: v1
    kind: Service
    metadata:
      name: my-app-service
    spec:
      selector:
        app: my-app
      ports:
        - protocol: TCP
          port: 80
          targetPort: 8080
      type: LoadBalancer # Bu yerda LoadBalancer turi ko'rsatiladi
    
  2. Kubernetes Xizmat Turi: NodePort. Har bir klaster tuguni statik port ochadi, u trafikni xizmatga yo'naltiradi. Ilovaga kirish har qanday tugunning IP manzili va bu statik port orqali amalga oshiriladi.

    apiVersion: v1
    kind: Service
    metadata:
      name: my-app-service
    spec:
      selector:
        app: my-app
      ports:
        - protocol: TCP
          port: 80
          targetPort: 8080
      type: NodePort # Bu yerda NodePort turi ko'rsatiladi
    

    Bu usul kamroq kengaytiriladigan va ko'pincha ishlab chiqarish uchun tavsiya etilmaydi.

  3. Ingress. Kubernetes obyekti, klasterdagi xizmatlarga tashqi kirishni boshqaradi. Ingress-ni boshqaruvchi (masalan, Nginx Ingress, Traefik, HAProxy) talab qilinadi. Ingress domen nomlari va yo'llar asosida marshrutlashni sozlash imkonini beradi.

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: my-app-ingress
    spec:
      rules:
        - host: myapp.mydomain.com # Domen nomi
          http:
            paths:
              - path: / # Yo'l
                pathType: Prefix
                backend:
                  service:
                    name: my-app-service # Xizmat nomi
                    port:
                      number: 80 # Xizmat porti
    
  4. Gateway API (zamonaviyroq yondashuv). Ingress-ning evolyutsiyasi, kirishni boshqarish uchun yanada ifodali va kengaytiriladigan API taqdim etadi. GatewayClass, Gateway, HTTPRoute (va boshqa yo'nalish turlari) resurslarini o'z ichiga oladi.

    apiVersion: gateway.networking.k8s.io/v1
    kind: HTTPRoute
    metadata:
      name: my-app-route
    spec:
      parentRefs:
        - name: my-gateway # Gateway resursiga havola
      hostnames:
        - "myapp.mydomain.com"
      rules:
        - matches:
            - path:
                type: Prefix
                value: /
          backendRefs:
            - name: my-app-service # Xizmat nomi
              port: 80 # Xizmat porti
    

Usulni tanlash talablar:

  • Kengaytirilganlik
  • Marshrutlash murakkabligi
  • Xavfsizlik (SSL/TLS terminatsiyasi)
  • Bulut platformasi
  • Markaziy kirish boshqaruvi ehtiyoji

Ko'p ishlab chiqarish ssenariylarida LoadBalancer kirish nuqtasini ta'minlash uchun (ko'pincha Ingress-ning boshqaruvchisi uchun) yoki to'g'ridan-to'g'ri, va Ingress (yoki Gateway API) moslashuvchan marshrutlash va kirishni boshqarish uchun ishlatiladi.