0
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でkuberneteの構築失敗したのでやりなおしたい場合

0
Last updated at Posted at 2025-06-14

備忘録として。

kubeadmでクラスタ構築したけど、作り直したい場合。

リセット

kubernetesクラスタにWorkerノードがすでに参加している場合、最初にWorkerノードをクラスタから切り離す。

vagrant@master:~$ kube get node  -owide
NAME       STATUS   ROLES           AGE     VERSION   INTERNAL-IP     EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION       CONTAINER-RUNTIME
master     Ready    control-plane   3h10m   v1.33.1   192.168.56.53   <none>        Ubuntu 22.04.5 LTS   5.15.0-133-generic   containerd://2.1.1
worker01   Ready    <none>          11m     v1.33.1   192.168.56.54   <none>        Ubuntu 22.04.5 LTS   5.15.0-133-generic   containerd://2.1.1

worker01ノードをクラスタから切り離す。

#### Masterノードで実施
kubectl drain worker01 --ignore-daemonsets --force
kubectl delete node worker01

その後、Masterノード、Workerノードをリセットしてkubeadm initもしくはkubeadm join前の状態に戻す。

# Masterノード、Workerノードで実施
sudo kubeadm reset

徹底的に削除したい

kubeadm resetで再度kubeadm initkubeadm joinコマンドが実行可能だが、徹底的にやる場合は以下を実施。

# リセットして、
sudo kubeadm reset

