Sobes.tech
Middle

Kubernetesте иштеп жаткан колдонмо үчүн колдонуучулардын киришин кантип камсыз кылса болот?

sobes.tech AI

AIден жооп

Көптөгөн негизги ыкмалар бар:

  1. Kubernetes кызмат түрү: LoadBalancer. Бул булут провайдери сырттан жүктөө балансаторун түзөт, ал трафикти колдонмоңуздун поддоруна багыттайт.

    apiVersion: v1
    kind: Service
    metadata:
      name: my-app-service
    spec:
      selector:
        app: my-app
      ports:
        - protocol: TCP
          port: 80
          targetPort: 8080
      type: LoadBalancer # Бул жерде LoadBalancer түрү көрсөтүлөт
    
  2. Kubernetes кызмат түрү: NodePort. Ар бир кластер түйүнү статикалык портту ачат, ал трафикти кызматка багыттайт. Кызматка кирүү ар бир түйүндүн IP дареги жана бул статикалык порт аркылуу ишке ашат.

    apiVersion: v1
    kind: Service
    metadata:
      name: my-app-service
    spec:
      selector:
        app: my-app
      ports:
        - protocol: TCP
          port: 80
          targetPort: 8080
      type: NodePort # Бул жерде NodePort түрү көрсөтүлөт
    

    Бул ыкма масштабдуу эмес жана көбүнчө өндүрүштүк чөйрөдө сунушталбайт.

  3. Ingress. Kubernetes объекти, ал кластердеги кызматтарга сырттан кирүүнү башкарет. Ал үчүн Ingress- контроллери (мисалы, Nginx Ingress, Traefik, HAProxy) керек. Ingress домен аттары жана жолдор боюнча маршрутту түзүүгө мүмкүндүк берет.

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: my-app-ingress
    spec:
      rules:
        - host: myapp.mydomain.com # Домен аты
          http:
            paths:
              - path: / # Жол
                pathType: Prefix
                backend:
                  service:
                    name: my-app-service # Кызматтын аты
                    port:
                      number: 80 # Кызмат порту
    
  4. Gateway API (заманбап ыкма). Ingressтин өнүгүшү, ал көбүрөөк сүрөттөмө жана кеңейтүүчү API сунуштайт. Ал GatewayClass, Gateway, HTTPRoute (жана башка маршрут түрлөрү) ресурстарын камтыйт.

    apiVersion: gateway.networking.k8s.io/v1
    kind: HTTPRoute
    metadata:
      name: my-app-route
    spec:
      parentRefs:
        - name: my-gateway # Gateway ресурсуна шилтеме
      hostnames:
        - "myapp.mydomain.com"
      rules:
        - matches:
            - path:
                type: Prefix
                value: /
          backendRefs:
            - name: my-app-service # Кызматтын аты
              port: 80 # Порт
    

Ыкманы тандоо талаптардан көз каранды:

  • Масштабдуулук
  • маршруттоо татаалдыгы
  • Коопсуздук (SSL/TLS терминалдоо)
  • Колдонулган булут платформасы
  • Централизденген жеткиликтүүлүк башкаруу

Көпчүлүк өндүрүш сценарийлеринде LoadBalancer кирүү чекитин камсыз кылуу үчүн колдонулат (көбүнчө Ingress- контроллер үчүн) же түздөн-түз, жана Ingress (же Gateway API) ийкемдүү маршруттоо жана жеткиликтүүлүк башкаруу үчүн колдонулат.