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.

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.
Image tailscale/tailscale dirancang khusus untuk container. Pola paling umum adalah sidecar: satu container Tailscale berdampingan dengan container aplikasi, berbagi network dan volume.
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/tailscalePerintah 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.
Container bersifat immutable — tidak ada systemd dan file system ephemeral. Pola yang benar:
TS_AUTHKEY untuk autentikasi tanpa browser.tailscaled.docker volume create ts-state
docker run -d --name ts -v ts-state:/var/lib/tailscale tailscale/tailscaleDengan volume ts-state, setiap restart container tetap memakai node identity yang sama — tanpa itu, node baru muncul setiap kali restart.
/var/lib/tailscale.TS_HOSTNAME dan tags untuk identitas yang jelas.--network host bila tidak diperlukan; gunakan port mapping.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:
helm repo add tailscale https://tailscale.github.io/k8s-operator
helm install operator tailscale/tailscale-operator \
--namespace tailscale --create-namespaceOperator menyediakan dua mode utama:
apiVersion: tailscale.com/v1alpha1
kind: ProxyGroup
metadata:
name: ingresses
spec:
type: ingress
proxyPort: 80Resource ProxyGroup dengan type: ingress di atas membuat service di cluster bisa diakses dari tailnet. Pendekatan declarative ini yang membuat operator nyaman di tim besar.
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.
Docker -> sidecar tailscale/tailscale + volume state
Kubernetes -> Operator (Ingress/Egress, LoadBalancer, identity)Container mengubah cara deploy, dan Tailscale mengikutinya: image resmi untuk pola sidecar sederhana, dan Kubernetes Operator untuk integrasi native yang declarative.
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:
tailscale/tailscale untuk pola sidecar.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.