🚀 Попробуйте Zilliz Cloud, полностью управляемый Milvus, бесплатно — ощутите 10-кратное увеличение производительности! Попробовать сейчас>

milvus-logo
LFAI
Главная
  • Руководство по администрированию
  • Home
  • Docs
  • Руководство по администрированию

  • Развертывание

  • На облаках

  • Балансировка нагрузки на уровне 7

  • AWS

Настройка балансировщика нагрузки Layer-7 для Milvus на AWS

По сравнению с балансировщиком нагрузки уровня 4, балансировщик нагрузки уровня 7 предлагает интеллектуальную балансировку нагрузки и возможности кэширования и является отличным выбором для облачных нативных сервисов.

В этом руководстве вы узнаете, как настроить балансировщик нагрузки уровня 7 для кластера Milvus, уже работающего за балансировщиком нагрузки уровня 4.

Перед началом работы

Настройка конфигураций Milvus

В этом руководстве предполагается, что вы уже развернули кластер Milvus за балансировщиком нагрузки Layer-4 на AWS.

Перед настройкой балансировщика нагрузки Layer-7 для этого кластера Milvus выполните следующую команду, чтобы удалить балансировщик нагрузки Layer-4.

helm upgrade milvus-demo milvus/milvus -n milvus --set service.type=ClusterIP

Подготовьте сертификаты TLS

Для работы TLS требуются сертификаты. Мы используем ACM для управления сертификатами, и нам нужно импортировать существующий сертификат в ACM. Обратитесь к разделу Импорт сертификата. Ниже приведен пример.

# If the import-certificate command is successful, it returns the arn of the imported certificate.
aws acm import-certificate --certificate fileb://Certificate.pem \
      --certificate-chain fileb://CertificateChain.pem \
      --private-key fileb://PrivateKey.pem  

Создание входного файла для генерации балансировщика нагрузки уровня 7

Подготовьте файл ingress следующим образом и назовите его ingress.yaml. Замените arn и host сертификата на свои собственные.

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  namespace: milvus
  name: milvus-demo
  annotations:
    alb.ingress.kubernetes.io/scheme: internet-facing
    alb.ingress.kubernetes.io/backend-protocol-version: GRPC
    alb.ingress.kubernetes.io/target-type: ip
    alb.ingress.kubernetes.io/listen-ports: '[{"HTTPS":443}]'
    alb.ingress.kubernetes.io/certificate-arn: "arn:aws:acm:region:account-id:certificate/certificate-id"

spec:
  ingressClassName: alb
  rules:
    - host: milvus-demo.milvus.io
      http:
        paths:
        - path: /
          pathType: Prefix
          backend:
            service:
              name: milvus-demo
              port:
                number: 19530

Затем вы можете создать Ingress, применив этот файл к кластеру EKS.

kubectl apply -f ingress.yaml

Теперь подождите, пока AWS настроит балансировщик нагрузки Layer-7. Вы можете проверить прогресс, выполнив команду

kubectl -f ingress.yaml get -w

Результат должен быть похож на следующий:

NAME          CLASS   HOSTS                   ADDRESS                                                                PORTS   AGE
milvus-demo   alb     milvus-demo.milvus.io   k8s-milvus-milvusde-2f72215c02-778371620.us-east-2.elb.amazonaws.com   80      10m

Как только в поле ADDRESS появится адрес, балансировщик нагрузки Layer-7 будет готов к использованию.

Проверка соединения через балансировщик нагрузки Layer-7

В этом руководстве используется PyMilvus для проверки соединения с сервисом Milvus за балансировщиком нагрузки Layer-7, который мы только что создали. Подробные шаги описаны здесь.

from pymilvus import (
    connections,
    utility,
    FieldSchema,
    CollectionSchema,
    DataType,
    Collection,
)

connections.connect("default", host="k8s-milvus-milvusde-2f72215c02-778371620.us-east-2.elb.amazonaws.com", port="443", secure=True, server_name="milvus-demo.milvus.io")
  • Хост и имя_сервера должны быть заменены на ваши собственные.
  • Если вы настроили DNS-запись для сопоставления доменного имени с alb, замените host на доменное имя и опустите server_name.

Попробуйте Managed Milvus бесплатно

Zilliz Cloud работает без проблем, поддерживается Milvus и в 10 раз быстрее.

Начать
Обратная связь

Была ли эта страница полезной?