Mengonfigurasi cluster Google Kubernetes Engine untuk Pipeline AI Platform

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

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

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

Pastikan 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 sesuai:

  • Cluster Anda harus memiliki minimal 3 node. Setiap node harus memiliki minimal 2 CPU dan memori sebesar 4 GB.
  • Cakupan akses cluster harus memberikan akses penuh ke semua Cloud API, atau cluster Anda harus menggunakan akun layanan kustom.
  • Kubeflow Pipelines belum diinstal di cluster.

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 New instance. 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 tercantum sebagai Cluster yang tidak memenuhi syarat. Setiap cluster yang tidak memenuhi syarat menyertakan deskripsi mengapa Kubeflow Pipelines tidak dapat diinstal, seperti:

Alokasikan lebih banyak resource untuk cluster GKE Anda

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

Gunakan petunjuk berikut untuk mengganti kumpulan node di cluster Anda dengan 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 kumpulan node baru akan terbuka.

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

    • Jumlah node: Tentukan jumlah node dalam kumpulan node 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 kumpulan node. 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 bagian Cakupan akses.

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

  5. Klik Create node pool. Pembuatan kumpulan node memerlukan waktu beberapa menit untuk diselesaikan.

  6. Untuk setiap kumpulan node di bagian Kumpulan node, kecuali untuk kumpulan node yang Anda buat di langkah sebelumnya, klik hapus. Dialog Delete a node pool akan muncul untuk mengonfirmasi bahwa Anda ingin menghapus kumpulan node ini.

  7. Klik Delete. Menghapus kumpulan node memerlukan waktu beberapa menit.

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

Memberikan akses cluster GKE ke resource dan API Google Cloud

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

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

Mengonfigurasi cluster GKE Anda dengan akses penuh ke Google Cloud API

Untuk memudahkan pipeline ML Anda dan beban kerja cluster GKE lainnya dalam mengakses resource Google Cloud project Anda, konfigurasikan cluster Anda 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 Anda. Jika pemberian cakupan akses ini memberikan akses berlebihan ke Google Cloud, konfigurasikan akses terperinci menggunakan akun layanan.

Gunakan petunjuk berikut untuk mengganti node pool cluster Anda dengan node yang memungkinkan semua workload 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 kumpulan node baru akan terbuka.

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

    • Jumlah node: Tentukan jumlah node dalam kumpulan node 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 kumpulan node. 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 bagian Cakupan akses.

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

  5. Klik Create node pool. Pembuatan kumpulan node memerlukan waktu beberapa menit untuk diselesaikan.

  6. Untuk setiap kumpulan node di bagian Kumpulan node, kecuali untuk kumpulan node yang Anda buat di langkah sebelumnya, klik hapus. Dialog Delete a node pool akan muncul untuk mengonfirmasi bahwa Anda ingin menghapus kumpulan node ini.

  7. Klik Delete. Menghapus kumpulan node memerlukan waktu beberapa menit.

  8. Setelah Anda 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 Anda dengan akses terperinci ke Google Cloud API

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

  1. Buka sesi Cloud Shell.

    Buka Cloud Shell

    Cloud Shell akan terbuka dalam frame di bagian bawah Konsol Google Cloud.

  2. Jalankan perintah berikut di Cloud Shell untuk membuat akun layanan Anda dan memberinya 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 semua resource atau API Google Cloud yang diperlukan pipeline ML Anda. Pelajari peran Pengelolaan Akses dan Identitas serta cara mengelola akun layanan lebih lanjut.

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

    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 kumpulan node baru akan terbuka.

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

    • Jumlah node: Tentukan jumlah node dalam kumpulan node 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 kumpulan node. Pilih jenis mesin dengan minimal 2 CPU dan memori 4 GB, seperti n1-standard-2.

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

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

  9. Klik Create node pool. Pembuatan kumpulan node memerlukan waktu beberapa menit untuk diselesaikan.

  10. Untuk setiap kumpulan node di bagian Kumpulan node, kecuali untuk kumpulan node yang Anda buat di langkah sebelumnya, klik hapus. Dialog Delete a node pool akan muncul untuk mengonfirmasi bahwa Anda ingin menghapus kumpulan node ini.

  11. Klik Delete. Menghapus kumpulan node memerlukan waktu beberapa menit.

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

Gunakan rahasia Kubernetes untuk memberi cluster Anda akses ke resource dan API Google Cloud

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

Gunakan petunjuk ini untuk membuat akun layanan, memberi akun tersebut akses ke resource yang digunakan oleh pipeline Anda, lalu tambahkan akun layanan tersebut ke cluster Anda sebagai rahasia 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 frame di bagian bawah Konsol Google Cloud. Gunakan Cloud Shell untuk menyelesaikan proses ini.

  4. Setel 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 tempat Kubeflow Pipelines diinstal.

      Namespace digunakan untuk mengelola resource di 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 untuk 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 memberi akun layanan Anda akses ke resource Google Cloud, ikat peran Identity and Access Management ke akun layanan. Gunakan petunjuk berikut untuk memberikan peran IAM ke akun layanan Anda. Panggil perintah ini sekali untuk setiap peran yang ingin diberikan ke akun layanan Anda.

    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 di 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 agar 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