Menjalankan workload dalam mode Autopilot di cluster Standard

Administrator cluster dan operator aplikasi dapat memperoleh manfaat dari Google Kubernetes Engine (GKE) Autopilot, seperti harga dan setelan yang telah dikonfigurasi sebelumnya, di cluster mode Standard. Dokumen ini menunjukkan cara menggunakan ComputeClasses untuk men-deploy workload Autopilot di cluster Standard. Anda seharusnya sudah memahami konsep berikut:

Tentang ComputeClass Autopilot

GKE menyediakan resource kustom Kubernetes bernama ComputeClasses yang dapat di-deploy di cluster Anda seperti resource Kubernetes lainnya. ComputeClass menentukan daftar konfigurasi node, seperti jenis mesin atau Spot VM. Anda dapat memilih ComputeClass di workload, yang menunjukkan kepada GKE bahwa setiap node baru harus menggunakan salah satu konfigurasi dalam daftar tersebut.

Jika workload memilih ComputeClass yang mengaktifkan kolom autopilot, GKE akan menjalankan Pod dalam mode Autopilot. Node yang dibuat GKE dikelola oleh Google dan mencakup banyak setelan keamanan dan fitur Autopilot default. Untuk mengetahui informasi selengkapnya tentang implikasi menjalankan workload Autopilot di cluster Standard Anda, termasuk perbedaan yang mungkin Anda perhatikan saat men-deploy workload tersebut, lihat Tentang workload mode Autopilot di GKE Standard.

Jenis ComputeClass Autopilot

GKE menyediakan ComputeClass Autopilot bawaan yang dapat Anda gunakan untuk sebagian besar workload tujuan umum. Anda juga dapat mengonfigurasi ComputeClass kustom baru atau yang sudah ada untuk menggunakan mode Autopilot. Jenis ComputeClass Autopilot yang Anda gunakan bergantung pada apakah workload Anda memerlukan hardware tertentu, sebagai berikut:

  • Workload tujuan umum: gunakan salah satu ComputeClass Autopilot bawaan, yang menempatkan Pod di platform komputasi yang dioptimalkan untuk container.
  • Workload yang memerlukan hardware tertentu: aktifkan mode Autopilot untuk ComputeClass kustom, deploy ComputeClass tersebut ke cluster, dan pilih ComputeClass tersebut di workload Anda.

Untuk mengetahui informasi selengkapnya tentang opsi ini, waktu penggunaannya, dan harga untuk setiap opsi, lihat Pemilihan hardware di ComputeClass Autopilot.

Harga

Harga GKE Autopilot berlaku untuk workload dan node yang menggunakan ComputeClass Autopilot. Model harga yang berlaku bergantung pada apakah Anda menggunakan ComputeClass Autopilot bawaan atau ComputeClass Autopilot kustom. Untuk mengetahui informasi selengkapnya, lihat Harga di "Tentang workload mode Autopilot di GKE Standard".

Sebelum memulai

Sebelum memulai, pastikan Anda telah melakukan tugas berikut:

  • Aktifkan Google Kubernetes Engine API.
  • Aktifkan Google Kubernetes Engine API
  • Jika ingin menggunakan Google Cloud CLI untuk tugas ini, instal lalu lakukan inisialisasi gcloud CLI. Jika sebelumnya Anda telah menginstal gcloud CLI, dapatkan versi terbaru dengan menjalankan perintah gcloud components update. gcloud CLI versi sebelumnya mungkin tidak mendukung menjalankan perintah dalam dokumen ini.
  • Gunakan cluster GKE Standard yang menjalankan versi 1.34.1-gke.1829001 atau yang lebih baru. Untuk membuat cluster baru, lihat Membuat cluster regional.
  • Untuk menghindari penolakan workload, pelajari persyaratan dan batasan keamanan Autopilot. Untuk mengetahui informasi selengkapnya, lihat setelan standar untuk node Autopilot.

