Mengonfigurasi Akses GCS dengan Identitas Beban Kerja
Topik ini memperkenalkan cara mengonfigurasi akses GCS dengan Workload Identity ketika Anda menginstal Milvus dengan helm. Untuk detail lebih lanjut, lihat Workload Identity.
Sebelum Anda mulai
Aktifkan Workload Identity pada cluster dan node pool menggunakan Google Cloud CLI atau konsol Google Cloud. Identitas Beban Kerja harus diaktifkan di tingkat cluster sebelum Anda dapat mengaktifkan Identitas Beban Kerja di kumpulan node.
Mengonfigurasi aplikasi untuk menggunakan Workload Identity
- Buat bucket.
gcloud storage buckets create gs://milvus-testing-nonprod --project=milvus-testing-nonprod --default-storage-class=STANDARD --location=us-west1 --uniform-bucket-level-access
- Buat akun layanan Kubernetes untuk digunakan aplikasi Anda.
kubectl create serviceaccount milvus-gcs-access-sa
- Buat akun layanan IAM untuk aplikasi Anda atau gunakan akun layanan IAM yang sudah ada. Anda dapat menggunakan akun layanan IAM apa pun di proyek mana pun di organisasi Anda.
gcloud iam service-accounts create milvus-gcs-access-sa \
--project=milvus-testing-nonprod
- Pastikan akun layanan IAM Anda memiliki peran yang Anda perlukan. Anda dapat memberikan peran tambahan menggunakan perintah berikut:
gcloud projects add-iam-policy-binding milvus-testing-nonprod \
--member "serviceAccount:milvus-gcs-access-sa@milvus-testing-nonprod.iam.gserviceaccount.com" \
--role "roles/storage.admin" \
--condition='title=milvus-testing-nonprod,expression=resource.service == "storage.googleapis.com" && resource.name.startsWith("projects/_/buckets/milvus-testing-nonprod")'
- Izinkan akun layanan Kubernetes untuk meniru akun layanan IAM dengan menambahkan pengikatan kebijakan IAM di antara kedua akun layanan. Pengikatan ini memungkinkan akun layanan Kubernetes bertindak sebagai akun layanan IAM.
gcloud iam service-accounts add-iam-policy-binding milvus-gcs-access-sa@milvus-testing-nonprod.iam.gserviceaccount.com \
--role "roles/iam.workloadIdentityUser" \
--member "serviceAccount:milvus-testing-nonprod.svc.id.goog[default/milvus-gcs-access-sa]"
- Anotasi akun layanan Kubernetes dengan alamat email akun layanan IAM.
kubectl annotate serviceaccount milvus-gcs-access-sa \
--namespace default \
iam.gke.io/gcp-service-account=milvus-gcs-access-sa@milvus-testing-nonprod.iam.gserviceaccount.com
Verifikasi penyiapan Identitas Beban Kerja
Silakan lihat Identitas Beban Kerja. Jalankan perintah berikut di dalam Pod:
curl -H "Metadata-Flavor: Google" http://169.254.169.254/computeMetadata/v1/instance/service-accounts/default/email
Jika hasilnya adalah milvus-gcs-access-sa@milvus-testing-nonprod.iam.gserviceaccount.com
, tidak apa-apa.
Menerapkan Milvus
helm install -f values.yaml my-release milvus/milvus
konten values.yaml:
cluster:
enabled: true
service:
type: LoadBalancer
minio:
enabled: false
serviceAccount:
create: false
name: milvus-gcs-access-sa
externalS3:
enabled: true
host: storage.googleapis.com
port: 443
rootPath: milvus/my-release
bucketName: milvus-testing-nonprod
cloudProvider: gcp
useSSL: true
useIAM: true