# 不要なリソースを削除する
sudo -i
# rootになって実施
rm /etc/cni/net.d/*
exit

### これはMasterノードのみで実施
rm -rf $HOME/.kube

# Master、Workerで実施
sudo systemctl daemon-reload && systemctl restart kubelet
sudo systemctl restart containerd

CNI PluginのCalicoで自動的に追加されたインタフェースがある。これを削除する場合は以下のようにする。

まず、インタフェースを確認する。

vagrant@master:~$ ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
...
5: caliaf531080a37@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UP mode DEFAULT group default qlen 1000
    link/ether ee:ee:ee:ee:ee:ee brd ff:ff:ff:ff:ff:ff link-netns cni-cf33e935-e4aa-eec3-bc58-a5d164c5f6ab
7: vxlan.calico: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/ether 66:4f:26:ae:af:db brd ff:ff:ff:ff:ff:ff
10: calie1aeac4cf5f@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UP mode DEFAULT group default qlen 1000
    link/ether a2:a2:a2:1b:38:59 brd ff:ff:ff:ff:ff:ff link-netns cni-f4e44043-0cc0-a2cb-185a-e18fdba18f09
12: calid21caa8b1d5@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UP mode DEFAULT group default qlen 1000
    link/ether ee:ee:ee:ee:ee:ee brd ff:ff:ff:ff:ff:ff link-netns cni-bcf32302-a7fb-776e-9f4b-5559afa556a2
...

インターフェスを削除する

#### 10番目のインタフェース削除する場合
# 最後の"@if2"は不要
vagrant@master:~$ sudo ip link delete calie1aeac4cf5f
vagrant@master:~$ 

【参考】CalicoのPodとインタフェースの紐付け調査

ここに書かれているのを参照
https://docs.tigera.io/calico/latest/operations/troubleshoot/commands#verify-bird-routing-table

多数生成されるインタフェースは一体誰が使っているかわからなかったので調査。
Masterノードのインタフェースが以下の場合で調べた(上記とは別環境なので、出力結果が違う)

vagrant@master:~$ ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 08:00:27:bb:59:20 brd ff:ff:ff:ff:ff:ff
    altname enp0s3
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 08:00:27:b6:29:ad brd ff:ff:ff:ff:ff:ff
    altname enp0s8
4: cali3fc5fbbf17f@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
    link/ether ee:ee:ee:ee:ee:ee brd ff:ff:ff:ff:ff:ff link-netns cni-76a6497a-bebc-9d15-c2b8-77c938a49e39
5: cali64cc9c535b5@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
    link/ether ee:ee:ee:ee:ee:ee brd ff:ff:ff:ff:ff:ff link-netns cni-79b0b379-ea30-4d92-f9bc-0c98239184c6
6: vxlan.calico: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/ether 66:4f:26:ae:af:db brd ff:ff:ff:ff:ff:ff
9: calia6a1e93a1b7@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UP mode DEFAULT group default qlen 1000
    link/ether ee:ee:ee:ee:ee:ee brd ff:ff:ff:ff:ff:ff link-netns cni-cb971158-c2e8-d4ee-a68a-c683fec71a07
・・・(以下省略)

一例として、インタフェース番号4は誰が使っているか調べたい場合。

# 誰が使っているかわからず、削除していいか判断できない
4: cali3fc5fbbf17f@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
    link/ether ee:ee:ee:ee:ee:ee brd ff:ff:ff:ff:ff:ff link-netns cni-76a6497a-bebc-9d15-c2b8-77c938a49e39

まずMasterノードにあるcalico-nodeのPodにログインする。PodのIPアドレスも一緒に出力。

vagrant@master:~$ kubectl get pod -n calico-system  -o wide
NAME                                       READY   STATUS    RESTARTS   AGE    IP              NODE       NOMINATED NODE   READINESS GATES
calico-kube-controllers-6b6994fdd6-7ttvb   1/1     Running   0          124m   172.16.219.68   master     <none>           <none>
#### 2つのcalico-nodeのPodが起動している
calico-node-gr6nv                          1/1     Running   0          104m   192.168.56.54   worker01   <none>           <none>
calico-node-tzqw5                          1/1     Running   0          124m   192.168.56.53   master     <none>           <none>
calico-typha-857b85895b-ctkfv              1/1     Running   0          124m   192.168.56.53   master     <none>           <none>
csi-node-driver-b7qvv                      2/2     Running   0          124m   172.16.219.66   master     <none>           <none>
csi-node-driver-znnnp                      2/2     Running   0          104m   172.16.5.1      worker01   <none>           <none>
goldmane-7b5b4cd5d9-64dw4                  1/1     Running   0          124m   172.16.219.71   master     <none>           <none>
whisker-54c879f689-hkjvf                   2/2     Running   0          123m   172.16.219.65   master     <none>           <none>

### Podにログイン
vagrant@master:~$ kubectl exec -it calico-node-tzqw5 -n calico-system -- /bin/bash
Defaulted container "calico-node" out of: calico-node, flexvol-driver (init), install-cni (init)
[root@master /]# 

マニュアルに記載されている通りだが、calico-node Podのルーティング情報を確認

[root@master /]# birdcl
BIRD v0.3.3+birdv1.6.8 ready.
bird> 
bird> 
bird> show route
0.0.0.0/0          via 10.0.2.2 on eth0 [kernel1 05:11:48] * (10)
10.0.2.2/32        dev eth0 [kernel1 05:11:48] * (10)
10.0.2.3/32        dev eth0 [kernel1 05:11:48] * (10)
10.0.2.0/24        dev eth0 [direct1 05:11:48] * (240)
172.16.219.72/32   dev cali291a4aaa4c0 [kernel1 05:11:52] * (10)
172.16.219.69/32   dev calia028773404b [kernel1 05:11:49] * (10)
172.16.219.68/32   dev calife2b2c2b923 [kernel1 05:11:49] * (10)
172.16.219.71/32   dev cali3c5bd8e8442 [kernel1 05:11:51] * (10)
172.16.219.70/32   dev cali7d14e42f8cf [kernel1 05:11:50] * (10)
###### cali3fc5fbbf17fのIF発見
172.16.219.65/32   dev cali3fc5fbbf17f [kernel1 05:11:48] * (10)
172.16.219.64/26   blackhole [static1 05:11:48] * (200)
                   blackhole [kernel1 05:11:48] (10)
172.16.219.64/32   dev vxlan.calico [direct1 05:11:48] * (240)
172.16.219.67/32   dev calia6a1e93a1b7 [kernel1 05:11:49] * (10)
172.16.219.66/32   dev cali64cc9c535b5 [kernel1 05:11:48] * (10)
192.168.56.0/24    dev eth1 [direct1 05:11:48] * (240)
172.16.5.0/26      via 192.168.56.54 on eth1 [Mesh_192_168_56_54 05:31:28] * (100/0) [i]
                   via 192.168.56.54 on eth1 [Mesh_192_168_56_54 05:31:28] (100/0) [i]
                   via 192.168.56.54 on eth1 [kernel1 05:31:21] (10)
172.16.5.0/32      via 192.168.56.54 on eth1 [kernel1 05:31:22] * (10)
bird> 

cali3fc5fbbf17fのIFは172.16.219.65/32が利用。
このIP使っているPodは先ほど調べたIP付きのPodの一覧からわかる。

whisker-54c879f689-hkjvf                   2/2     Running   0          123m   172.16.219.65   master     <none>           <none>

とインタフェースとPodの紐付けが可能。
だからなんだ、と言われてると困るのだが。。

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