目的
kubeadmでコントロールプレーン初期化後、flannelをデプロイした際に発生したエラーと
その解決法をご紹介します。
環境
- Oracle VM VirtualBox 7.0.12
- ゲストOS:CentOS7.9
- kubeadm:1.30.1
- flannel:0.25.1
実行したこと
kubeadmでクラスタ作成
以下コマンドでコントロールプレーンノードの初期化を行いました。
(これが後のエラーの原因になるので記載します)
kubeadm init --apiserver-advertise-address=192.168.22.11 --pod-network-cidr=10.255.0.0/16
flannelインストール
以下コマンドでflannelをデプロイします
kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml
flannelのPodが起動しているか確認すると、エラーになっていました。
# kubectl get pods --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-flannel kube-flannel-ds-vdxlk 0/1 Error 6 (4m6s ago) 7m33s
kube-system coredns-7db6d8ff4d-5wwkg 0/1 ContainerCreating 0 12m
kube-system coredns-7db6d8ff4d-mrmh8 0/1 ContainerCreating 0 12m
kube-system etcd-master01 1/1 Running 0 12m
kube-system kube-apiserver-master01 1/1 Running 0 12m
kube-system kube-controller-manager-master01 1/1 Running 0 12m
kube-system kube-proxy-p8mxz 1/1 Running 0 12m
kube-system kube-scheduler-master01 1/1 Running 0 12m
ログ確認
エラーの原因を探るため、Podのログを確認します。
# kubectl logs -n kube-flannel kube-flannel-ds-vdxlk
(省略)
E0518 06:27:33.516770 1 main.go:333] Error registering network: failed to acquire lease: subnet "10.244.0.0/16" specified in the flannel net config doesn't contain "10.255.0.0/24" PodCIDR of the "master01" node
I0518 06:27:33.516792 1 main.go:422] Stopping shutdownHandler...
flannelで指定されたサブネット10.244.0.0/16はPodCIDRの10.255.0.0/24に含まれないためエラーが出ているようです。
flannelのyamlファイルをダウンロードして設定を確認してみると、確かに10.244.0.0/16が指定されていました。
# view kube-flannel.yml
(省略)
net-conf.json: |
{
"Network": "10.244.0.0/16",
"Backend": {
"Type": "vxlan"
}
}
(省略)
解決策
flannelで使用するサブネットは、コントロールプレーン初期化時に「--pod-network-cidr」で指定したサブネットを指定します。
今回は10.255.0.0/16を指定したので、flannelで指定するサブネットも10.255.0.0/16にしてみたところ、正常に起動しました。
# sed -i 's/10.244.0.0\/16/10.255.0.0\/16/' kube-flannel.yml
# kubectl apply -f kube-flannel.yml
# kubectl delete pods -n kube-flannel kube-flannel-ds-vdxlk
# kubectl get pods -n kube-flannel
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-flannel kube-flannel-ds-dfvmh 1/1 Running 0 8s