Persyaratan

  • Setidaknya satu node pool dalam cluster tidak boleh memiliki taint node.

    Node pool ini diperlukan untuk menjalankan Pod sistem GKE Standard yang tidak dapat berjalan di node Autopilot dalam cluster Standard karena taint yang ditambahkan GKE ke node tersebut.

  • Node GKE yang Terlindungi diperlukan dan diaktifkan secara default.

  • Anda harus menggunakan cluster VPC native.

  • Jika Anda menggunakan Kubernetes NetworkPolicy, cluster Anda harus menggunakan GKE Dataplane V2. Secara default, semua cluster baru menggunakan GKE Dataplane V2.

    Jika cluster Anda tidak menggunakan GKE Dataplane V2, Anda harus menonaktifkan penerapan kebijakan jaringan.

Batasan

  • Untuk memperbarui ComputeClass yang ada di cluster agar menggunakan mode Autopilot, Anda harus membuat ulang ComputeClass tersebut dengan spesifikasi yang diperbarui. Untuk mengetahui informasi selengkapnya, lihat Mengaktifkan Autopilot untuk ComputeClass kustom yang ada.
  • Anda tidak dapat menggunakan aturan prioritas podFamily di ComputeClass Anda sendiri. Aturan ini hanya tersedia di ComputeClass Autopilot bawaan.
  • ComputeClass Autopilot bawaan tidak mendukung pengaktifan Node GKE Rahasia untuk seluruh cluster Anda. Jika Anda mengaktifkan Confidential GKE Node untuk cluster, Pod baru yang memilih ComputeClass Autopilot bawaan akan tetap dalam status Pending tanpa batas waktu.
  • Penerapan kebijakan jaringan Calico tidak didukung. Anda harus menggunakan GKE Dataplane V2 atau menonaktifkan penerapan kebijakan jaringan.
  • Nama ComputeClass Anda tidak boleh diawali dengan gke atau autopilot, yang merupakan prefiks yang dicadangkan.

Peran dan izin yang diperlukan

Untuk mendapatkan izin yang diperlukan untuk men-deploy ComputeClass, minta administrator Anda untuk memberi Anda peran IAM Kubernetes Engine Developer (roles/container.developer) di cluster atau project Anda . Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.

Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Memodifikasi cluster agar memenuhi persyaratan Autopilot

Anda dapat menggunakan konsol Google Cloud untuk memeriksa apakah cluster Standard Anda memenuhi semua persyaratan untuk menjalankan workload dalam mode Autopilot. Anda juga dapat menggunakan konsol Google Cloud untuk mengubah cluster agar memenuhi persyaratan ini.

Mengubah cluster yang ada

  1. Di konsol Google Cloud , buka halaman Kubernetes clusters.

    Buka cluster Kubernetes

  2. Di baris untuk cluster yang ingin Anda ubah, klik Tindakan lainnya > Edit. Halaman Cluster details akan terbuka.

  3. Di bagian Dasar-dasar cluster, temukan bagian Kompatibilitas class komputasi Autopilot.

    Jika bagian ini menampilkan Diaktifkan, cluster sudah kompatibel dengan Autopilot. Lanjutkan ke bagian Memilih ComputeClass Autopilot dalam workload.

  4. Jika bagian Kompatibilitas class komputasi Autopilot menampilkan Dinonaktifkan, klik Edit kompatibilitas class komputasi Autopilot.

    Jika bagian ini tidak dapat diedit, cluster Anda menggunakan setelan permanen yang tidak kompatibel dengan mode Autopilot. Misalnya, Anda tidak dapat memodifikasi cluster agar menjadi VPC native setelah pembuatan cluster. Jika Anda tidak dapat berinteraksi dengan bagian Kompatibilitas class komputasi Autopilot, Anda harus membuat cluster baru.

  5. Di panel Kompatibilitas class komputasi Autopilot yang terbuka, tinjau setelan cluster yang perlu diubah untuk memenuhi persyaratan mode Autopilot.

  6. Klik Aktifkan class komputasi Autopilot. GKE memodifikasi cluster sesuai kebutuhan.

