Mengonfigurasi cluster Google Kubernetes Engine untuk AI Platform Pipelines

AI Platform Pipelines memudahkan Anda memulai Kubeflow Pipelines dengan TensorFlow Extended di Google Kubernetes Engine dengan menghemat kesulitan:

  • Membuat cluster GKE
  • Men-deploy Kubeflow Pipelines ke cluster GKE
  • Membuat bucket Cloud Storage yang akan digunakan untuk menyimpan artefak pipeline

Jika mau, Anda dapat menggunakan AI Platform Pipelines untuk men-deploy Kubeflow Pipelines di cluster yang ada yang belum menginstal Kubeflow Pipelines. Gunakan panduan ini untuk memastikan bahwa cluster Anda dikonfigurasi dengan benar untuk men-deploy dan menjalankan Kubeflow Pipelines.

Memastikan cluster GKE Anda memiliki resource yang cukup untuk AI Platform Pipelines

Untuk menggunakan Google Cloud Marketplace guna men-deploy Kubeflow Pipelines di cluster GKE, hal berikut harus benar:

  • Cluster Anda harus memiliki minimal 3 node. Setiap node harus memiliki minimal 2 CPU dan memori 4 GB yang tersedia.
  • Cakupan akses cluster harus memberikan akses penuh ke semua Cloud API, atau cluster Anda harus menggunakan akun layanan kustom.
  • Cluster tidak boleh sudah menginstal Kubeflow Pipelines.

Gunakan petunjuk berikut untuk memeriksa apakah cluster Anda memiliki resource yang memadai untuk menginstal AI Platform Pipelines.

  1. Buka AI Platform Pipelines di konsol Google Cloud.

    Buka AI Platform Pipelines

  2. Di toolbar AI Platform Pipelines, klik Instance baru. Kubeflow Pipelines akan terbuka di Google Cloud Marketplace.

  3. Klik Konfigurasikan. Formulir Deploy Kubeflow Pipelines akan terbuka.

  4. Klik Cluster untuk meluaskan daftar. Cluster GKE yang tidak memiliki resource atau izin yang memadai akan dicantumkan sebagai Cluster yang tidak memenuhi syarat. Setiap cluster yang tidak memenuhi syarat menyertakan deskripsi alasan Kubeflow Pipelines tidak dapat diinstal, seperti:

Mengalokasikan lebih banyak resource ke cluster GKE

Untuk menginstal Kubeflow Pipelines dari Google Cloud Marketplace ke cluster GKE yang ada, cluster Anda harus memiliki minimal 3 node dengan 2 CPU dan 4 GB yang tersedia.

Gunakan petunjuk berikut untuk mengganti node pool di cluster Anda dengan node pool yang memiliki resource CPU dan memori yang cukup untuk AI Platform Pipelines.

  1. Buka cluster Google Kubernetes Engine di Konsol Google Cloud.

    Buka cluster GKE

  2. Klik nama cluster Anda. Detail cluster akan muncul.

  3. Di toolbar GKE, klik Add node pool. Formulir Tambahkan node pool baru akan terbuka.

  4. Berikan informasi berikut ke formulir Tambahkan node pool baru.

    • Jumlah node: Tentukan jumlah node dalam node pool Anda. Cluster Anda harus memiliki 3 node atau lebih untuk menginstal Kubeflow Pipelines menggunakan Google Cloud Marketplace.
    • Jenis mesin: Tentukan jenis mesin Compute Engine yang akan digunakan untuk instance di node pool. Pilih jenis mesin dengan minimal 2 CPU dan memori 4 GB, seperti n1-standard-2.

    • Cakupan akses: Klik Izinkan akses penuh ke semua Cloud API di Cakupan akses.

    Jika tidak, konfigurasikan node pool Anda sesuai keinginan. Pelajari lebih lanjut cara menambahkan node pool ke cluster.

  5. Klik Create node pool. Pembuatan kumpulan node memerlukan waktu beberapa menit hingga selesai.

  6. Untuk setiap node pool di bagian Node pools, kecuali untuk node pool yang Anda buat di langkah sebelumnya, klik delete. Dialog Hapus kumpulan node akan muncul untuk mengonfirmasi bahwa Anda ingin menghapus kumpulan node ini.

  7. Klik Hapus. Penghapusan kumpulan node memerlukan waktu beberapa menit.

  8. Setelah menghapus kumpulan node lama, periksa apakah cluster Anda memiliki resource dan akses yang memadai untuk menginstal Kubeflow Pipelines dari Google Cloud Marketplace.

