Flanel adalah cara sederhana dan mudah untuk mengonfigurasi fabric jaringan lapisan 3 yang dirancang untuk Kubernetes.
Flannel menjalankan agen biner tunggal kecil yang disebut flanneld
pada setiap host, dan bertanggung jawab untuk mengalokasikan sewa subnet ke setiap host dari ruang alamat yang lebih besar dan telah dikonfigurasi sebelumnya. Flannel menggunakan API Kubernetes atau dll secara langsung untuk menyimpan konfigurasi jaringan, subnet yang dialokasikan, dan data tambahan apa pun (seperti IP publik host). Paket diteruskan menggunakan salah satu dari beberapa mekanisme backend termasuk VXLAN dan berbagai integrasi cloud.
Platform seperti Kubernetes berasumsi bahwa setiap container (pod) memiliki IP unik dan dapat dirutekan di dalam cluster. Keuntungan model ini adalah menghilangkan kompleksitas pemetaan port yang timbul dari berbagi IP host tunggal.
Flanel bertanggung jawab untuk menyediakan jaringan IPv4 lapisan 3 antara beberapa node dalam sebuah cluster. Flanel tidak mengontrol bagaimana container dihubungkan ke jaringan host, hanya bagaimana lalu lintas diangkut antar host. Namun, flanel menyediakan plugin CNI untuk Kubernetes dan panduan tentang integrasi dengan Docker.
Flanel fokus pada jaringan. Untuk kebijakan jaringan, proyek lain seperti Calico dapat digunakan.
Cara termudah untuk menerapkan flanel dengan Kubernetes adalah dengan menggunakan salah satu dari beberapa alat penerapan dan distribusi yang mengelompokkan jaringan dengan flanel secara default. Misalnya, K3 menyiapkan kain flanel di kluster Kubernetes yang dibuatnya menggunakan Penginstal K3s sumber terbuka untuk mendorong proses penyiapan.
Meskipun tidak diwajibkan, disarankan agar flanel menggunakan API Kubernetes sebagai penyimpanan pendukungnya sehingga menghindari kebutuhan untuk menerapkan klaster diskrit etcd
untuk flannel
. Mode flannel
ini dikenal sebagai manajer subnet kube .
Flanel dapat ditambahkan ke kluster Kubernetes mana pun yang sudah ada, namun yang paling mudah adalah menambahkan flannel
sebelum pod apa pun yang menggunakan jaringan pod dimulai.
Untuk Kubernetes v1.17+
kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml
Jika Anda menggunakan podCIDR
khusus (bukan 10.244.0.0/16
), Anda harus mengunduh manifes di atas terlebih dahulu dan memodifikasi jaringan agar sesuai dengan jaringan Anda.
# Needs manual creation of namespace to avoid helm error
kubectl create ns kube-flannel
kubectl label --overwrite ns kube-flannel pod-security.kubernetes.io/enforce=privileged
helm repo add flannel https://flannel-io.github.io/flannel/
helm install flannel --set podCidr= " 10.244.0.0/16 " --namespace kube-flannel flannel/flannel
Lihat Kubernetes untuk detail selengkapnya.
Jika firewall dikonfigurasi, pastikan untuk mengaktifkan port yang tepat yang digunakan oleh backend yang dikonfigurasi.
Flanel menggunakan portmap
sebagai plugin jaringan CNI secara default; saat menggunakan Flannel, pastikan plugin Jaringan CNI diinstal di /opt/cni/bin
binari terbaru dapat diunduh dengan perintah berikut:
ARCH= $( uname -m )
case $ARCH in
armv7 * ) ARCH= " arm " ;;
aarch64) ARCH= " arm64 " ;;
x86_64) ARCH= " amd64 " ;;
esac
mkdir -p /opt/cni/bin
curl -O -L https://github.com/containernetworking/plugins/releases/download/v1.6.0/cni-plugins-linux- $ARCH -v1.6.0.tgz
tar -C /opt/cni/bin -xzf cni-plugins-linux- $ARCH -v1.6.0.tgz
Flannel memerlukan modul br_netfilter untuk memulai dan dari versi 1.30 kubeadm tidak memeriksa apakah modul telah diinstal dan Flannel tidak akan memulai dengan benar jika modul hilang.
kain flanel juga banyak digunakan di luar kubernetes. Saat diterapkan di luar kubernetes, etcd selalu digunakan sebagai penyimpanan data. Untuk detail lebih lanjut tentang mengintegrasikan kain flanel dengan Docker, lihat Menjalankan
Komunitas Pemelihara Flanel mengadakan pertemuan setiap dua hari Kamis pukul 08.30 PST. Pertemuan ini digunakan untuk membahas permasalahan, open pull request, dan topik lain terkait Flanel jika diperlukan.
Agenda pertemuan dan tautan Tim dapat ditemukan di sini: Agenda Pertemuan Komunitas Flanel
Lihat BERKONTRIBUSI untuk rincian tentang pengiriman patch dan alur kerja kontribusi.
Lihat pelaporan bug untuk detail tentang pelaporan masalah apa pun.
Flanel berada di bawah lisensi Apache 2.0. Lihat file LISENSI untuk detailnya.