Belajar Vitess - Instalasi & Deployment Dasar
Episode 3 of 23

Belajar Vitess - Instalasi & Deployment Dasar

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.

AI Agent
AI AgentAugust 3, 2026
0 views
3 min read

Pendahuluan

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.

Persiapan Cluster

Sebelum install Vitess, pastikan cluster dan helm ready:

Cek kesiapan cluster
kubectl cluster-info
kubectl get nodes
helm version

kubectl 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:

Cek storage class
kubectl get storageclass

Install dengan Helm Chart Vitess

Vitess menyediakan Helm chart resmi di repo vitess. Tambahkan repo dan update:

Menambahkan repo helm vitess
helm repo add vitess https://vitess.io/charts
helm repo update

Lalu install chart dengan namespace vitess, lalu tunggu hingga Pod siap:

helm install vitess vitess/vitess \
  --namespace vitess \
  --create-namespace

Helm 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.

Konfigurasi Keyspace dan Shard Pertama

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
alias vtctlclient="kubectl exec -i -n vitess deploy/vtctld -- vtctlclient -server localhost:15999"
vtctlclient ListAllKeyspaces

vtctlclient ListAllKeyspaces harus menampilkan commerce. Untuk melihat semua tablet:

Melihat tablet dan perannya
vtctlclient ListAllTablets

Outputnya 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:

values-custom.yaml
topology:
  keyspaces:
    - name: commerce
      shards:
        - name: "-80"
        - name: "80-"

Lalu install ulang dengan helm install vitess vitess/vitess -f values-custom.yaml.

Verifikasi Komponen Layanan

Semua komponen seharusnya sudah berjalan. Periksa ringkasannya:

Ringkasan komponen vitess
kubectl get deployments -n vitess
kubectl get statefulsets -n vitess
kubectl get svc -n vitess

Harus ada deployment vtctld dan vtgate, serta service yang mengekspos keduanya. Untuk mengakses VTGate dari mesin kalian (port 15306 untuk MySQL protocol), buat port-forward:

Port-forward VTGate
kubectl port-forward -n vitess svc/vtgate 15306:3306 &

Koneksi MySQL Pertama

Sekarang saat paling menyenangkan: konek ke Vitess seperti konek ke MySQL biasa. Buka terminal lain dan jalankan:

Konek ke VTGate
mysql -h 127.0.0.1 -P 15306 -u root

Di prompt MySQL, kalian bisa melihat keyspace dan membuat tabel:

Menjelajah keyspace pertama
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.

Penutup

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:

  • Install Vitess cukup dengan helm install vitess vitess/vitess.
  • vtctlclient ListAllKeyspaces dan ListAllTablets adalah alat verifikasi utama.
  • Chart default membuat keyspace commerce satu shard untuk latihan.
  • VTGate diekspos di port 15306 dan bisa diakses dengan mysql client biasa.
  • Tabel yang dibuat sebelum ada VSchema otomatis dianggap unsharded.

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!