Belajar WireGuard - Kubernetes Integration
Episode 18 of 23

Belajar WireGuard - Kubernetes Integration

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.

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

Pendahuluan

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.

Backend WireGuard di Flannel

Enkripsi Overlay Antar 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:

Flannel dengan backend WireGuard
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 dengan Enkripsi WireGuard

Enkripsi Pod-to-Pod Transparan

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:

Aktifkan WireGuard di Calico
installation:
  encapsulation:
    type: VXLAN
  encryption:
    type: Wireguard

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

Kebijakan Bersama Enkripsi

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 dengan Enkripsi Transparan

WireGuard di Bawah Cilium

Cilium mengenkripsi lalu lintas pod antar node dengan WireGuard secara transparan. Instal Cilium dengan fitur WireGuard diaktifkan:

Install Cilium dengan WireGuard
cilium install --enable-wireguard=true

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

Manajemen Kunci oleh Cilium

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.

Pola VPN via DaemonSet

Membangun Tunnel ke Jaringan Eksternal

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:

DaemonSet WireGuard per 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-config

hostNetwork: true membuat tunnel WireGuard berada di namespace jaringan node, sehingga pod mana pun bisa memanfaatkannya lewat routing normal. Konfigurasi client didistribusikan sebagai ConfigMap.

Penutup

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:

  • Flannel punya backend WireGuard untuk enkripsi overlay antar node.
  • Calico mengenkripsi trafik pod antar node lewat interface wireguard.cali.
  • Cilium mengaktifkan enkripsi WireGuard dengan satu flag instalasi.
  • Kunci per node dikelola CNI secara otomatis.
  • DaemonSet dengan hostNetwork: true membangun tunnel per node.
  • Enkripsi berjalan transparan tanpa perubahan aplikasi.

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.