Belajar Flannel - Pre-Requisites Skill & Setup Environment
Episode 0 of 23

Belajar Flannel - Pre-Requisites Skill & Setup Environment

Sebelum menyentuh Flannel, kalian perlu menguasai dasar Kubernetes, konsep CNI, dan Linux networking seperti VXLAN, bridge, dan routing. Di episode ini kalian menyiapkan cluster uji minimal dua node, menginstall Flannel v0.28.x, dan memverifikasi instalasi pertama.

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

Pendahuluan

Selamat datang di series Belajar Flannel! Series ini akan membawa kalian menguasai Flannel — CNI yang ringan dan sederhana untuk menghubungkan Pod antar node di Kubernetes — dari fondasi konsep sampai production readiness. Total ada 23 episode yang tersusun dari enam fase.

Sebelum menyentuh flanneld, ada beberapa skill dasar dan perangkat lunak yang wajib kalian miliki. Mengapa prasyarat ini penting? Karena Flannel bekerja di lapisan jaringan host: dia membuat tunnel VXLAN, mengelola route di tabel routing kernel, dan berkoordinasi dengan kubelet lewat CNI. Kalau kalian belum paham arah paket data, semua konfigurasi akan terasa seperti menebak.

Episode 0 ini adalah peta jalan kalian: kita akan memastikan skill dasar, menyiapkan cluster uji minimal dua node, menginstall Flannel v0.28.x, dan melakukan verifikasi pertama. Setelah episode ini selesai, seluruh series bisa diikuti dengan nyaman.

Skill Dasar yang Wajib Dikuasai

Kubernetes: Pod, Service, dan Node Networking

Kalian wajib nyaman dengan konsep Pod, Service, Deployment, dan DaemonSet, karena Flannel di-install sebagai DaemonSet di setiap node. Pahami juga perbedaan Pod network, yaitu alokasi IP per Pod, dengan Service network, yaitu virtual IP untuk load balancing. Dua lapisan ini dihandle oleh komponen yang berbeda, dan di episode 8 kita akan membedah batasnya.

Verifikasi akses cluster
kubectl cluster-info
kubectl get nodes -o wide

Pastikan perintah kubectl get nodes berjalan tanpa error dan menampilkan semua node dalam status Ready.

Konsep CNI dan Container Networking

CNI adalah standar interface antara container runtime, misalnya containerd atau CRI-O, dan plugin jaringan. Saat kubelet membuat Pod baru, dia memanggil plugin CNI melalui konfigurasi di /etc/cni/net.d. Flannel menyediakan plugin flannel yang mendelegasikan pembuatan bridge ke plugin bridge bawaan containernetworking/plugins. Pahami alur dasarnya: Pod dibuat, CNI dipanggil, interface veth dibuat, IP diambil dari subnet node, lalu ditambahkan ke bridge.

Linux Networking: VXLAN, Bridge, dan Kernel Module

Backend default Flannel memakai VXLAN, jadi pahami encapsulation UDP. Kalian juga perlu paham route di kernel, bridge, dan FDB. Pastikan modul kernel br_netfilter, overlay, dan vxlan tersedia di semua node:

Cek modul kernel
lsmod | grep -E "br_netfilter|overlay|vxlan"
sudo modprobe br_netfilter
sudo sysctl -w net.bridge.bridge-nf-call-iptables=1

Perintah sudo modprobe br_netfilter memuat modul yang penting sejak kubeadm 1.30. Detailnya akan kita bahas lebih dalam di episode 7.

Perangkat Lunak dan Tools yang Disiapkan

CLI: kubectl dan helm

Install kubectl dengan versi yang cocok dengan cluster kalian, plus helm sebagai opsi instalasi kedua:

Verifikasi CLI
kubectl version --client
helm version

Kalian akan memakai kubectl apply untuk manifest dan helm install untuk chart.

Cluster Uji: kind, minikube, atau kubeadm

Untuk menguji multi-node, gunakan salah satu pendekatan: kind yang menjalankan seluruh node dalam container Docker, minikube dengan driver tertentu, atau kubeadm di mesin virtual. Minimal dua node: satu control plane dan satu worker. Flannel yang ringan sangat cocok untuk kind karena cepat di-bootstrap dan hemat sumber daya.

Flannel v0.28.x dan CNI Plugins

Kita akan memakai Flannel versi v0.28.x, latest stable per penulisan series ini, lewat manifest resmi kube-flannel.yml atau Helm chart flannel/flannel. CNI plugins seperti bridge, portmap, dan bandwidth otomatis dibawa oleh DaemonSet Flannel dan dipasang ke /opt/cni/bin di tiap node.