Memberikan akses ke resource dan API Google Cloud ke cluster GKE Anda

Ada tiga cara untuk memberikan akses ke resource dan API Google Cloud kepada pipeline ML Anda:

Saat men-deploy AI Platform Pipelines, Anda harus memberikan akses penuh ke resource dan API Google Cloud ke cluster GKE atau memberikan akses ke Google Cloud menggunakan akun layanan.

Mengonfigurasi cluster GKE dengan akses penuh ke Google Cloud API

Untuk memudahkan pipeline ML dan beban kerja cluster GKE lainnya mengakses resource Google Cloud project Anda, konfigurasikan cluster ke cakupan akses https://www.googleapis.com/auth/cloud-platform. Cakupan akses ini memberikan akses penuh ke resource dan API Google Cloud yang telah Anda aktifkan di project. Jika memberikan cakupan akses ini memberikan akses berlebihan ke Google Cloud, konfigurasi akses terperinci menggunakan akun layanan.

Gunakan petunjuk berikut untuk mengganti kumpulan node cluster dengan kumpulan node yang memungkinkan semua beban kerja di cluster ini mengakses semua Google Cloud API yang diaktifkan di project Anda. Sebelum mengubah cluster GKE, diskusikan perubahan ini dengan administrator GKE Anda.

  1. Buka cluster Google Kubernetes Engine di Konsol Google Cloud.

    Buka cluster GKE

  2. Klik nama cluster Anda. Detail cluster akan muncul.

  3. Di toolbar GKE, klik Add node pool. Formulir Tambahkan node pool baru akan terbuka.

  4. Berikan informasi berikut ke formulir Tambahkan node pool baru.

    • Jumlah node: Tentukan jumlah node dalam node pool Anda. Cluster Anda harus memiliki 3 node atau lebih untuk menginstal Kubeflow Pipelines menggunakan Google Cloud Marketplace.
    • Jenis mesin: Tentukan jenis mesin Compute Engine yang akan digunakan untuk instance di node pool. Pilih jenis mesin dengan minimal 2 CPU dan memori 4 GB, seperti n1-standard-2.

    • Cakupan akses: Klik Izinkan akses penuh ke semua Cloud API di Cakupan akses.

    Jika tidak, konfigurasikan node pool Anda sesuai keinginan. Pelajari lebih lanjut cara menambahkan node pool ke cluster.

  5. Klik Create node pool. Pembuatan kumpulan node memerlukan waktu beberapa menit hingga selesai.

  6. Untuk setiap node pool di bagian Node pools, kecuali untuk node pool yang Anda buat di langkah sebelumnya, klik delete. Dialog Hapus kumpulan node akan muncul untuk mengonfirmasi bahwa Anda ingin menghapus kumpulan node ini.

  7. Klik Hapus. Penghapusan kumpulan node memerlukan waktu beberapa menit.

  8. Setelah menghapus kumpulan node lama, periksa apakah cluster Anda memiliki resource dan akses yang memadai untuk menginstal Kubeflow Pipelines dari Google Cloud Marketplace.

Mengonfigurasi cluster GKE dengan akses terperinci ke Google Cloud API

