Dokumen ini menjelaskan cara meningkatkan performa workload Redis Anda di Google Kubernetes Engine (GKE) dengan membuat konfigurasi tingkat aplikasi dan tingkat node yang dioptimalkan. Untuk mengetahui detail selengkapnya, lihat Mengoptimalkan workload di GKE.
Pengoptimalan untuk Redis ditentukan untuk instance Redis 7 yang digunakan sebagai cache look-aside node tunggal dengan rasio baca-tulis 4:1 (4 bacaan untuk 1 tulisan), dengan performa yang diukur menggunakan Memtier 2.2.1. Pertimbangkan cara workload Redis digunakan di cluster Anda dibandingkan dengan kasus penggunaan ini. Jika kasus penggunaan Anda berbeda, pengoptimalan yang direkomendasikan mungkin perlu disesuaikan dengan konteks Anda.
Sebelum memulai
Sebelum memulai, pastikan Anda telah melakukan tugas berikut:
- Mengaktifkan GKE Recommender API dan Google Kubernetes Engine API. Mengaktifkan API
- Untuk 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. Versi gcloud CLI yang lebih lama mungkin tidak mendukung menjalankan perintah dalam dokumen ini.
Persyaratan
Gunakan GKE versi 1.31.1-gke.12000 atau yang lebih baru.
Mengoptimalkan workload Redis
Sebaiknya gunakan node pool khusus untuk workload Redis Anda. Secara default, node pool baru akan dibuat saat Anda menyelesaikan langkah-langkah berikut.
Untuk mengoptimalkan performa workload Redis, lakukan hal berikut:
Buat manifes dengan pengoptimalan untuk workload Redis dengan melakukan hal berikut:
Buat manifes dengan pengoptimalan yang direkomendasikan dengan menjalankan perintah berikut:
gcloud container workload profiles manifests create \ --workload=redis-7-caching \ --cluster-version=CLUSTER_VERSION \ --options=machineType=MACHINE_TYPE \ --output-path=/tmp/manifests.yamlGanti kode berikut:
CLUSTER_VERSION: versi GKE. Rekomendasinya adalah GKE versi 1.31.1-gke.12000 atau yang lebih baru.MACHINE_TYPE: jenis mesin yang diinginkan.
Flag
--output-path=/tmp/manifests.yamlbersifat opsional. Jika tidak ditentukan, manifes akan dicetak ke terminal, tetapi tidak disimpan ke file.Perintah ini membuat satu file YAML yang berisi dua resource Kubernetes:
- ConfigMap yang menentukan konfigurasi Redis bernama
redis.conf. - Objek ComputeClass. Objek ini menentukan mesin untuk menjalankan Redis, yang bersifat opsional. Untuk mengetahui detail tentang cara menentukan jenis mesin, lihat Tentang ComputeClass kustom
Berikut adalah contoh manifes yang dibuat:
apiVersion: v1 kind: ConfigMap metadata: name: redis.conf data: redis.conf: | io-threads 2 io-threads-do-reads yes save "" --- apiVersion: cloud.google.com/v1 kind: ComputeClass metadata: generateName: optimized-gke-redis-7-caching- spec: nodePoolAutoCreation: enabled: true priorities: - machineType: c4-standard-4 whenUnsatisfiable: DoNotScaleUpTinjau rekomendasi dan ubah manifes sehingga menyertakan pengoptimalan pilihan Anda. Untuk menilai rekomendasi, Anda dapat melakukan hal berikut:
- Tinjau dokumentasi Redis untuk menilai konfigurasi yang direkomendasikan untuk konteks Anda.
- Pertimbangkan cara workload Redis digunakan di cluster Anda dibandingkan dengan kasus penggunaan berikut. Jika kasus penggunaan Anda berbeda, pengoptimalan yang direkomendasikan mungkin perlu disesuaikan dengan konteks Anda.
Pengoptimalan untuk Redis ditentukan untuk instance Redis 7 yang digunakan sebagai cache look-aside node tunggal dengan rasio baca-tulis 4:1 (4 bacaan untuk 1 tulisan), dengan performa yang diukur menggunakan Memtier 2.2.1.
Edit file manifes jika Anda ingin mengubah konfigurasi atau menambahkan konfigurasi.
Terapkan manifes ke cluster menggunakan perintah berikut:
kubectl create -f /tmp/manifests.yaml
Deploy Pod yang mereferensikan pengoptimalan. Contoh:
apiVersion: v1 kind: Pod metadata: name: redis spec: containers: - name: redis image: redis:7 args: - /etc/gke/optimization/redis.conf volumeMounts: - name: gke-optimized-workload-config subPath: redis.conf mountPath: /etc/gke/optimization/redis.conf readOnly: true volumes: - name: gke-optimized-workload-config configMap: name: redis.conf nodeSelector: cloud.google.com/compute-class: optimized-gke-redis-7-caching-abc123Kemudian, terapkan manifes Pod ke cluster:
kubectl apply -f pod.yamlKonfirmasi bahwa Redis menggunakan konfigurasi yang dioptimalkan. Untuk melakukannya, Anda dapat menjalankan perintah berikut untuk memastikan Redis menggunakan konfigurasi yang dioptimalkan:
kubectl exec redis -- redis-cli INFO server | grep config_fileAnda akan melihat output yang mirip dengan berikut ini:
config_file:/etc/gke/optimization/redis.confAnda juga dapat menggunakan perintah
redis-cliuntuk membuat kueri direktif individual yang ditetapkan dalam konfigurasi yang dioptimalkan, sepertiio-threads.
Saat Anda men-deploy workload, cluster akan membuat node pool baru yang mematuhi konfigurasi yang dioptimalkan, dan menetapkan Pod Anda ke node pool tersebut.
Pod yang sudah ada tidak akan diubah. Hanya Pod yang mereferensikan konfigurasi yang dioptimalkan yang akan dioptimalkan. Jika sebelumnya Anda telah men-deploy workload Redis di cluster, Anda harus men-deploy ulang workload ini untuk menjalankannya dengan konfigurasi yang dioptimalkan.
Langkah berikutnya
- Pelajari lebih lanjut pengoptimalan workload di GKE.
- Pelajari lebih lanjut cara Men-deploy cluster Redis di GKE
- Pelajari lebih lanjut ComputeClass GKE.
- Untuk mengoptimalkan workload MySQL, lihat Mengoptimalkan performa workload MySQL di GKE.