Ubah cluster baru

  1. Di konsol Google Cloud , buka halaman Create a Kubernetes cluster.

    Buka Membuat cluster Kubernetes

  2. Di halaman Cluster basics, temukan bagian Maximize deployment options with Autopilot compute class. Bagian ini menunjukkan setelan cluster yang perlu diubah untuk memenuhi persyaratan mode Autopilot.

  3. Klik Aktifkan class komputasi Autopilot. GKE memodifikasi cluster sesuai kebutuhan.

  4. Konfigurasi setelan cluster lainnya berdasarkan persyaratan Anda. Jika Anda mengubah setelan yang membuat cluster tidak kompatibel dengan Autopilot, pesan peringatan akan muncul.

Memilih ComputeClass Autopilot dalam workload

Anda dapat menjalankan workload dalam mode Autopilot di cluster Standar dengan memilih ComputeClass yang menggunakan mode Autopilot. Untuk menjalankan workload dalam mode Autopilot, pilih salah satu opsi berikut:

Konsol

  1. Di konsol Google Cloud , buka halaman Workloads GKE.

    Buka Workloads

  2. Klik Deploy atau Create Job. Halaman pembuatan beban kerja untuk Deployment atau Job akan muncul.

  3. Di bagian Nodes, pilih Autopilot compute class.

  4. Di bagian Select compute class, pada menu drop-down Compute class, pilih ComputeClass yang menggunakan mode Autopilot. ComputeClass ini dapat berupa salah satu dari berikut ini:

  5. Konfigurasi dan buat workload.

kubectl CLI

Untuk memilih ComputeClass Autopilot dalam workload, gunakan node selector untuk label cloud.google.com/compute-class. Ini adalah label yang sama dengan yang Anda gunakan untuk memilih ComputeClass lain di GKE. Langkah-langkah berikut menunjukkan cara membuat contoh Deployment yang memilih ComputeClass dan memverifikasi bahwa Pod berjalan dalam mode Autopilot:

  1. Simpan contoh Deployment berikut sebagai autopilot-cc-deployment.yaml:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: helloweb
      labels:
        app: hello
    spec:
      selector:
        matchLabels:
          app: hello
      template:
        metadata:
          labels:
            app: hello
        spec:
          nodeSelector:
            # Replace with the name of a compute class
            cloud.google.com/compute-class: COMPUTE_CLASS 
          containers:
          - name: hello-app
            image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
            ports:
            - containerPort: 8080
            resources:
              requests:
                cpu: "250m"
                memory: "1Gi"

    Ganti COMPUTE_CLASS dengan nama class komputasi yang akan digunakan. Nilai ini dapat berupa salah satu dari berikut:

  2. Men-deploy workload:

    kubectl apply -f autopilot-cc-deployment.yaml
    

Mengonfigurasi ComputeClass Autopilot kustom

Anda dapat mengonfigurasi ComputeClass kustom untuk menggunakan Autopilot. Gunakan ComputeClass Autopilot kustom jika workload Anda memerlukan hardware tertentu agar dapat berjalan secara optimal, seperti GPU atau seri mesin Compute Engine tertentu.

Jika workload Anda tidak memerlukan hardware tertentu, sebaiknya gunakan salah satu ComputeClass Autopilot bawaan. Untuk memilih ComputeClass Autopilot bawaan, lihat bagian Memilih ComputeClass Autopilot dalam workload sebelumnya.

Membuat ComputeClass Autopilot kustom baru

  1. Simpan contoh manifes ComputeClass berikut sebagai n4-class.yaml:

    apiVersion: cloud.google.com/v1
    kind: ComputeClass
    metadata:
      name: n4-class
    spec:
      autopilot:
        enabled: true
      priorities:
      - machineFamily: n4
        spot: true
        minCores: 16
      - machineFamily: n4
        spot: true
      - machineFamily: n4
        spot: false
      activeMigration:
        optimizeRulePriority: true
    

    Manifes ini mencakup kolom berikut:

    • autopilot: mengaktifkan mode Autopilot untuk ComputeClass. Jika Anda menentukan kolom ini di ComputeClass yang Anda deploy ke cluster Autopilot, GKE akan mengabaikan kolom tersebut.
    • priorities: menentukan array tiga konfigurasi kelompok mesin N4 yang berbeda.
    • activeMigration: memungkinkan GKE memigrasikan Pod ke konfigurasi yang lebih tinggi dalam daftar prioritas saat resource tersedia.
  2. Deploy ComputeClass:

    kubectl apply -f n4-class.yaml
    
  3. Pastikan ComputeClass ada:

    kubectl get computeclasses
    

    Outputnya mirip dengan hal berikut ini:

    NAME                  AGE
    n4-class              3s
    