Gunakan petunjuk berikut untuk mengonfigurasi akun layanan untuk cluster GKE dan mengganti node pool cluster dengan node pool yang menggunakan akun layanan Anda. Dengan membuat akun layanan, Anda dapat mengelola resource Google Cloud mana yang dapat diakses oleh workload di cluster secara terperinci. Sebelum mengubah cluster GKE, diskusikan perubahan ini dengan administrator GKE Anda.

  1. Buka sesi Cloud Shell.

    Buka Cloud Shell

    Cloud Shell akan terbuka dalam bingkai di bagian bawah konsol Google Cloud.

  2. Jalankan perintah berikut di Cloud Shell untuk membuat akun layanan dan memberikan akses yang memadai untuk menjalankan AI Platform Pipelines. Pelajari lebih lanjut peran yang diperlukan untuk menjalankan AI Platform Pipelines dengan akun layanan yang dikelola pengguna.

    export PROJECT=PROJECT_ID
    export SERVICE_ACCOUNT=SERVICE_ACCOUNT_NAME
    gcloud iam service-accounts create $SERVICE_ACCOUNT \
      --display-name=$SERVICE_ACCOUNT \
      --project=$PROJECT
    gcloud projects add-iam-policy-binding $PROJECT \
      --member="serviceAccount:$SERVICE_ACCOUNT@$PROJECT.iam.gserviceaccount.com" \
      --role=roles/logging.logWriter
    gcloud projects add-iam-policy-binding $PROJECT \
      --member="serviceAccount:$SERVICE_ACCOUNT@$PROJECT.iam.gserviceaccount.com" \
      --role=roles/monitoring.metricWriter
    gcloud projects add-iam-policy-binding $PROJECT \
      --member="serviceAccount:$SERVICE_ACCOUNT@$PROJECT.iam.gserviceaccount.com" \
      --role=roles/monitoring.viewer
    gcloud projects add-iam-policy-binding $PROJECT \
      --member="serviceAccount:$SERVICE_ACCOUNT@$PROJECT.iam.gserviceaccount.com" \
      --role=roles/storage.objectViewer

    Ganti kode berikut:

    • SERVICE_ACCOUNT_NAME: Nama akun layanan yang akan dibuat.
    • PROJECT_ID: Project Google Cloud tempat akun layanan dibuat.
  3. Beri akun layanan Anda akses ke resource atau API Google Cloud apa pun yang diperlukan pipeline ML Anda. Pelajari lebih lanjut peran Identity and Access Management dan cara mengelola akun layanan.

  4. Berikan peran Service Account User (iam.serviceAccountUser) kepada akun pengguna Anda di akun layanan.

    gcloud iam service-accounts add-iam-policy-binding \
      "SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" \
      --member=user:USERNAME \
      --role=roles/iam.serviceAccountUser
    

    Ganti kode berikut:

    • SERVICE_ACCOUNT_NAME: Nama akun layanan Anda.
    • PROJECT_ID: Project Google Cloud Anda.
    • USERNAME: Nama pengguna Anda di Google Cloud.
  5. Buka cluster Google Kubernetes Engine di Konsol Google Cloud.

    Buka cluster GKE

  6. Klik nama cluster Anda. Detail cluster akan muncul.

  7. Di toolbar GKE, klik Add node pool. Formulir Tambahkan node pool baru akan terbuka.

  8. Berikan informasi berikut ke formulir Tambahkan node pool baru.

    • Jumlah node: Tentukan jumlah node dalam node pool Anda. Cluster Anda harus memiliki 3 node atau lebih untuk menginstal Kubeflow Pipelines menggunakan Google Cloud Marketplace.
    • Jenis mesin: Tentukan jenis mesin Compute Engine yang akan digunakan untuk instance di node pool. Pilih jenis mesin dengan minimal 2 CPU dan memori 4 GB, seperti n1-standard-2.

    • Service account: Pilih akun layanan yang Anda buat di langkah sebelumnya.

    Jika tidak, konfigurasikan node pool Anda sesuai keinginan. Pelajari lebih lanjut cara menambahkan node pool ke cluster.

  9. Klik Create node pool. Pembuatan kumpulan node memerlukan waktu beberapa menit hingga selesai.

  10. Untuk setiap node pool di bagian Node pools, kecuali untuk node pool yang Anda buat di langkah sebelumnya, klik delete. Dialog Hapus kumpulan node akan muncul untuk mengonfirmasi bahwa Anda ingin menghapus kumpulan node ini.

  11. Klik Hapus. Penghapusan kumpulan node memerlukan waktu beberapa menit.

  12. Setelah menghapus kumpulan node lama, periksa apakah cluster Anda memiliki resource dan akses yang memadai untuk menginstal Kubeflow Pipelines dari Google Cloud Marketplace.

