K8s ❉ node节点未找到cni0/flannel.1网络

问题描述:

        现有测试环境有3台k8s服务器,现在新添加两台服务器,发现新加的服务器flannel.1和cni0网卡没有生成

[root@slave1 ~]# ifconfig
docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255
        ether 02:42:99:7b:ac:77  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.247.137  netmask 255.255.255.0  broadcast 192.168.247.255
        inet6 fe80::e506:6851:fb1e:4f55  prefixlen 64  scopeid 0x20<link>
        inet6 fe80::5082:19ec:92f7:a4f  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:40:b9:ac  txqueuelen 1000  (Ethernet)
        RX packets 1139  bytes 355392 (347.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 876  bytes 118103 (115.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

排查

1 检查master节点的flannel服务

[root@master ~]# kubectl get pods -n kube-system | grep flannel
kube-flannel-ds-amd64-9ccf7      1/1     Running            0          7m23s
kube-flannel-ds-amd64-j8q9w      1/1     Running            0          7m23s
kube-flannel-ds-amd64-t6wxg      1/1     Running            0          7m23s

        如果master节点没有找到对应的flannel服务,执行kubeadm reset,并重新生成flannel服务

kubeadm reset
rm -rf /etc/kubernetes/admin.conf 
rm -rf $HOME/.kube/config

2 重置flannel网络

(1)删除node节点(master操作)

kubectl delete node xxx

(2)node 节点删除cni和flannel网卡(node操作)

kubeadm reset

ifconfig cni0 down
ifconfig flannel.1 down
ifconfig del flannel.1
ifconfig del cni0

ip link del flannel.1
ip link del cni0

# 命令执行过程中可能会有报错,有的网卡不存在则忽视
# 后面重新加入后会生成的

(3)加入节点准备工作(master操作)

# 通过 kubedam 重新生成 token
[root@master ~]# kubeadm token create --print-join-command
~~
kubeadm join 192.168.247.136:6443 --token x5phh9.9lpb629032p7dseb     --discovery-token-ca-cert-hash sha256:bd23534d635b46f5316f0d388bd88853a6ddb47b1c04129bf25ea31cdbbfba4a 

# 将文件传输至node
[root@master ~]# scp /etc/kubernetes/admin.conf 
usage: scp [-12346BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
           [-l limit] [-o ssh_option] [-P port] [-S program]
           [[user@]host1:]file1 ... [[user@]host2:]file2
[root@master ~]# scp /etc/kubernetes/admin.conf  root@192.168.247.137:/etc/kubernetes/admin.conf
root@192.168.247.137's password: 
admin.conf                                                                    100% 5451     3.1MB/s   00:00 

(4)node加入集群

[root@slave1 ~]# kubeadm join 192.168.247.136:6443 --token x5phh9.9lpb629032p7dseb     --discovery-token-ca-cert-hash sha256:bd23534d635b46f5316f0d388bd88853a6ddb47b1c04129bf25ea31cdbbfba4a
~~~

This node has joined the cluster:
* Certificate signing request was sent to apiserver and a response was received.
* The Kubelet was informed of the new secure connection details.

Run 'kubectl get nodes' on the control-plane to see this node join the cluster.

# 加入成功

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
安装Flannel网络插件需要以下步骤: 1. 在所有节点上安装flannel二进制文件: ```bash $ wget https://github.com/coreos/flannel/releases/download/v0.13.0/flannel-v0.13.0-linux-amd64.tar.gz $ tar -xvf flannel-v0.13.0-linux-amd64.tar.gz $ cd flannel-v0.13.0-linux-amd64 $ sudo cp flanneld /usr/local/bin/ $ sudo cp mk-docker-opts.sh /usr/local/bin/ ``` 2. 创建flannel配置文件 `/etc/kubernetes/cni/net.d/10-flannel.conf`: ```bash { "cniVersion": "0.3.1", "name": "flannel", "type": "flannel", "delegate": { "isDefaultGateway": true } } ``` 3. 在所有节点上启动flannel服务: ```bash $ sudo systemctl start flanneld ``` 4. 验证flannel是否运行正常: ```bash $ sudo systemctl status flanneld ``` 5. 在Master节点上检查kubelet配置文件 `/etc/kubernetes/kubelet.conf`是否包含以下内容: ```yaml apiVersion: v1 clusters: - cluster: certificate-authority: /etc/kubernetes/pki/ca.crt server: https://127.0.0.1:6443 name: kubernetes contexts: - context: cluster: kubernetes user: system:node:<node-name> name: default current-context: default kind: Config preferences: {} users: - name: system:node:<node-name> user: client-certificate: /etc/kubernetes/pki/apiserver-kubelet-client.crt client-key: /etc/kubernetes/pki/apiserver-kubelet-client.key ``` 6. 在Master节点上创建kube-flannel.yml文件: ```yaml apiVersion: v1 kind: ConfigMap metadata: name: kube-flannel-cfg namespace: kube-system labels: tier: node app: flannel data: cni-conf.json: | { "name": "cbr0", "cniVersion": "0.3.1", "plugins": [ { "type": "flannel", "delegate": { "isDefaultGateway": true } }, { "type": "portmap", "capabilities": { "portMappings": true } } ] } net-conf.json: | { "Network": "10.244.0.0/16", "Backend": { "Type": "vxlan" } } --- apiVersion: extensions/v1beta1 kind: DaemonSet metadata: name: kube-flannel-ds namespace: kube-system labels: tier: node app: flannel spec: updateStrategy: type: RollingUpdate selector: matchLabels: tier: node app: flannel template: metadata: labels: tier: node app: flannel spec: hostNetwork: true containers: - name: kube-flannel image: quay.io/coreos/flannel:v0.13.0-rc2 command: - /opt/bin/flanneld args: - --ip-masq - --kube-subnet-mgr - --iface=$(POD_IP) env: - name: POD_IP valueFrom: fieldRef: fieldPath: status.podIP securityContext: privileged: true volumeMounts: - name: flannel-cfg mountPath: /etc/kube-flannel/ volumes: - name: flannel-cfg configMap: name: kube-flannel-cfg - name: run hostPath: path: /run type: "" ``` 7. 在Master节点上应用kube-flannel.yml: ```bash $ kubectl apply -f kube-flannel.yml ``` 8. 检查所有节点上的flannel是否运行正常: ```bash $ kubectl get pods -n kube-system ``` 如果所有节点上的flannel状态都是Running,则表示flannel网络插件安装成功。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值