Membangun Cluster Uji Multi-node

Cluster kind Tiga Node

Simpan konfigurasi berikut sebagai kind-flannel.yaml:

Cluster kind tiga node
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
  - role: control-plane
  - role: worker
  - role: worker
networking:
  podSubnet: 10.244.0.0/16

Lalu buat cluster:

Buat cluster kind
kind create cluster --config kind-flannel.yaml
kubectl get nodes -o wide

Pastikan podSubnet: 10.244.0.0/16 konsisten dengan default Flannel. Jika memakai cluster yang sudah ada dengan CIDR berbeda, kalian harus menyesuaikan net-conf.json seperti yang dibahas di episode 3.

Cluster kubeadm dengan pod-network-cidr

Jika memakai kubeadm, inisialisasi control plane dengan CIDR default Flannel:

Init kubeadm
sudo kubeadm init --pod-network-cidr=10.244.0.0/16

Setelah itu ikuti perintah kubeadm join yang ditampilkan untuk setiap worker node.

Konfigurasi br_netfilter di Tiap Node

Di semua node, pastikan sysctl jaringan bridge aktif:

Aktifkan br_netfilter
sudo modprobe br_netfilter
echo 1 | sudo tee /proc/sys/net/bridge/bridge-nf-call-iptables

Setting net.bridge.bridge-nf-call-iptables=1 memastikan paket dari Pod yang melewati bridge ikut difilter iptables. Ini penting agar kube-proxy bekerja benar dan wajib disetel sejak kubeadm 1.30.

Verifikasi Environment

Install Flannel dan Cek Status

Untuk cluster satu node, lepas taint control plane terlebih dahulu, lalu install Flannel:

Hapus taint (cluster satu node)
kubectl taint nodes --all node-role.kubernetes.io/control-plane-
Install Flannel
kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml
kubectl get pods -n kube-flannel -o wide

Tunggu sampai semua Pod kube-flannel berstatus Running, lalu cek interface overlay:

Cek interface flannel.1
ip -d link show flannel.1

Cek Konektivitas Antar Node

Deploy dua Pod yang tersebar di node berbeda, lalu uji koneksi antar Pod:

Uji konektivitas
kubectl create deployment nginx --image=nginx --replicas=2
kubectl get pods -o wide
kubectl exec -it <pod-worker-1> -- curl <ip-pod-worker-2>

Jika curl berhasil, environment kalian siap untuk seluruh series. Detail cara kerja di balik layar akan dibedah mulai episode 2.

Ringkasan Skill yang Harus Dikuasai

Rangkuman prasyarat yang sudah kalian siapkan di episode 0:

  • Kubernetes: Pod, Service, DaemonSet, dan alur CNI.
  • Linux networking: VXLAN, bridge, route, dan modul kernel br_netfilter.
  • CLI: kubectl, helm, ip, dan bridge.
  • Cluster uji multi-node dengan CIDR 10.244.0.0/16.
  • Flannel v0.28.x terinstall dan interface flannel.1 terbentuk.
  • Verifikasi pertama: dua Pod di node berbeda bisa saling terhubung.

Penutup

Di episode 0 ini kalian sudah menyiapkan pijakan untuk seluruh series: memahami skill dasar Kubernetes dan Linux networking, membangun cluster uji multi-node, menginstall Flannel v0.28.x, dan memverifikasi konektivitas Pod pertama kali.

Inti yang harus dibawa pulang:

  • Flannel bekerja di lapisan jaringan host: kuasai dulu VXLAN, bridge, dan routing.
  • Cluster uji harus memakai CIDR yang konsisten dengan net-conf.json Flannel.
  • Modul br_netfilter wajib aktif sejak kubeadm 1.30.
  • Install Flannel lewat manifest resmi kube-flannel.yml atau Helm chart.
  • Verifikasi pertama: interface flannel.1 ada dan dua Pod lintas node saling terhubung.

Di episode 1 selanjutnya kita akan membahas sejarah, latar belakang, dan mengapa membutuhkan Flannel — dari kelahiran Flannel oleh CoreOS pada 2014, masalah konektivitas Pod lintas node yang dia selesaikan, hingga posisinya sebagai salah satu CNI paling banyak diadopsi. Pastikan cluster uji kalian sudah siap, karena perjalanan Belajar Flannel baru saja dimulai!

Belajar Flannel - Pre-Requisites Skill & Setup Environment | Belajar Flannel