Anda hanya dapat menggunakan Data Cache dengan cluster GKE Standard. Panduan ini akan memandu Anda mengaktifkan GKE Data Cache saat membuat cluster GKE Standard atau node pool baru, dan menyediakan disk terpasang GKE dengan akselerasi Data Cache.
Tentang GKE Data Cache
Dengan GKE Data Cache, Anda dapat menggunakan SSD Lokal di node GKE sebagai lapisan cache untuk penyimpanan persisten, seperti Persistent Disk atau Hyperdisk. Penggunaan SSD Lokal mengurangi latensi baca disk dan meningkatkan kueri per detik (QPS) untuk workload stateful Anda sekaligus meminimalkan persyaratan memori. GKE Data Cache mendukung semua jenis Persistent Disk atau Hyperdisk sebagai disk pendukung.
Untuk menggunakan GKE Data Cache bagi aplikasi Anda, konfigurasikan node pool GKE dengan SSD Lokal terpasang. Anda dapat mengonfigurasi GKE Data Cache untuk menggunakan semua atau sebagian SSD Lokal terpasang. SSD Lokal yang digunakan oleh solusi GKE Data Cache dienkripsi saat tidak aktif menggunakan enkripsi standar. Google Cloud
Manfaat
GKE Data Cache menawarkan manfaat berikut:
- Peningkatan kecepatan kueri yang ditangani per detik untuk database konvensional, seperti MySQL atau Postgres, dan database vektor.
- Peningkatan performa baca untuk aplikasi stateful dengan meminimalkan latensi disk.
- Hidrasi dan rehidrasi data yang lebih cepat karena SSD bersifat lokal ke node. Hidrasi data mengacu pada proses awal memuat data yang diperlukan dari penyimpanan persisten ke SSD Lokal. Rehidrasi data mengacu pada proses memulihkan data di SSD Lokal setelah node didaur ulang.
Arsitektur deployment
Diagram berikut menunjukkan contoh konfigurasi GKE Data Cache dengan dua Pod yang masing-masing menjalankan aplikasi. Pod berjalan di node GKE yang sama. Setiap Pod menggunakan SSD Lokal terpisah dan persistent disk pendukung.
Mode deployment
Anda dapat menyiapkan GKE Data Cache dalam salah satu dari dua mode:
- Writethrough (Direkomendasikan): Saat aplikasi Anda menulis data, data akan ditulis secara sinkron ke cache dan persistent disk yang mendasarinya. Mode
writethroughmencegah kehilangan data, dan cocok untuk sebagian besar workload produksi. - Writeback: Saat aplikasi Anda menulis data, data hanya ditulis
ke cache. Kemudian, data ditulis ke persistent disk secara asinkron (di latar belakang). Mode
writebackmeningkatkan performa tulis, dan cocok untuk workload yang mengandalkan kecepatan. Namun, mode ini memengaruhi keandalan. Jika node dimatikan secara tidak terduga, data cache yang belum di-flush akan hilang.
Tujuan
Dalam panduan ini, Anda akan mempelajari cara:
- Membuat infrastruktur GKE yang mendasarinya untuk menggunakan GKE Data Cache.
- Membuat node pool khusus dengan SSD Lokal terpasang.
- Membuat StorageClass untuk menyediakan PersistentVolume (PV) secara dinamis saat Pod memintanya melalui PersistentVolumeClaim (PVC).
- Membuat PVC untuk meminta PV.
- Membuat Deployment yang menggunakan PVC untuk memastikan aplikasi Anda memiliki akses ke penyimpanan persisten bahkan setelah Pod dimulai ulang, dan selama penjadwalan ulang.
Persyaratan dan perencanaan
Pastikan Anda memenuhi persyaratan berikut untuk menggunakan GKE Data Cache:
- Cluster GKE Anda harus menjalankan versi 1.32.3-gke.1440000 atau yang lebih baru.
- Node pool Anda harus menggunakan jenis mesin yang mendukung SSD Lokal. Untuk mengetahui informasi selengkapnya, lihat Dukungan seri mesin.
Perencanaan
Pertimbangkan aspek-aspek berikut saat Anda merencanakan kapasitas penyimpanan untuk GKE Data Cache:
- Jumlah maksimum Pod per node yang akan menggunakan GKE Data Cache secara serentak.
- Persyaratan ukuran cache yang diharapkan dari Pod yang akan menggunakan GKE Data Cache.
- Total kapasitas SSD Lokal yang tersedia di node GKE Anda. Untuk mengetahui informasi tentang jenis mesin mana yang memiliki SSD Lokal terpasang secara default dan jenis mesin mana yang mengharuskan Anda memasang SSD Lokal, lihat Memilih jumlah disk SSD Lokal yang valid.
- Untuk jenis mesin generasi ketiga atau yang lebih baru (yang memiliki jumlah SSD Lokal terpasang secara default), perhatikan bahwa SSD Lokal untuk Data Cache dicadangkan dari total SSD Lokal yang tersedia di mesin tersebut.
- Overhead sistem file yang dapat mengurangi ruang yang dapat digunakan di SSD Lokal. Misalnya, meskipun Anda memiliki node yang memiliki dua SSD Lokal dengan total kapasitas mentah 750 GiB, ruang yang tersedia untuk semua volume Data Cache mungkin lebih kecil karena overhead sistem file. Beberapa kapasitas SSD Lokal dicadangkan untuk penggunaan sistem.
Batasan
Ketidakcocokan dengan Pencadangan untuk GKE
Untuk mempertahankan integritas data dalam skenario seperti pemulihan dari bencana atau migrasi aplikasi, Anda mungkin perlu mencadangkan dan memulihkan data. Jika Anda menggunakan Pencadangan untuk GKE guna memulihkan PVC yang dikonfigurasi untuk menggunakan Data Cache, proses pemulihan akan gagal. Kegagalan ini terjadi karena proses pemulihan tidak menyebarkan parameter cache data yang diperlukan dengan benar dari StorageClass asli.
Harga
Anda akan ditagih untuk total kapasitas yang disediakan untuk SSD Lokal dan persistent disk terpasang. Anda dikenai biaya per GiB per bulan.
Untuk mengetahui informasi selengkapnya, lihat Harga disk dalam dokumentasi Compute Engine.
Sebelum memulai
Sebelum memulai, pastikan Anda telah melakukan tugas berikut:
- Aktifkan Google Kubernetes Engine API. Mengaktifkan 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. Versi gcloud CLI yang lebih lama mungkin tidak mendukung menjalankan perintah dalam dokumen ini.
- Tinjau jenis mesin yang mendukung SSD Lokal untuk node pool Anda.
Mengonfigurasi node GKE untuk menggunakan Data Cache
Untuk mulai menggunakan GKE Data Cache untuk penyimpanan yang dipercepat, node Anda harus memiliki resource SSD Lokal yang diperlukan. Bagian ini menunjukkan perintah untuk menyediakan SSD Lokal dan mengaktifkan GKE Data Cache saat Anda membuat cluster GKE baru atau menambahkan node pool baru ke cluster yang sudah ada. Anda tidak dapat memperbarui node pool yang ada untuk menggunakan Data Cache. Jika ingin menggunakan Data Cache di cluster yang sudah ada, tambahkan node pool baru ke cluster.
Di cluster baru
Untuk membuat cluster GKE dengan Data Cache yang dikonfigurasi, gunakan perintah berikut:
gcloud container clusters create CLUSTER_NAME \
--location=LOCATION \
--machine-type=MACHINE_TYPE \
--data-cache-count=DATA_CACHE_COUNT \
# Optionally specify additional Local SSDs, or skip this flag
--ephemeral-storage-local-ssd count=LOCAL_SSD_COUNT
Ganti kode berikut:
CLUSTER_NAME: nama cluster. Beri nama unik untuk cluster GKE yang Anda buat.LOCATION: region atau zona untuk cluster baru. Google CloudMACHINE_TYPE: jenis mesin yang akan digunakan dari seri mesin generasi kedua, ketiga, atau yang lebih baru untuk cluster Anda, sepertin2-standard-2atauc3-standard-4-lssd. Kolom ini wajib diisi karena SSD Lokal tidak dapat digunakan dengan jenise2-mediumdefault. Untuk mengetahui informasi selengkapnya, lihat seri mesin yang tersedia.DATA_CACHE_COUNT: jumlah volume SSD Lokal yang akan didedikasikan secara eksklusif untuk Data Cache di setiap node di node pool default. Setiap SSD Lokal ini memiliki kapasitas 375 GiB. Jumlah maksimum volume bervariasi menurut jenis mesin dan region. Perlu diketahui bahwa beberapa kapasitas SSD Lokal dicadangkan untuk penggunaan sistem.(Opsional)
LOCAL_SSD_COUNT: jumlah volume SSD Lokal yang akan disediakan untuk kebutuhan penyimpanan efemeral lainnya. Gunakan flag--ephemeral-storage-local-ssd countjika Anda ingin menyediakan SSD Lokal tambahan yang tidak digunakan untuk Data Cache.Perhatikan hal berikut untuk jenis mesin generasi ketiga atau yang lebih baru:
- Jenis mesin generasi ketiga atau yang lebih baru memiliki jumlah SSD Lokal tertentu yang terpasang secara default. Jumlah SSD Lokal yang terpasang ke setiap node bergantung pada jenis mesin yang Anda tentukan.
- Jika Anda berencana menggunakan flag
--ephemeral-storage-local-ssd countuntuk penyimpanan efemeral tambahan, pastikan untuk menetapkan nilaiDATA_CACHE_COUNTke angka yang kurang dari total disk SSD Lokal yang tersedia di mesin. Jumlah SSD Lokal yang tersedia mencakup disk terpasang default dan disk baru yang Anda tambahkan menggunakan flag--ephemeral-storage-local-ssd count.
Perintah ini membuat cluster GKE yang berjalan pada jenis mesin generasi kedua, ketiga, atau yang lebih baru untuk node pool defaultnya, menyediakan SSD Lokal untuk Data Cache, dan secara opsional menyediakan SSD Lokal tambahan untuk kebutuhan penyimpanan efemeral lainnya, jika ditentukan.
Setelan ini hanya berlaku untuk node pool default.
Di cluster yang sudah ada
Untuk menggunakan Data Cache di cluster yang sudah ada, Anda harus membuat node pool baru dengan Data Cache yang dikonfigurasi.
Untuk membuat node pool GKE dengan Data Cache yang dikonfigurasi, gunakan perintah berikut:
gcloud container node-pool create NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--location=LOCATION \
--machine-type=MACHINE_TYPE \
--data-cache-count=DATA_CACHE_COUNT \
# Optionally specify additional Local SSDs, or skip this flag
--ephemeral-storage-local-ssd count=LOCAL_SSD_COUNT
Ganti kode berikut:
NODE_POOL_NAME: nama node pool. Beri nama unik untuk node pool yang Anda buat.CLUSTER_NAME: nama cluster GKE yang sudah ada tempat Anda ingin membuat node pool.LOCATION: region atau zona yang sama dengan cluster Anda. Google CloudMACHINE_TYPE: jenis mesin yang akan digunakan dari seri mesin generasi kedua, ketiga, atau yang lebih baru untuk cluster Anda, sepertin2-standard-2atauc3-standard-4-lssd. Kolom ini wajib diisi karena SSD Lokal tidak dapat digunakan dengan jenise2-mediumdefault. Untuk mengetahui informasi selengkapnya, lihat seri mesin yang tersedia.DATA_CACHE_COUNT: jumlah volume SSD Lokal yang akan didedikasikan secara eksklusif untuk Data Cache di setiap node di node pool. Setiap SSD Lokal ini memiliki kapasitas 375 GiB. Jumlah maksimum volume bervariasi menurut jenis mesin dan region. Perlu diketahui bahwa beberapa kapasitas SSD Lokal dicadangkan untuk penggunaan sistem.(Opsional)
LOCAL_SSD_COUNT: jumlah volume SSD Lokal yang akan disediakan untuk kebutuhan penyimpanan efemeral lainnya. Gunakan flag--ephemeral-storage-local-ssd countjika Anda ingin menyediakan SSD Lokal tambahan yang tidak digunakan untuk Data Cache.Perhatikan hal berikut untuk jenis mesin generasi ketiga atau yang lebih baru:
- Jenis mesin generasi ketiga atau yang lebih baru memiliki jumlah SSD Lokal tertentu yang terpasang secara default. Jumlah SSD Lokal yang terpasang ke setiap node bergantung pada jenis mesin yang Anda tentukan.
- Jika Anda berencana menggunakan flag
--ephemeral-storage-local-ssd countuntuk penyimpanan efemeral tambahan, pastikan untuk menetapkanDATA_CACHE_COUNTke angka yang kurang dari total disk SSD Lokal yang tersedia di mesin. Jumlah SSD Lokal yang tersedia mencakup disk terpasang default dan disk baru yang Anda tambahkan menggunakan flag--ephemeral-storage-local-ssd count.
Perintah ini membuat node pool GKE yang berjalan pada jenis mesin generasi kedua, ketiga, atau yang lebih baru, menyediakan SSD Lokal untuk Data Cache, dan secara opsional menyediakan SSD Lokal tambahan untuk kebutuhan penyimpanan efemeral lainnya, jika ditentukan.
Menyediakan Data Cache untuk penyimpanan persisten di GKE
Bagian ini memberikan contoh cara mengaktifkan manfaat performa GKE Data Cache untuk aplikasi stateful Anda.
Membuat node pool dengan SSD Lokal untuk Data Cache
Mulailah dengan membuat node pool baru dengan SSD Lokal terpasang di cluster GKE Anda. GKE Data Cache menggunakan SSD Lokal untuk mempercepat performa persistent disk terpasang.
Perintah berikut membuat node pool yang menggunakan mesin generasi kedua, n2-standard-2:
gcloud container node-pools create datacache-node-pool \
--cluster=CLUSTER_NAME \
--location=LOCATION \
--num-nodes=2 \
--data-cache-count=1 \
--machine-type=n2-standard-2
Ganti kode berikut:
CLUSTER_NAME: nama cluster. Tentukan cluster GKE tempat Anda membuat node pool baru.LOCATION: region atau zona yang sama dengan cluster Anda. Google Cloud
Perintah ini membuat node pool dengan spesifikasi berikut:
--num-nodes=2: menetapkan jumlah awal node dalam pool ini menjadi dua.--data-cache-count=1: menentukan satu SSD Lokal per node yang didedikasikan untuk GKE Data Cache.
Jumlah total SSD Lokal yang disediakan untuk node pool ini adalah dua karena setiap node disediakan dengan satu SSD Lokal.
Membuat StorageClass Data Cache
Buat Kubernetes StorageClass
yang memberi tahu GKE cara menyediakan volume persisten
yang menggunakan Data Cache secara dinamis.
Gunakan manifes berikut untuk membuat dan menerapkan StorageClass bernama pd-balanced-data-cache-sc:
kubectl apply -f - <<EOF
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: pd-balanced-data-cache-sc
provisioner: pd.csi.storage.gke.io
parameters:
type: pd-balanced
data-cache-mode: writethrough
data-cache-size: "100Gi"
volumeBindingMode: WaitForFirstConsumer
allowVolumeExpansion: true
EOF
Parameter StorageClass untuk Data Cache mencakup hal berikut:
type: menentukan jenis disk yang mendasari untuk volume persisten. Untuk mengetahui opsi lainnya, lihat jenis Persistent Disk yang didukung atau jenis Hyperdisk.data-cache-mode: menggunakan modewritethroughyang direkomendasikan. Untuk mengetahui informasi selengkapnya, lihat Mode deployment.data-cache-size: menetapkan kapasitas SSD Lokal ke 100 GiB, yang digunakan sebagai cache baca untuk setiap PVC.
Meminta penyimpanan dengan PersistentVolumeClaim (PVC)
Buat PVC yang mereferensikan StorageClass pd-balanced-data-cache-sc yang Anda buat. PVC meminta volume persisten dengan Data Cache yang diaktifkan.
Gunakan manifes berikut untuk membuat PVC bernama pvc-data-cache yang meminta volume persisten minimal 300 GiB dengan akses ReadWriteOnce.
kubectl apply -f - <<EOF
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pvc-data-cache
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 300Gi
storageClassName: pd-balanced-data-cache-sc
EOF
Membuat Deployment yang menggunakan PVC
Buat Deployment bernama postgres-data-cache yang menjalankan Pod yang menggunakan PVC pvc-data-cache yang Anda buat sebelumnya. Pemilih node cloud.google.com/gke-data-cache-count memastikan bahwa Pod dijadwalkan ke node yang memiliki resource SSD Lokal yang diperlukan untuk menggunakan GKE Data Cache.
Buat dan terapkan manifes berikut untuk mengonfigurasi Pod yang men-deploy server web Postgres menggunakan PVC:
kubectl apply -f - <<EOF
apiVersion: apps/v1
kind: Deployment
metadata:
name: postgres-data-cache
labels:
name: database
app: data-cache
spec:
replicas: 1
selector:
matchLabels:
service: postgres
app: data-cache
template:
metadata:
labels:
service: postgres
app: data-cache
spec:
nodeSelector:
cloud.google.com/gke-data-cache-disk: "1"
containers:
- name: postgres
image: postgres:14-alpine
volumeMounts:
- name: pvc-data-cache-vol
mountPath: /var/lib/postgresql/data2
subPath: postgres
env:
- name: POSTGRES_USER
value: admin
- name: POSTGRES_PASSWORD
value: password
restartPolicy: Always
volumes:
- name: pvc-data-cache-vol
persistentVolumeClaim:
claimName: pvc-data-cache
EOF
Konfirmasi bahwa Deployment berhasil dibuat:
kubectl get deployment
Mungkin perlu waktu beberapa menit agar container Postgres menyelesaikan penyediaan dan menampilkan status READY.
Memverifikasi penyediaan Data Cache
Setelah membuat Deployment, pastikan penyimpanan persisten dengan Data Cache disediakan dengan benar.
Untuk memverifikasi bahwa
pvc-data-cacheberhasil terikat ke volume persisten, jalankan perintah berikut:kubectl get pvc pvc-data-cacheOutputnya mirip dengan hal berikut ini:
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE pvc-data-cache Bound pvc-e9238a16-437e-45d7-ad41-410c400ae018 300Gi RWO pd-balanced-data-cache-sc <unset> 10mUntuk mengonfirmasi bahwa Grup Logical Volume Manager (LVM) untuk Data Cache dibuat di node, ikuti langkah-langkah berikut:
Dapatkan nama Pod driver PDCSI di node tersebut:
NODE_NAME=$(kubectl get pod --output json | jq '.items[0].spec.nodeName' | sed 's/\"//g') kubectl get po -n kube-system -o wide | grep ^pdcsi-node | grep $NODE_NAMEDari output, salin nama Pod
pdcsi-node.Lihat log driver PDCSI untuk pembuatan Grup LVM:
PDCSI_POD_NAME="PDCSI-NODE_POD_NAME" kubectl logs -n kube-system $PDCSI_POD_NAME gce-pd-driver | grep "Volume group creation"Ganti
PDCSI-NODE_POD_NAMEdengan nama Pod sebenarnya yang Anda salin pada langkah sebelumnya.Outputnya mirip dengan hal berikut ini:
Volume group creation succeeded for LVM_GROUP_NAME
Pesan ini mengonfirmasi bahwa konfigurasi LVM untuk Data Cache disiapkan dengan benar di node.
Pembersihan
Agar akun Anda tidak dikenai biaya, hapus resource penyimpanan yang Anda buat dalam panduan ini. Google Cloud
Hapus Deployment.
kubectl delete deployment postgres-data-cacheHapus PersistentVolumeClaim.
kubectl delete pvc pvc-data-cacheHapus node pool.
gcloud container node-pools delete datacache-node-pool \ --cluster CLUSTER_NAMEGanti
CLUSTER_NAMEdengan nama cluster tempat Anda membuat node pool yang menggunakan Data Cache.
Langkah berikutnya
- Lihat Memecahkan masalah penyimpanan di GKE.
- Baca selengkapnya tentang driver CSI Persistent Disk di GitHub.