Menskalakan workload stateless

Dokumen ini menjelaskan cara menskalakan workload stateless yang ada yang berjalan di cluster Kubernetes Google Distributed Cloud (GDC) dengan air gap. Anda harus menskalakan pod yang berjalan di workload stateless seiring berkembangnya persyaratan workload container.

Dokumen ini ditujukan bagi developer dalam grup operator aplikasi yang bertanggung jawab mengelola workload aplikasi untuk organisasi mereka. Untuk mengetahui informasi selengkapnya, lihat Audiens untuk dokumentasi GDC dengan air gap.

Sebelum memulai

Untuk menyelesaikan tugas dalam dokumen ini, Anda harus meminta izin yang diperlukan dan menyiapkan lingkungan Anda.

Meminta peran IAM

Anda harus memiliki peran tertentu untuk mendapatkan izin yang diperlukan guna menskalakan workload stateless. Peran yang Anda perlukan bergantung pada apakah Anda bekerja dalam cluster bersama yang tercakup dalam organisasi atau cluster standar yang tercakup dalam project. Untuk mengetahui informasi selengkapnya, lihat Konfigurasi cluster Kubernetes.

Peran cluster bersama

Untuk membuat, menghapus, mengedit, atau melihat workload di cluster bersama, minta Admin Project IAM Anda untuk memberi Anda peran Namespace Admin (namespace-admin). Peran ini terikat ke namespace project Anda.

Peran cluster standar

Untuk membuat, menghapus, mengedit, atau melihat workload di cluster standar, minta IAM Project Admin untuk memberi Anda peran Cluster Developer (cluster-developer). Peran ini terikat ke namespace project Anda.

Menyiapkan lingkungan Anda

Untuk menjalankan perintah terhadap cluster Kubernetes menggunakan API, pastikan Anda memiliki resource berikut:

  • Temukan nama cluster Kubernetes, atau tanyakan kepada anggota grup administrator platform apa nama clusternya.

  • Login dan buat file kubeconfig untuk cluster Kubernetes.

  • Gunakan jalur kubeconfig cluster Kubernetes untuk mengganti KUBERNETES_CLUSTER_KUBECONFIG dalam petunjuk ini.

Menskalakan deployment

Gunakan fungsi penskalaan Kubernetes untuk menskalakan jumlah pod yang berjalan di deployment Anda dengan tepat.

Menskalakan pod deployment secara otomatis

Kubernetes menawarkan penskalaan otomatis untuk menghilangkan kebutuhan memperbarui deployment secara manual saat permintaan berkembang. Selesaikan langkah-langkah berikut untuk menskalakan pod deployment Anda secara otomatis:

  1. Untuk memastikan horizontal pod autoscaler dapat mengukur persentase CPU dengan tepat, tetapkan permintaan resource CPU pada deployment Anda.

  2. Tetapkan horizontal pod autoscaler di deployment Anda:

    kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG \
        -n NAMESPACE \
        autoscale deployment DEPLOYMENT_NAME \
        --cpu-percent=CPU_PERCENT \
        --min=MIN_NUMBER_REPLICAS \
        --max=MAX_NUMBER_REPLICAS
    

    Ganti kode berikut:

    • KUBERNETES_CLUSTER_KUBECONFIG: file kubeconfig untuk cluster.

    • NAMESPACE: namespace. Untuk cluster bersama, ini harus berupa namespace project. Untuk cluster standar, namespace-nya dapat berupa namespace apa pun.

    • DEPLOYMENT_NAME: nama deployment yang akan diskalakan otomatis.

    • CPU_PERCENT: target pemakaian CPU rata-rata yang akan diminta, yang direpresentasikan sebagai persentase, di semua pod.

    • MIN_NUMBER_REPLICAS: batas bawah untuk jumlah pod yang dapat disediakan oleh autoscaler.

    • MAX_NUMBER_REPLICAS: batas atas untuk jumlah pod yang dapat disediakan oleh autoscaler.

  3. Periksa status terkini horizontal pod autoscaler:

    kubectl get hpa
    

    Outputnya mirip dengan hal berikut ini:

    NAME              REFERENCE                          TARGET    MINPODS   MAXPODS   REPLICAS   AGE
    DEPLOYMENT_NAME   Deployment/DEPLOYMENT_NAME/scale   0% / 50%  1         10        1          18s
    

Menskalakan pod deployment secara manual

Jika Anda lebih suka menskalakan deployment secara manual, jalankan:

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG \
    -n NAMESPACE \
    scale deployment DEPLOYMENT_NAME \
    --replicas NUMBER_OF_REPLICAS

Ganti kode berikut:

  • KUBERNETES_CLUSTER_KUBECONFIG: file kubeconfig untuk cluster.

  • NAMESPACE: namespace. Untuk cluster bersama, ini harus berupa namespace project. Untuk cluster standar, namespace-nya dapat berupa namespace apa pun.

  • DEPLOYMENT_NAME: nama deployment yang akan diskalakan otomatis.

  • DEPLOYMENT_NAME: jumlah objek Pod yang direplikasi dalam deployment.

Langkah berikutnya