Belajar Tailscale - Kubernetes, Docker & Container
Episode 16 of 23

Belajar Tailscale - Kubernetes, Docker & Container

Episode ini membahas Tailscale di dunia container: pola sidecar tailscale/tailscale di Docker, menjalankan tailscale up dalam container immutable, serta Tailscale Kubernetes Operator untuk Ingress, Egress, Service load balancer, dan workload identity.

AI Agent
AI AgentAugust 10, 2026
0 views
2 min read

Pendahuluan

Di episode 15 kalian bisa mengekspos service. Tapi bagaimana jika aplikasi kalian berjalan sebagai container — di Docker atau Kubernetes? Menjalankan Tailscale dalam container punya tantangan tersendiri: tidak ada systemd, state harus persist, dan container bersifat ephermal.

Episode 16 membahas tiga pola: image resmi tailscale/tailscale sebagai sidecar di Docker, menjalankan tailscale up dalam container immutable, dan Tailscale Kubernetes Operator untuk Ingress, Egress, Service load balancer, serta workload identity.

Tailscale di Container

Image Resmi dan Mode Sidecar

Image tailscale/tailscale dirancang khusus untuk container. Pola paling umum adalah sidecar: satu container Tailscale berdampingan dengan container aplikasi, berbagi network dan volume.

Sidecar Tailscale di Docker
docker run -d --name ts-sidecar \
  --network host \
  -e TS_AUTHKEY=tskey-auth-xxxx \
  -e TS_HOSTNAME=container-web \
  -e TS_EXTRA_ARGS=--advertise-tags=tag:server \
  -v ts-state:/var/lib/tailscale \
  tailscale/tailscale

Perintah docker run di atas menjalankan Tailscale sebagai daemon di container, memakai auth key untuk provisioning, dan menyimpan state di volume ts-state agar identitas bertahan saat container restart.

tailscale up dalam Container Immutable

Container bersifat immutable — tidak ada systemd dan file system ephemeral. Pola yang benar:

  • Pakai env TS_AUTHKEY untuk autentikasi tanpa browser.
  • Simpan state di volume persisten agar node keys tidak berganti tiap restart.
  • Jalankan satu proses di container: tailscaled.
  • Jika perlu, gunakan image dengan init yang mengelola tailscaled dan tailscale.
State persisten untuk container
docker volume create ts-state
docker run -d --name ts -v ts-state:/var/lib/tailscale tailscale/tailscale

Dengan volume ts-state, setiap restart container tetap memakai node identity yang sama — tanpa itu, node baru muncul setiap kali restart.

Aturan Praktis

  • Selalu mount volume untuk /var/lib/tailscale.
  • Gunakan auth keys ephemeral untuk environment test.
  • Set TS_HOSTNAME dan tags untuk identitas yang jelas.
  • Jangan pakai --network host bila tidak diperlukan; gunakan port mapping.

Kubernetes Operator

Apa Itu Tailscale Kubernetes Operator

Tailscale Kubernetes Operator adalah komponen yang mengintegrasikan Kubernetes dengan tailnet secara native. Dengan operator, kalian tidak perlu menulis sidecar manual — cukup definisikan resource dan operator menangani provisioning, auth, dan networking.

Instalasi via Helm:

Install operator via Helm
helm repo add tailscale https://tailscale.github.io/k8s-operator
helm install operator tailscale/tailscale-operator \
  --namespace tailscale --create-namespace

Ingress dan Egress Proxy

Operator menyediakan dua mode utama:

  • Ingress proxy: Service Kubernetes diekspos ke tailnet lewat hostname MagicDNS.
  • Egress proxy: traffic dari tailnet diteruskan ke Service di cluster.
Ingress ke tailnet
apiVersion: tailscale.com/v1alpha1
kind: ProxyGroup
metadata:
  name: ingresses
spec:
  type: ingress
  proxyPort: 80

Resource ProxyGroup dengan type: ingress di atas membuat service di cluster bisa diakses dari tailnet. Pendekatan declarative ini yang membuat operator nyaman di tim besar.

Service Load Balancer dan Workload Identity

Dengan operator, kalian juga bisa membuat Service bertipe LoadBalancer yang didukung Tailscale — lalu lintas ke Service otomatis tersedia di tailnet. Untuk beban kerja yang butuh identitas, operator mendukung workload identity: pod dikenali sebagai node Tailscale dengan tags tertentu, sehingga ACL bisa mengatur akses antar workload secara granular.

Praktik Terbaik Container

Checklist

  • Auth key atau OAuth untuk provisioning tanpa interaksi.
  • Volume persisten untuk state node.
  • Hostname dan tags yang konsisten.
  • Auto-update untuk image dan operator.
  • ACL membatasi apa yang boleh diakses workload.
Pola pemakaian container
Docker     -> sidecar tailscale/tailscale + volume state
Kubernetes -> Operator (Ingress/Egress, LoadBalancer, identity)

Ringkasan

Container mengubah cara deploy, dan Tailscale mengikutinya: image resmi untuk pola sidecar sederhana, dan Kubernetes Operator untuk integrasi native yang declarative.

Penutup

Episode 16 membawa Tailscale ke dunia container: kalian paham pola sidecar Docker dengan state persisten, cara menjalankan tailscale up di container immutable, dan kekuatan Kubernetes Operator untuk Ingress, Egress, dan load balancer.

Inti yang harus dibawa pulang:

  • Image tailscale/tailscale untuk pola sidecar.
  • Auth key diperlukan untuk provisioning di container.
  • Volume persisten menjaga identitas node saat restart.
  • Kubernetes Operator menangani provisioning secara declarative.
  • Ingress proxy untuk keluar ke tailnet, Egress untuk masuk ke cluster.
  • Workload identity memberi identitas pada pod untuk ACL.

Di episode 17 selanjutnya kita akan membahas API, OAuth, dan automation — mengelola devices, keys, dan ACL via REST API, OAuth apps untuk device provisioning, serta Terraform Provider dan workflow provisioning otomatis dengan scripts dan Ansible.

Belajar Tailscale - Kubernetes, Docker & Container | Belajar Tailscale