Episode ini membahas integrasi WireGuard dengan Kubernetes: backend WireGuard di Flannel, enkripsi transparan di Calico dan Cilium, enkripsi pod-to-pod antar node, serta manajemen kunci dan interface WireGuard per node di dalam cluster.

Di dunia Kubernetes, lalu lintas antar pod melewati jaringan node — dan jaringan itu bisa saja dilewati penyerang di jaringan fisik yang sama. Jawaban modernnya adalah mengenkripsi lalu lintas antar node secara transparan, dan beberapa CNI memilih WireGuard sebagai mesin enkripsinya.
Episode 18 membahas bagaimana WireGuard diintegrasikan ke Kubernetes: backend WireGuard di Flannel, enkripsi WireGuard di Calico dan Cilium, dan bagaimana interface serta kunci dikelola per node.
Flannel menyediakan beberapa backend untuk menghubungkan pod antar node, dan salah satunya adalah WireGuard. Dengan backend ini, setiap node menjalankan interface WireGuard, dan lalu lintas overlay antar node dienkripsi.
Aktifkan backend WireGuard dengan mengubah konfigurasi Flannel:
net-conf.json: |
{
"Network": "10.244.0.0/16",
"Backend": {
"Type": "wireguard"
}
}Flannel otomatis men-generate kunci per node dan mendistribusikan kunci publik antar node — kalian tidak perlu mengelola peer secara manual seperti di deployment klasik.
Calico menawarkan enkripsi WireGuard untuk lalu lintas pod antar node. Ketika diaktifkan, Calico membuat interface wireguard.cali di setiap node, dan semua trafik antar node yang lewat lewat interface ini dienkripsi.
Aktifkan lewat nilai instalasi:
installation:
encapsulation:
type: VXLAN
encryption:
type: WireguardManajemen kunci dilakukan sepenuhnya oleh Calico melalui Kubernetes: kunci publik node disimpan sebagai resources, dan hanya node yang sudah terautentikasi yang bisa ikut serta dalam jaringan terenkripsi.
Kelebihan Calico adalah kebijakan jaringan tetap berfungsi penuh di atas enkripsi. Dengan kata lain, aturan NetworkPolicy menentukan siapa boleh bicara dengan siapa, dan WireGuard memastikan pembicaraan itu terenkripsi — dua lapisan yang saling melengkapi.
Cilium mengenkripsi lalu lintas pod antar node dengan WireGuard secara transparan. Instal Cilium dengan fitur WireGuard diaktifkan:
cilium install --enable-wireguard=truecilium install --enable-wireguard=true mengkonfigurasi Cilium sehingga setiap node memiliki interface WireGuard dan semua trafik antar node terenkripsi secara otomatis. Tidak ada perubahan pada aplikasi — enkripsi terjadi di lapisan data plane.
Cilium mengelola kunci WireGuard melalui Kubernetes dan agent Cilium di setiap node. Kunci publik dipertukarkan antar node secara aman, dan kebijakan Cilium tetap diterapkan di atas tunnel terenkripsi.
Selain enkripsi antar node, Kubernetes juga sering dipakai untuk menghubungkan cluster ke jaringan eksternal — misalnya ke jaringan kantor. Polanya adalah DaemonSet yang menjalankan WireGuard di setiap node:
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: wg-client
namespace: kube-system
spec:
selector:
matchLabels:
app: wg-client
template:
metadata:
labels:
app: wg-client
spec:
hostNetwork: true
containers:
- name: wg-client
image: linuxserver/wireguard
securityContext:
privileged: true
volumeMounts:
- name: config
mountPath: /config
volumes:
- name: config
configMap:
name: wg-client-confighostNetwork: true membuat tunnel WireGuard berada di namespace jaringan node, sehingga pod mana pun bisa memanfaatkannya lewat routing normal. Konfigurasi client didistribusikan sebagai ConfigMap.
Episode 18 menuntaskan integrasi Kubernetes: Flannel memakai WireGuard sebagai backend overlay, Calico dan Cilium menyediakan enkripsi transparan antar node, dan DaemonSet membangun tunnel ke jaringan eksternal.
Inti yang harus dibawa pulang:
wireguard.cali.hostNetwork: true membangun tunnel per node.Di episode 19 selanjutnya kita membahas high availability dan resilience — keepalived dengan VRRP untuk failover endpoint, injeksi rute lewat BGP dengan BIRD dan GoBGP, pembaruan endpoint dinamis, serta strategi disaster recovery.