このガイドでは、Google Kubernetes Engine(GKE)に Qdrant ベクトル データベース クラスタをデプロイする方法について説明します。
ベクトル データベースは、高次元ベクトルの大規模なコレクションを管理および検索するために特別に設計されたデータストアです。これらのベクトルは、テキスト、画像、音声、動画などのデータのほか、数値でエンコードできるデータを表します。完全一致に依存する従来のデータベースとは異なり、ベクトル データベースは大規模なデータセット内の類似アイテムの検索やパターンの識別に特化しています。こうした特性を持つ Qdrant は、ニューラル ネットワークまたはセマンティック ベースのマッチング、ファセット検索など、さまざまなアプリケーションに適しています。Qdrant は、ベクトル データベースとしてだけでなく、ベクトル類似性検索エンジンとしても機能します。
このチュートリアルは、GKE に Qdrant データベース クラスタをデプロイすることに関心があるクラウド プラットフォームの管理者およびアーキテクト、ML エンジニア、MLOps(DevOps)の専門家を対象としています。
利点
Qdrant には次のようなメリットがあります。
- さまざまなプログラミング言語に対応している幅広いライブラリと、他のサービスと統合できるオープン API。
- 水平スケーリングと、シャーディング / レプリケーション サポートにより、スケーリングと高可用性を簡素化。
- 最新のクラウドネイティブ環境でのデプロイと管理を可能にするコンテナと Kubernetes のサポート。
- 高度なフィルタリングを使用した柔軟なペイロードで、検索条件を正確に調整。
- さまざまな量子化オプションと、インフラストラクチャの費用を抑えながらパフォーマンスを向上させるその他の最適化。
目標
このチュートリアルでは、以下の方法について学習します。
- Qdrant 向けに GKE インフラストラクチャを計画して、デプロイする
- StatefulHA オペレーターをデプロイして、Qdrant の高可用性を確保する。
- Qdrant クラスタをデプロイして構成する。
- デモ データセットをアップロードし、シンプルな検索クエリを実行する。
- 指標を収集してダッシュボードを実行する。
Deployment のアーキテクチャ
このアーキテクチャでは、複数のアベイラビリティ ゾーンにまたがる Qdrant のフォールト トレラントでスケーラブルな GKE クラスタを設定し、ローリング アップデートとサービスの停止を最小限に抑えて稼働時間と可用性を確保します。これには、効率的なフェイルオーバー管理のための StatefulHA オペレーターの使用も含まれます。詳細については、リージョン クラスタをご覧ください。
アーキテクチャ図
次の図は、GKE クラスタ内の複数のノードとゾーンで実行されている Qdrant クラスタを示しています。
このアーキテクチャでは、Qdrant StatefulSet
が 3 つの異なるゾーンの 3 つのノードにデプロイされています。
- Helm チャート値ファイルに必要な Pod のアフィニティ ルールとトポロジ分散の制約を構成することで、GKE がノード間で Pod を分散する方法を制御できます。
- 1 つのゾーンで障害が発生すると、GKE は推奨構成に基づいて新しいノードで Pod を再スケジュールします。
このチュートリアルのアーキテクチャには、データの永続性について次の特性があります。
- データの保持には、リージョン SSD ディスク(カスタム
regional-pd
StorageClass)を使用します。低レイテンシと高い IOPS が得られるため、データベースにはリージョン SSD ディスクをおすすめします。 - ディスクデータはすべてリージョン内のプライマリ ゾーンとセカンダリ ゾーン間で複製されるため、ゾーン障害に対する耐性が向上します。
費用
このドキュメントでは、Google Cloud の次の課金対象のコンポーネントを使用します。
料金計算ツールを使うと、予想使用量に基づいて費用の見積もりを生成できます。
このドキュメントに記載されているタスクの完了後、作成したリソースを削除すると、それ以上の請求は発生しません。詳細については、クリーンアップをご覧ください。
始める前に
このチュートリアルでは、Cloud Shell を使用してコマンドを実行します。Google Cloud Shell は、Google Cloud でホストされているリソースを管理するためのシェル環境です。これには、Google Cloud CLI、kubectl、Helm、Terraform コマンドライン ツールがプリインストールされています。Cloud Shell を使用しない場合は、Google Cloud CLI をインストールする必要があります。
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Resource Manager, Compute Engine, GKE, IAM Service Account Credentials, and Backup for GKE APIs:
gcloud services enable cloudresourcemanager.googleapis.com
compute.googleapis.com container.googleapis.com iamcredentials.googleapis.com gkebackup.googleapis.com - Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Resource Manager, Compute Engine, GKE, IAM Service Account Credentials, and Backup for GKE APIs:
gcloud services enable cloudresourcemanager.googleapis.com
compute.googleapis.com container.googleapis.com iamcredentials.googleapis.com gkebackup.googleapis.com -
Grant roles to your user account. Run the following command once for each of the following IAM roles:
role/storage.objectViewer, roles/container.admin, roles/iam.serviceAccountAdmin, roles/compute.admin, roles/gkebackup.admin, roles/monitoring.viewer
gcloud projects add-iam-policy-binding PROJECT_ID --member="USER_IDENTIFIER" --role=ROLE
- Replace
PROJECT_ID
with your project ID. -
Replace
USER_IDENTIFIER
with the identifier for your user account. For example,user:myemail@example.com
. - Replace
ROLE
with each individual role.
- Replace
環境を設定する
Cloud Shell を使用して環境を設定するには、次の操作を行います。
プロジェクト、リージョン、Kubernetes クラスタ リソースの接頭辞に環境変数を設定します。
このチュートリアルでは、
us-central1
リージョンを使用して Deployment リソースを作成します。export PROJECT_ID=PROJECT_ID export KUBERNETES_CLUSTER_PREFIX=qdrant export REGION=us-central1
PROJECT_ID
は、実際の Google Cloud プロジェクト ID に置き換えます。
Helm のバージョンを確認します。
helm version
3.13 より古い場合は、バージョンを更新します。
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
GitHub からサンプルコード リポジトリのクローンを作成します。
git clone https://github.com/GoogleCloudPlatform/kubernetes-engine-samples
qdrant
ディレクトリに移動して、Deployment リソースの作成を開始します。cd kubernetes-engine-samples/databases/qdrant
クラスタ インフラストラクチャを作成する
このセクションでは、Terraform スクリプトを実行して、限定公開の高可用性 GKE リージョン クラスタを作成し、Qdrant データベースをデプロイします。
Qdrant のデプロイには、Standard クラスタまたは Autopilot クラスタを使用できます。それぞれに利点があり、料金モデルも異なります。
Autopilot
次の図は、3 つの異なるゾーンにデプロイされた Autopilot リージョン GKE クラスタを示しています。
クラスタ インフラストラクチャをデプロイするには、Cloud Shell で次のコマンドを実行します。
export GOOGLE_OAUTH_ACCESS_TOKEN=$(gcloud auth print-access-token)
terraform -chdir=terraform/gke-autopilot init
terraform -chdir=terraform/gke-autopilot apply \
-var project_id=${PROJECT_ID} \
-var region=${REGION} \
-var cluster_prefix=${KUBERNETES_CLUSTER_PREFIX}
次の変数は実行時に置き換えられます。
GOOGLE_OAUTH_ACCESS_TOKEN
:gcloud auth print-access-token
コマンドで取得したアクセス トークンに置き換え、さまざまな Google Cloud APIs とのやり取りを認証します。PROJECT_ID
、REGION
、KUBERNETES_CLUSTER_PREFIX
は、環境を設定するセクションで定義した環境変数で、作成する Autopilot クラスタの新しい関連変数に割り当てられます。
プロンプトが表示されたら、「yes
」と入力します。
出力は次のようになります。
...
Apply complete! Resources: 9 added, 0 changed, 0 destroyed.
Outputs:
kubectl_connection_command = "gcloud container clusters get-credentials qdrant-cluster --region us-central1"
Terraform が次のリソースを作成します。
- Kubernetes ノード用のカスタム VPC ネットワークとプライベート サブネット
- ネットワーク アドレス変換(NAT)を介してインターネットにアクセスするための Cloud Router。
us-central1
リージョンの限定公開 GKE クラスタ。- クラスタのロギングとモニタリングの権限を持つ
ServiceAccount
。 - クラスタのモニタリングおよびアラート用の Google Cloud Managed Service for Prometheus の構成。
Standard
次の図は、3 つの異なるゾーンにデプロイされた限定公開のリージョン GKE Standard クラスタを示しています。
クラスタ インフラストラクチャをデプロイするには、Cloud Shell で次のコマンドを実行します。
export GOOGLE_OAUTH_ACCESS_TOKEN=$(gcloud auth print-access-token)
terraform -chdir=terraform/gke-standard init
terraform -chdir=terraform/gke-standard apply \
-var project_id=${PROJECT_ID} \
-var region=${REGION} \
-var cluster_prefix=${KUBERNETES_CLUSTER_PREFIX}
次の変数は実行時に置き換えられます。
GOOGLE_OAUTH_ACCESS_TOKEN
は、gcloud auth print-access-token
コマンドで取得したアクセス トークンに置き換え、さまざまな Google Cloud APIs とのやり取りを認証します。PROJECT_ID
、REGION
、KUBERNETES_CLUSTER_PREFIX
は、環境を設定するセクションで定義した環境変数で、作成する Standard クラスタの新しい関連変数に割り当てられます。
プロンプトが表示されたら、「yes
」と入力します。これらのコマンドが完了し、クラスタが「準備完了」ステータスになるまでに数分かかることがあります。
出力は次のようになります。
...
Apply complete! Resources: 10 added, 0 changed, 0 destroyed.
Outputs:
kubectl_connection_command = "gcloud container clusters get-credentials qdrant-cluster --region us-central1"
Terraform が次のリソースを作成します。
- Kubernetes ノード用のカスタム VPC ネットワークとプライベート サブネット
- ネットワーク アドレス変換(NAT)を介してインターネットにアクセスするための Cloud Router。
- 自動スケーリングを有効にした
us-central1
リージョンの限定公開 GKE クラスタ(ゾーンあたり 1~2 ノード)。 - クラスタのロギングとモニタリングの権限を持つ
ServiceAccount
。 - クラスタのモニタリングおよびアラート用の Google Cloud Managed Service for Prometheus の構成。
クラスタに接続する
認証情報を取得し、新しい GKE クラスタと通信できるように kubectl
を構成します。
gcloud container clusters get-credentials \
${KUBERNETES_CLUSTER_PREFIX}-cluster --region ${REGION}
Qdrant データベースをクラスタにデプロイする
このチュートリアルでは、Helm チャートを使用して、Qdrant データベース(分散モード)と Stateful HA Operator を GKE クラスタにデプロイします。
デプロイにより、次の構成で GKE クラスタが作成されます。
- Qdrant ノードの 3 つのレプリカ。
- Kubernetes ノード全体に適切に分散されるように、toleration、ノード アフィニティ、トポロジ分散の制約が構成されます。これにより、ノードプールとさまざまなアベイラビリティ ゾーンが利用されます。
- SSD ディスクタイプの RePD ボリュームは、データ ストレージ用にプロビジョニングされます。
- Stateful HA オペレーターは、フェイルオーバー プロセスを管理し、高可用性を確保するために使用されます。
- 認証のため、データベースは API キーを含む Kubernetes Secret を作成します。
Helm チャートを使用して Qdrant データベースをデプロイするには、次の操作を行います。
StatefulHA アドオンを有効にする
Autopilot
GKE は、クラスタの作成時に
StatefulHA
アドオンを自動的に有効にします。Standard
次のコマンドを実行します。
gcloud container clusters update ${KUBERNETES_CLUSTER_PREFIX}-cluster \ --project=${PROJECT_ID} \ --region=${REGION} \ --update-addons=StatefulHA=ENABLED
このコマンドが完了し、クラスタが準備完了ステータスになるまでに 15 分かかることがあります。
GKE クラスタにデプロイする前に、Qdrant データベースの Helm チャート リポジトリを追加します。
helm repo add qdrant https://qdrant.github.io/qdrant-helm
データベースの Namespace
qdrant
を作成します。kubectl create ns qdrant
マニフェストを適用して、リージョン SSD 永続ディスク
StorageClass
を作成します。kubectl apply -n qdrant -f manifests/01-regional-pd/regional-pd.yaml
regional-pd.yaml
マニフェストには、永続 SSD ディスクStorageClass
が記述されています。Helm を使用して、
metrics
サイドカー構成と Qdrant クラスタを含む Kubernetes configmap をデプロイします。kubectl apply -n qdrant -f manifests/03-prometheus-metrics/metrics-cm.yaml helm install qdrant-database qdrant/qdrant -n qdrant \ -f manifests/02-values-file/values.yaml
metrics-cm.yaml
マニフェストには、metrics
サイドカーConfigMap
が記述されています。values.yaml
マニフェストには、Qdrant クラスタの構成が記述されています。この構成により、クラスタモードが有効になり、高可用性の分散 Qdrant クラスタを設定できます。
デプロイのステータスを確認します。
helm ls -n qdrant
qdrant
データベースが正常にデプロイされると、次のように出力されます。NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION qdrant-database qdrant 1 2024-02-06 20:21:15.737307567 +0000 UTC deployed qdrant-0.7.6 v1.7.4
GKE が必要なワークロードを開始するまで待ちます。
kubectl wait pods -l app.kubernetes.io/instance=qdrant-database --for condition=Ready --timeout=300s -n qdrant
このコマンドが正常に完了するまで数分かかる場合があります。
GKE がワークロードを開始したら、GKE は Qdrant ワークロードを作成したことを確認します。
kubectl get pod,svc,statefulset,pdb,secret -n qdrant
Qdrant の
HighAvailabilityApplication
(HAA)リソースを起動します。kubectl apply -n qdrant -f manifests/01-regional-pd/ha-app.yaml
ha-app.yaml
マニフェストには、HighAvailabilityApplication
リソースが記述されています。Qdrant クラスタ用に、次の GKE リソースが作成されます。
- 3 つの Pod レプリカを制御する Qdrant
StatefulSet
。 A PodDisruptionBudget
。使用できないレプリカが最大 1 つ確保されます。qdrant-database
Service。ノード間のインバウンド接続とレプリケーション用に Qdrant ポートを公開します。qdrant-database-headless
Service。実行中の Qdrant Pod のリストを提供します。qdrant-database-apikey
Secret。安全なデータベース接続を容易にします。- Qdrant アプリケーションをアクティブにモニタリングする、ステートフル HA オペレーター Pod と
HighlyAvailableApplication
リソース。HighlyAvailableApplication
リソースは、Qdrant に適用するフェイルオーバー ルールを定義します。
- 3 つの Pod レプリカを制御する Qdrant
フェイルオーバー ルールが適用されているかどうかを確認するには、リソースの説明を取得して
Status: Message: Application is protected
を確認します。kubectl describe highavailabilityapplication qdrant-database -n qdrant
出力は次のようになります。
Status: Conditions: Last Transition Time: 2023-11-30T09:54:52Z Message: Application is protected Observed Generation: 1 Reason: ApplicationProtected Status: True Type: Protected
データセットをアップロードして、Jupyter Notebook で検索クエリを実行する
Qdrant はベクトルとペイロードをコレクションに整理します。ベクトル エンベディングは、セマンティック関係を維持しながら単語やエンティティを数値ベクトルとして表す手法です。完全一致ではなく、意味に基づいて類似性を見つけて、検索やレコメンデーション システムなどのタスクをより効果的に処理できるため、これは類似性検索にとって重要な機能となります。
このセクションでは、新しい Qdrant コレクションにベクトルをアップロードし、単純な検索クエリを実行する方法について説明します。
この例では、さまざまなジャンルの書籍のリストを含む CSV ファイルのデータセットを使用します。Qdrant は検索エンジンとして機能し、作成した Jupyter ノートブック Pod は Qdrant データベースをクエリするクライアントとして機能します。
books-dataset
ConfigMap とdemo-app
ConfigMap を作成し、Jupyter ノートブックをデプロイします。kubectl create -n qdrant configmap books-dataset --from-file=manifests/04-notebook/dataset.csv kubectl create -n qdrant configmap notebook --from-file=manifests/04-notebook/vector-database.ipynb kubectl apply -n qdrant -f manifests/04-notebook/jupyter.yaml
- 先ほど作成した
qdrant-apikey
という名前の Secret が、APIKEY
という環境変数としてクライアント Pod にマウントされます。 books-dataset
ConfigMap には、Qdrant コレクションの書籍データを含むcsv
ファイルが含まれています。notebook
ConfigMap には、books-dataset
から Qdrant コレクションを作成する Jupyter ノートブックが含まれています。
- 先ほど作成した
GKE による Jupyter Pod の起動を待ちます。
kubectl wait pods -l app=jupyter-notebook --for condition=Ready --timeout=300s -n qdrant
この URL を開き、vector-database.ipynb ファイルをクリックします。[実行] -> [すべてのセルを実行] を押します。Jupyter はすべてのコードを実行し、検索クエリを実行します。
このクエリは、Qdrant の
my_books
コレクションに対してセマンティック検索を行い、クエリテキストに関連する一致スコアが最も高い検索結果を最大 2 件取得します。各結果が次のような形式で出力されます。それぞれの結果はダッシュのみの行で区切って出力されます。
Title
: 書籍のタイトルAuthor
: 書籍の著者Description
: ドキュメントのdescription
メタデータ フィールドに保存されている値Published
: 書籍の出版日Score
: Qdrant の関連性スコア
出力は次のようになります。
Title: Romeo and Juliet Author: William Shakespeare, Paul Werstine (Editor), Barbara A. Mowat (Editor), Paavo Emil Cajander (Translator) Description: In Romeo and Juliet, Shakespeare creates a violent world, in which two young people fall in love. It is not simply that their families disapprove; the Montagues and the Capulets are engaged in a blood feud.In this death-filled setting, the movement from love at first sight to the lovers' final union in death seems almost inevitable. And yet, this play set in an extraordinary world has become the quintessential story of young love. In part because of its exquisite language, it is easy to respond as if it were about all young lovers. Published: 01/01/04 Score: 0.8935013 ----- Title: The Unbearable Lightness of Being Author: Milan Kundera, Michael Henry Heim (Translator) Description: In The Unbearable Lightness of Being, Milan Kundera tells the story of a young woman in love with a man torn between his love for her and his incorrigible womanizing and one of his mistresses and her humbly faithful lover. This magnificent novel juxtaposes geographically distant places, brilliant and playful reflections, and a variety of styles, to take its place as perhaps the major achievement of one of the world's truly great writers. Published: 10/27/09 Score: 0.8931863 -----
クラスタの Prometheus 指標を表示する
GKE クラスタは Google Cloud Managed Service for Prometheus で構成されており、Prometheus 形式での指標の収集が可能です。このサービスは、モニタリングとアラート用のフルマネージド ソリューションを提供し、クラスタとそのアプリケーションからの指標の収集、保存、分析を可能にします。
次の図は、Prometheus がクラスタの指標を収集する方法を示しています。
この図の GKE 限定公開クラスタには、次のコンポーネントが含まれています。
- パス
/
とポート80
で指標を公開する Qdrant Pod。これらの指標は、metrics
というサイドカー コンテナによって提供されます。 - Qdrant Pod からの指標を処理する Prometheus ベースのコレクタ。
- Cloud Monitoring に指標を送信する PodMonitoring リソース
指標をエクスポートして表示する手順は次のとおりです。
labelSelector
で指標を収集するPodMonitoring
リソースを作成します。kubectl apply -n qdrant -f manifests/03-prometheus-metrics/pod-monitoring.yaml
pod-monitoring.yaml
マニフェストには、PodMonitoring
リソースが記述されています。dashboard.json
で定義された構成を使用して、Cloud Monitoring ダッシュボードを作成します。gcloud --project "${PROJECT_ID}" monitoring dashboards create --config-from-file monitoring/dashboard.json
コマンドが正常に実行されたら、Cloud Monitoring のダッシュボードに移動します。
ダッシュボードのリストで、
Qdrant Overview
ダッシュボードを開きます。指標の収集と表示には 1~2 分かかる場合があります。ダッシュボードには、次の主要な指標のカウントが表示されます。
- コレクション
- 埋め込みベクトル
- 保留中のオペレーション
- 実行中のノード
クラスタ構成をバックアップする
Backup for GKE 機能を使用すると、デプロイされたワークロードとそのデータを含む GKE クラスタ構成全体の定期的なバックアップ スケジュールを設定できます。
このチュートリアルでは、Secret と Volume を含むすべてのワークロードのバックアップを毎日午前 3 時に実行するように、GKE クラスタのバックアップ プランを構成します。ストレージ管理を効率的に行うため、3 日以上経過したバックアップは自動的に削除されます。
バックアップ プランを構成する手順は次のとおりです。
クラスタで Backup for GKE 機能を有効にします。
gcloud container clusters update ${KUBERNETES_CLUSTER_PREFIX}-cluster \ --project=${PROJECT_ID} \ --region=${REGION} \ --update-addons=BackupRestore=ENABLED
クラスタ内のすべての Namespace の日次スケジュールでバックアップ プランを作成します。
gcloud beta container backup-restore backup-plans create ${KUBERNETES_CLUSTER_PREFIX}-cluster-backup \ --project=${PROJECT_ID} \ --location=${REGION} \ --cluster="projects/${PROJECT_ID}/locations/${REGION}/clusters/${KUBERNETES_CLUSTER_PREFIX}-cluster" \ --all-namespaces \ --include-secrets \ --include-volume-data \ --cron-schedule="0 3 * * *" \ --backup-retain-days=3
このコマンドは、実行時に関連する環境変数を使用します。
クラスタ名の形式は、プロジェクトとリージョンに対して相対的です。
projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_NAME
プロンプトが表示されたら、「
y.
」と入力します。出力は次のようになります。Create request issued for: [qdrant-cluster-backup] Waiting for operation [projects/PROJECT_ID/locations/us-central1/operations/operation-1706528750815-610142ffdc9ac-71be4a05-f61c99fc] to complete...⠹
このオペレーションが正常に完了するまで数分かかることがあります。実行が完了すると、出力は次のようになります。
Created backup plan [qdrant-cluster-backup].
新しく作成したバックアップ プラン
qdrant-cluster-backup
が Backup for GKE コンソールに表示されます。
保存したバックアップ構成を復元する場合は、バックアップを復元するをご覧ください。
クリーンアップ
このチュートリアルで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、リソースを含むプロジェクトを削除するか、プロジェクトを維持して個々のリソースを削除します。
プロジェクトを削除する
課金が発生しないようにする最も簡単な方法は、このチュートリアル用に作成したプロジェクトを削除することです。
Delete a Google Cloud project:
gcloud projects delete PROJECT_ID
プロジェクトを削除すると、クリーンアップが完了します。プロジェクトを削除していない場合は、個々のリソースを削除します。
リソースを個別に削除する
環境変数を設定します。
export PROJECT_ID=${PROJECT_ID} export KUBERNETES_CLUSTER_PREFIX=qdrant export REGION=us-central1
terraform destroy
コマンドを実行します。export GOOGLE_OAUTH_ACCESS_TOKEN=$(gcloud auth print-access-token) terraform -chdir=terraform/FOLDER destroy \ -var project_id=${PROJECT_ID} \ -var region=${REGION} \ -var cluster_prefix=${KUBERNETES_CLUSTER_PREFIX}
作成した GKE クラスタのタイプに応じて、
FOLDER
をgke-autopilot
またはgke-standard
に置き換えます。プロンプトが表示されたら、「
yes
」と入力します。アタッチされていないすべてのディスクを検索します。
export disk_list=$(gcloud compute disks list --filter="-users:* AND labels.name=${KUBERNETES_CLUSTER_PREFIX}-cluster" --format "value[separator=|](name,region)")
ディスクを削除します。
for i in $disk_list; do disk_name=$(echo $i| cut -d'|' -f1) disk_region=$(echo $i| cut -d'|' -f2|sed 's|.*/||') echo "Deleting $disk_name" gcloud compute disks delete $disk_name --region $disk_region --quiet done
GitHub リポジトリを削除します。
rm -r ~/kubernetes-engine-samples/
次のステップ
- Qdrant オープンソース ソフトウェアを確認する。
- Qdrant オペレーターを試してみる。このオペレーターは、API キー管理、TLS サポートと証明書管理、バックアップ スケジュールを提供します。
- GKE にデータベースをデプロイするためのベスト プラクティスについて学習する。
- GKE でデータ量の多いワークロードを実行するためのソリューションを確認する。