Episode ini memandu deploy Vitess minimal di Kubernetes menggunakan Helm chart resmi, mengkonfigurasi keyspace dan shard pertama, lalu memverifikasi komponen layanan dan koneksi MySQL lewat VTGate.

Teori episode 2 sudah cukup. Sekarang kita memulai tangan kotor: menginstall Vitess di Kubernetes dan membuatnya benar-benar melayani query. Episode 3 adalah milestone besar karena setelah ini kalian punya cluster Vitess nyata yang bisa dieksplorasi — dan semua episode berikutnya akan berjalan di atas fondasi ini.
Roadmap episode 3: persiapan cluster dan storage, instalasi lewat Helm chart resmi, konfigurasi keyspace dan shard pertama, lalu verifikasi komponen dan koneksi MySQL. Gunakan cluster kind atau k3d yang kalian buat di episode 0.
Sebelum install Vitess, pastikan cluster dan helm ready:
kubectl cluster-info
kubectl get nodes
helm versionkubectl get nodes harus menunjukkan node dalam status Ready. Untuk lab lokal, kind cukup. Untuk latihan yang lebih mirip produksi, kalian bisa menambah node agar ada tempat replika dan backup yang terpisah.
Vitess butuh storage untuk data MySQL setiap tablet. Di kind, kalian perlu memastikan storage class tersedia. Helm chart Vitess memakai PersistentVolumeClaim per tablet, jadi gunakan storage class default (di kind, sudah ada standard). Verifikasi:
kubectl get storageclassVitess menyediakan Helm chart resmi di repo vitess. Tambahkan repo dan update:
helm repo add vitess https://vitess.io/charts
helm repo updateLalu install chart dengan namespace vitess, lalu tunggu hingga Pod siap:
helm install vitess vitess/vitess \
--namespace vitess \
--create-namespaceHelm akan membuat banyak resource: vtctld, vtgate, dan per keyspace-single-shard biasanya vtctld plus vtgate dan etcd. Tunggu beberapa saat hingga semua Pod berstatus Running. Jika ada yang CrashLoopBackOff, inspeksi dengan kubectl logs dan kubectl describe pod — penyebab paling umum adalah image pull yang gagal atau storage yang tidak tersedia.
Info
Chart Vitess default membuat satu keyspace contoh bernama commerce dengan satu shard. Ini sangat membantu untuk mulai belajar: kalian bisa mengeksplorasi operasi dasar dulu, lalu menghapus dan membuat keyspace sendiri di episode 4.
Chart default sudah menyediakan keyspace commerce dengan satu shard 0. Verifikasi melalui vtctlclient. Karena vtctlclient tidak terinstall di mesin kalian, pakai alias lewat kubectl exec:
alias vtctlclient="kubectl exec -i -n vitess deploy/vtctld -- vtctlclient -server localhost:15999"
vtctlclient ListAllKeyspacesvtctlclient ListAllKeyspaces harus menampilkan commerce. Untuk melihat semua tablet:
vtctlclient ListAllTabletsOutputnya menunjukkan tablet primary dan replica untuk shard 0 dari keyspace commerce, lengkap dengan alamatnya. Ini bukti bahwa VTGate, VTTablet, dan Topology Service berkomunikasi dengan baik.
Jika kalian ingin menyesuaikan jumlah shard saat install (misalnya keyspace dengan 2 shard untuk latihan resharding), gunakan custom values:
topology:
keyspaces:
- name: commerce
shards:
- name: "-80"
- name: "80-"Lalu install ulang dengan helm install vitess vitess/vitess -f values-custom.yaml.
Semua komponen seharusnya sudah berjalan. Periksa ringkasannya:
kubectl get deployments -n vitess
kubectl get statefulsets -n vitess
kubectl get svc -n vitessHarus ada deployment vtctld dan vtgate, serta service yang mengekspos keduanya. Untuk mengakses VTGate dari mesin kalian (port 15306 untuk MySQL protocol), buat port-forward:
kubectl port-forward -n vitess svc/vtgate 15306:3306 &Sekarang saat paling menyenangkan: konek ke Vitess seperti konek ke MySQL biasa. Buka terminal lain dan jalankan:
mysql -h 127.0.0.1 -P 15306 -u rootDi prompt MySQL, kalian bisa melihat keyspace dan membuat tabel:
USE commerce
SHOW TABLES
CREATE TABLE users (
user_id bigint,
name varchar(255),
primary key (user_id)
)Perintah CREATE TABLE users menciptakan tabel di keyspace commerce. Karena belum ada VSchema, tabel ini dianggap unsharded — semua data masuk ke shard 0. Di episode 4 kita akan melihat bagaimana VSchema mengubah cara data disimpan dan dirutekan.
Success
Kalian sekarang punya database MySQL yang dikelola Vitess, bisa diakses dengan SQL standar, dan siap untuk dieksplorasi lebih jauh. Dari titik ini, setiap konsep Vitess yang kalian pelajari bisa langsung dipraktikkan.
Pada episode 3 ini kalian berhasil men-deploy Vitess di Kubernetes dengan Helm, memverifikasi keyspace commerce dan tablet-shard-nya lewat vtctlclient, lalu terhubung ke VTGate dengan mysql client dan membuat tabel pertama. Ini adalah fondasi praktis untuk seluruh episode berikutnya.
Inti yang harus dibawa pulang:
helm install vitess vitess/vitess.vtctlclient ListAllKeyspaces dan ListAllTablets adalah alat verifikasi utama.commerce satu shard untuk latihan.Di episode 4 berikutnya kita mengelola keyspaces dan shards: membuat keyspace dari nol, menentukan sharding key dan vindex, menambah shard, serta memahami praktik terbaik partisi. Sampai jumpa!