個人的 Kubernetes のネットワーク理解
目標
Kubernetes のネットワークについて理解する
CNI とか CoreDNS とか
Linux のところまで深堀りする
iptables, eBPF とか
話の流れ
Kubernetes のコンポーネントの紹介
コンポーネントそれぞれの説明 (一部詳細は省く)
理由はネットワークと関連しないため
ClusterIP の振られ方
CoreDNS の説明
CNI (Container Network Interface) の説明
CNI 関連で Calico や flannel, Cilium の説明
Calico や Cilium で使われている eBPF の説明
あまり扱わないこと
PersistentVolume 関連
Ingress 関連
今回は Ingress よりレイヤーが低いところを扱うため
本編
Kubernetes:
発音: koo-ber-nay'-tace
略称として k8s (k-eight-s) とか呼ばれたりする
Web: https://kubernetes.io/
Kubernetes のコンポーネントとして以下がある:
control-plane は master ノードにしかないそれ以外は共通
control-plane:
kube-apiserver
etcd
分散 KVS, Raft アルゴリズムを使っている
kube-scheduler
kube-controller-manager
cloud-controller-manager
Optional, 企業クラウド使う場合に必要
kubelet
kube-proxy
CRI (Container Runtime Interface)
e.g.) Docker, containerd, cri-o など
アドオン (主にネットワーク関連)
ここに CoreDNS や CNI が含まれる
参考文献
https://kubernetes.io/docs/concepts/overview/components/
https://www.cni.dev/
#tech #article #wip