Tutorial Setup Talos OS: Cluster Kubernetes Immutable Tanpa SSH di VPS
Poin Kunci Artikel Ini:
- Setiap detik, bot jahat ketuk pintu itu via brute force.
- Admin lupa update paket kernel, ada skrip manual tertinggal di , atau konfigurasi Node A beda dengan Node B.
- Talos OS hapus semua komponen itu.Prinsip Talos OS cuma dua: Immutable dan API-driven.Tanpa SSH dan Shell: Tidak ada , , , , atau .
Masalah OS Linux Tradisional dan Arsitektur API-Driven Talos OS
Bayangkan server Linux biasa seperti rumah dengan kunci pintu utama yang sering diganti-ganti, tapi jendela belakang (port SSH 22) biarkan terbuka 24 jam. Setiap detik, bot jahat ketuk pintu itu via brute force. Admin lupa update paket kernel, ada skrip manual tertinggal di /etc/, atau konfigurasi Node A beda dengan Node B. Ini sebut configuration drift. Hasilnya: debugging lambat, server rentan jebol.
OS Linux tradisional seperti Ubuntu atau Debian bawa banyak beban tidak perlu untuk Kubernetes: bash shell, package manager (apt, yum), systemd rumit, dan SSH daemon. Talos OS beda. Talos OS hapus semua komponen itu.
Prinsip Talos OS cuma dua: Immutable dan API-driven.
- Tanpa SSH dan Shell: Tidak ada
bash,sh,curl,python, atausshd. Penyerang tidak bisa login SSH karena service-nya memang tidak ada. - Read-Only Root Filesystem: Sistem operasi jalan penuh di RAM. Partisi root dikunci total (read-only). File sistem tidak bisa diubah saat runtime.
- Kontrol Penuh via API mTLS: Manajemen OS (reboot, partisi disk, network, upgrade kernel) lewat gRPC API dengan otentikasi Mutual TLS (mTLS). Alat kendalinya cuma satu: CLI
talosctl. - Sangat Ringkas: Ukuran image OS cuma sekitar 80MB. Isinya hanya kernel Linux + Talos PID 1 init process khusus buat Kubernetes.
Praktek Bootstrap Cluster Talos OS di VPS
Sediakan dua node VPS (1 Control Plane, 1 Worker). Catat IP Public tiap node. Set OS installer VPS ke mode Custom ISO atau Rescue Mode untuk install Talos image.
1. Install talosctl di Komputer Lokal
Pasang binary talosctl di laptop atau komputer pengelola:
curl -sL https://talos.dev/support/how-to-guides/download/talosctl | bash2. Generate Konfigurasi Cluster
Buat file konfigurasi Kubernetes dan Talos pakai talosctl. Tentukan nama cluster dan IP Control Plane (port default 6443):
export CLUSTER_NAME="k8s-prod"
export CONTROL_PLANE_IP="193.168.1.10"
talosctl gen config $CLUSTER_NAME https://$CONTROL_PLANE_IP:6443Perintah ini buat tiga file:
controlplane.yaml: Konfigurasi OS dan K8s master node.worker.yaml: Konfigurasi OS dan K8s worker node.talosconfig: File kunci mTLS untuk akses API viatalosctl.
3. Flash Image dan Apply Config ke Node VPS
Boot VPS ke mode maintenance atau ISO Talos OS. Kirim konfigurasi awal via endpoint maintenance API (port 50000):
# Apply config ke Control Plane
talosctl apply-config --insecure --nodes 193.168.1.10 --file controlplane.yaml
# Apply config ke Worker Node
talosctl apply-config --insecure --nodes 193.168.1.11 --file worker.yamlNode akan restart otomatis, format disk, aktifkan sistem file read-only, dan buka API gRPC mTLS port 50000.
4. Konfigurasi Client talosctl Lokal
Hubungkan talosconfig lokal ke IP node dengan sertifikat mTLS:
talosctl config merge ./talosconfig
talosctl config endpoint 193.168.1.10
talosctl config node 193.168.1.105. Bootstrap Kubernetes Cluster
Jalankan bootstrap etcd dan Control Plane. Cukup eksekusi sekali di satu node Control Plane:
talosctl bootstrapCek log sistem secara real-time via API tanpa SSH:
talosctl logs controller-manager6. Ambil Kubeconfig
Tarik akses kubectl langsung dari API Talos OS:
talosctl kubeconfig .
kubectl get nodes -o wideCluster Kubernetes immutable langsung aktif tanpa satu pun port SSH terbuka.
Best Practice Upgrade OS Zero-Downtime dan Mitigasi Masalah
Upgrade OS Node Tanpa Downtime
Upgrade kernel Talos OS tidak butuh apt update atau reboot manual. Cukup ganti image installer via API. Talos otomatis jalankan kubectl drain, cordoning node, reboot, dan uncordon:
talosctl upgrade --nodes 193.168.1.11 --image factory.talos.dev/installer/v1.6.0Pod pindah otomatis ke node lain sebelum OS restart. Bebas downtime.
Mitigasi Error dan Recovery API
- Port 50000 Terblokir Firewall: API Talos butuh port 50000 terbuka antar node dan dari IP admin. Izinkan port 50000/TCP dan 6443/TCP di Security Group VPS.
- File Config Hilang: File
talosconfigadalah akses root utama. Simpan aman di Password Manager. Tanpa file ini, node tidak bisa dikontrol via API. - Backup dan Restore Etcd: Ambil snapshot etcd rutin via API:
Restore etcd tanpa masuk SSH:talosctl etcd snapshot snapshot.dbtalosctl bootstrap --recover-from snapshot.db
Kesimpulan
Menghapus SSH dan pakai OS immutable seperti Talos OS menutup celah keamanan terbesar di server production. Konfigurasi cluster jadi konsisten, penggunaan RAM hemat, dan operasional jauh lebih simpel.
Coba buat satu cluster staging Talos OS di VPS hari ini. Uji deploy aplikasi, rasakan bedanya mengelola cluster Kubernetes tanpa perlu pusing urus SSH lagi.



