1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

kubeadm&flannelでKubernetesクラスタ構築した際のエラーとその解決策

Last updated at Posted at 2024-05-19

目的

kubeadmでコントロールプレーン初期化後、flannelをデプロイした際に発生したエラーと
その解決法をご紹介します。

環境

  • Oracle VM VirtualBox 7.0.12
  • ゲストOS:CentOS7.9
  • kubeadm:1.30.1
  • flannel:0.25.1

クラスタ構成.png

実行したこと

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
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?