Mengaktifkan Autopilot untuk ComputeClass kustom yang sudah ada

Anda dapat mengaktifkan Autopilot di ComputeClass kustom yang ada di cluster Standard. Mengaktifkan Autopilot di ComputeClass yang ada di cluster Autopilot tidak akan berpengaruh, karena seluruh cluster menggunakan mode Autopilot.

Setelah Anda mengaktifkan Autopilot untuk ComputeClass yang ada, GKE akan menggunakan Autopilot untuk menjalankan Pod baru yang memilih ComputeClass. Jika Anda memiliki Pod yang ada di node Standard yang memilih ComputeClass Autopilot, Pod tersebut hanya menggunakan Autopilot saat dibuat ulang.

Untuk mengupdate ComputeClass kustom yang ada agar menggunakan mode Autopilot, ikuti langkah-langkah berikut:

  1. Di editor teks, perbarui file manifes untuk ComputeClass yang ada guna menambahkan kolom spec.autopilot:

    spec:
      autopilot:
        enabled: true
    
  2. Ganti resource ComputeClass yang ada di Kubernetes API dengan spesifikasi yang diupdate:

    kubectl replace --force -f PATH_TO_UPDATED_MANIFEST
    

    Ganti PATH_TO_UPDATED_MANIFEST dengan jalur ke file manifes yang telah diperbarui.

  3. Untuk memicu pembuatan node baru, buat ulang workload apa pun yang menggunakan class komputasi.

Setelah Anda menerapkan manifes yang diperbarui, semua node baru yang dibuat GKE untuk ComputeClass ini akan menggunakan Autopilot. GKE tidak mengubah node yang ada yang dibuat sebelum update.

Memastikan bahwa workload Anda menggunakan Autopilot

Pilih salah satu opsi berikut:

Konsol

  1. Di konsol Google Cloud , buka halaman Workloads GKE.

    Buka Workloads

  2. Untuk beban kerja Anda, periksa nilai di kolom Jenis node. Jika workload menggunakan mode Autopilot, nilai ini adalah Autopilot-managed.

kubectl CLI

Periksa nama node yang menjalankan Pod Anda:

kubectl get pods -l=app=hello -o wide

Outputnya mirip dengan hal berikut ini:

NAME                       READY   STATUS    RESTARTS   AGE     IP             NODE                                         NOMINATED NODE   READINESS GATES
helloweb-79b9f6f75-5wwc9   1/1     Running   0          152m    10.102.1.135   gk3-cluster-1-nap-10abc8ya1-f66c6cef-wg5g   <none>           <none>
helloweb-79b9f6f75-9skb9   1/1     Running   0          4d3h    10.102.0.140   gk3-cluster-1-nap-10abc8ya1-632bac02-hjl6   <none>           <none>
helloweb-79b9f6f75-h7bdv   1/1     Running   0          152m    10.102.1.137   gk3-cluster-1-nap-10abc8ya1-f66c6cef-wg5g   <none>           <none>

Dalam output ini, awalan gk3- di kolom Node menunjukkan bahwa node dikelola oleh Autopilot.

Menerapkan ComputeClass Autopilot secara default

GKE memungkinkan Anda menetapkan ComputeClass sebagai default untuk namespace. Class default namespace berlaku untuk semua Pod di namespace tersebut yang tidak secara eksplisit memilih ComputeClass yang berbeda. Menetapkan ComputeClass Autopilot sebagai default berarti Anda dapat menjalankan semua Pod dalam namespace dalam mode Autopilot secara default, kecuali jika workload memilih opsi yang berbeda.

Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi ComputeClass default untuk namespace.

Langkah berikutnya