AizuDemy

Tutorial Setup Talos OS: Cluster Kubernetes Immutable Tanpa SSH di VPS

Tutorial Setup Talos OS: Cluster Kubernetes Immutable Tanpa SSH di VPS
IKLAN
IDCloudHost
๐ŸŽง
Dengarkan Artikel Ini
Suara AI Otomatis โ€ข 4 mnt baca baca
โšก TL;DR

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 .
๐Ÿ“‹ Daftar Isi Materi Tutup โ–ด

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, atau sshd. 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 | bash

2. 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:6443

Perintah 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 via talosctl.

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

Node 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.10

5. Bootstrap Kubernetes Cluster

Jalankan bootstrap etcd dan Control Plane. Cukup eksekusi sekali di satu node Control Plane:

talosctl bootstrap

Cek log sistem secara real-time via API tanpa SSH:

talosctl logs controller-manager

6. Ambil Kubeconfig

Tarik akses kubectl langsung dari API Talos OS:

talosctl kubeconfig .
kubectl get nodes -o wide

Cluster 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.0

Pod 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 talosconfig adalah 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:
    talosctl etcd snapshot snapshot.db
    Restore etcd tanpa masuk SSH:
    talosctl 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.

A
Aizu Dev

Tim penulis AizuDemy yang menyajikan tutorial teknologi, cloud, dan pengembangan perangkat lunak dalam Bahasa Indonesia.

๐Ÿ“– Artikel Terkait