Menggunakan secret Kubernetes untuk memberikan akses cluster ke resource dan API Google Cloud

Pipeline yang dikembangkan menggunakan operator use_gcp_secret di Kubeflow Pipelines SDK mengautentikasi ke resource Google Cloud menggunakan secret Kubernetes.

Gunakan petunjuk ini untuk membuat akun layanan, memberikan akses akun ke resource yang digunakan oleh pipeline, lalu tambahkan akun layanan ke cluster sebagai secret Kubernetes.

  1. Buka cluster Google Kubernetes Engine di Konsol Google Cloud.

    Buka cluster GKE

  2. Di baris untuk cluster Anda, temukan nama dan zona cluster.

  3. Buka sesi Cloud Shell.

    Buka Cloud Shell

    Cloud Shell akan terbuka dalam bingkai di bagian bawah konsol Google Cloud. Gunakan Cloud Shell untuk menyelesaikan proses ini.

  4. Tetapkan variabel lingkungan berikut.

    export PROJECT_ID=PROJECT_ID
    export ZONE=ZONE
    export CLUSTER=CLUSTER_NAME
    export NAMESPACE=NAMESPACE
    export SA_NAME=SERVICE_ACCOUNT_NAME
    

    Ganti kode berikut:

    • PROJECT_ID: Project Google Cloud tempat cluster GKE Anda dibuat.
    • ZONE: Zona Google Cloud tempat cluster GKE Anda dibuat.
    • CLUSTER_NAME: Nama cluster GKE Anda.
    • NAMESPACE: Namespace di cluster GKE Anda tempat Kubeflow Pipelines diinstal.

      Namespace digunakan untuk mengelola resource dalam cluster Kubernetes yang besar. Jika cluster Anda tidak menggunakan namespace, masukkan default sebagai kubernetes-namespace.

    • SERVICE_ACCOUNT_NAME: Nama akun layanan yang akan dibuat untuk cluster Kubeflow Pipelines Anda guna mengakses resource dan API Google Cloud.

  5. Buat akun layanan untuk cluster Anda.

    gcloud iam service-accounts create $SA_NAME \
      --display-name $SA_NAME --project "$PROJECT_ID"
    
  6. Untuk memberikan akses ke resource Google Cloud ke akun layanan Anda, ikat peran Identity and Access Management ke akun layanan. Gunakan petunjuk berikut untuk memberikan peran IAM ke akun layanan Anda. Panggil perintah ini satu kali untuk setiap peran yang ingin Anda berikan ke akun layanan.

    gcloud projects add-iam-policy-binding $PROJECT_ID \
      --member=serviceAccount:$SA_NAME@$PROJECT_ID.iam.gserviceaccount.com \
      --role=iam-role
    
    • iam-role: Peran IAM yang akan diberikan ke akun layanan Anda. Misalnya, roles/storage.admin memberikan kontrol penuh atas bucket dan objek Cloud Storage dalam project Anda.

      Untuk mempelajari peran IAM lebih lanjut, baca panduan untuk memahami peran IAM.

  7. Buat kunci pribadi untuk akun layanan Anda di direktori saat ini.

    gcloud iam service-accounts keys create ./service-account-key.json \
    --iam-account $SA_NAME@$PROJECT_ID.iam.gserviceaccount.com
    
  8. Konfigurasi kubectl untuk terhubung ke cluster Anda, lalu buat secret Kubernetes user-gcp-sa.

    gcloud container clusters get-credentials "$CLUSTER" --zone "$ZONE" \
      --project "$PROJECT_ID"
    
    kubectl create secret generic user-gcp-sa \
      --from-file=user-gcp-sa.json=./service-account-key.json \
      -n $NAMESPACE --dry-run -o yaml  |  kubectl apply -f -
    
  9. Bersihkan kunci pribadi akun layanan.

    rm ./service-account-key.json