Men-deploy alat Autoscaler ke GKE

Model deployment Google Kubernetes Engine (GKE) adalah pilihan yang tepat untuk tim independen yang ingin mengelola sendiri infrastruktur dan konfigurasi Autoscaler mereka sendiri di Kubernetes.

Dokumen ini adalah bagian dari rangkaian yang juga mencakup:

Seri ini ditujukan untuk tim IT, Operasi, dan Site Reliability Engineering (SRE) yang ingin mengurangi overhead operasional dan mengoptimalkan biaya penempatan Spanner.

Deployment GKE memiliki kelebihan dan kekurangan berikut:

Kelebihan:

  • Berbasis Kubernetes: Untuk tim yang mungkin tidak dapat menggunakan layanan seperti fungsi Cloud Run, deployment ke Kubernetes memungkinkan penggunaan Autoscaler.
  • Konfigurasi: Kontrol atas parameter penjadwal adalah milik tim yang memiliki instance Spanner, yang memberi mereka hak istimewa tertinggi untuk menyesuaikan Autoscaler dengan kebutuhan mereka.

Kekurangan:

  • Infrastruktur: Dibandingkan dengan desain fungsi Cloud Run, beberapa infrastruktur dan layanan dengan masa aktif lama diperlukan.
  • Pemeliharaan: Dengan setiap tim yang bertanggung jawab atas konfigurasi dan infrastruktur Autoscaler, mungkin akan sulit untuk memastikan bahwa semua Autoscaler di seluruh perusahaan mengikuti panduan update yang sama.
  • Audit: Karena tingkat kontrol yang tinggi oleh setiap tim, audit terpusat mungkin menjadi lebih kompleks.

Halaman ini memperkenalkan dua cara untuk men-deploy Autoscaler ke GKE berdasarkan persyaratan Anda:

  • Topologi deployment yang terpisah. Model deployment yang terpisah memiliki keunggulan bahwa Anda dapat menetapkan izin individual untuk komponen Poller dan Scaler sehingga keduanya berjalan sebagai akun layanan terpisah. Artinya, Anda memiliki fleksibilitas untuk mengelola dan menskalakan kedua komponen tersebut sesuai kebutuhan. Namun, model deployment ini mengharuskan komponen Scaler di-deploy sebagai layanan yang berjalan lama, yang menggunakan resource.
  • Topologi deployment terpadu. Model deployment terpadu memiliki keunggulan bahwa komponen Poller dan Scaler dapat di-deploy sebagai satu pod, yang berjalan sebagai tugas cron Kubernetes. Saat kedua komponen di-deploy sebagai satu pod, tidak ada komponen yang berjalan lama dan hanya diperlukan satu akun layanan.

Untuk sebagian besar kasus penggunaan, sebaiknya gunakan model deployment terpadu.

Konfigurasi

Alat Autoscaler mengelola instance Spanner melalui konfigurasi yang ditentukan dalam ConfigMap Kubernetes. Jika beberapa instance Spanner perlu di-polling dengan interval yang sama, sebaiknya konfigurasikan instance tersebut di ConfigMap yang sama. Berikut adalah contoh konfigurasi dengan dua instance Spanner yang dikelola dengan satu konfigurasi:

apiVersion: v1
kind: ConfigMap
metadata:
  name: autoscaler-config
  namespace: spanner-autoscaler
data:
  autoscaler-config.yaml: |
    ---
    - projectId: spanner-autoscaler-test
      instanceId: spanner-scaling-linear
      units: NODES
      minSize: 5
      maxSize: 30
      scalingMethod: LINEAR
    - projectId: spanner-autoscaler-test
      instanceId: spanner-scaling-threshold
      units: PROCESSING_UNITS
      minSize: 100
      maxSize: 3000
      metrics:
      - name: high_priority_cpu
        regional_threshold: 40
        regional_margin: 3

Instance dapat memiliki satu konfigurasi Autoscaler dengan metode linear untuk operasi normal, dan juga memiliki konfigurasi Autoscaler lain dengan metode langsung untuk workload batch terencana. Lihat daftar lengkap opsi konfigurasi di file README Poller.

Melakukan deployment ke GKE

Untuk mempelajari cara men-deploy Autoscaler ke GKE dalam model deployment terdekode atau terpadu, lihat panduan langkah demi langkah untuk deployment GKE.

Langkah berikutnya