milvus-logo
LFAI
フロントページへ
  • 管理ガイド

AWS上のMilvusにレイヤー7ロードバランサーをセットアップする

レイヤ4ロードバランサと比較すると、レイヤ7ロードバランサはスマートなロードバランシングとキャッシュ機能を提供し、クラウドネイティブなサービスに最適な選択です。

このガイドでは、Layer-4 ロードバランサーの背後で既に稼働している Milvus クラスタに対して、Layer-7 ロードバランサーを設定する手順を説明します。

始める前に

Milvusの設定を調整する

このガイドでは、AWS上のLayer-4ロードバランサの後ろにMilvusクラスタをデプロイ済みであることを前提としています。

このMilvusクラスタにLayer-7ロードバランサをセットアップする前に、以下のコマンドを実行して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.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

このファイルをEKSクラスタに適用してIngressを作成します。

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 を使って、先ほど作成した Layer-7 ロードバランサの背後にある Milvus サービスへの接続を検証します。詳しい手順はこちらを読んでください。

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")
  • hostと server_nameは自分のものに置き換えてください。
  • ドメイン名と alb を対応付ける DNS レコードを設定している場合は、hostをドメイン名に置き換え、server_name を省略してください。

翻訳DeepLogo

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
フィードバック

このページは役に立ちましたか ?