kubeadm init成功后遇到的问题

来源:4-7 初始化Kubernetes Master

动作100分

2021-08-12

老师,我的kubeadm init成功后,kubectl get node一开始是能获取到节点的,但是过了一会就会挂掉。
使用systemctl restart kubelet后,过一会也会挂掉,这种情况应该怎么排查原因呢?图片描述

图片描述

之后我查看docker容器发现有几个组件没起来
图片描述

图片描述

journalctl -u kubelet的日记是:
图片描述

写回答

2回答

清风

2021-08-12

kubectl get pod -n kube-system

看下哪些服务没起来

0
0

清风

2021-08-12


> 如果启动失败提升kubelet 没有启动则可以启动 kubelet 再执行kubeadm reset init。

```

mkdir -p $HOME/.kube

sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

sudo chown $(id -u):$(id -g) $HOME/.kube/config

```

- 配置KUBECONFIG 环境变量

```

echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile

```


- 安装网络插件 Flannel只需要在 Master 安装 flannel

可以使用课程代码库的文件

Clone 课程代码

```

git clone https://git.imooc.com/coding-464/kubeblog.git

```


```

kubectl apply -f kubeblog/docs/Chapter4/flannel.yaml

```



- 查看是否成功创建flannel网络

```

ifconfig |grep flan

flannel.1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1450

```

等待大约 10 分钟检查Kubernetes master运行情况

```

[root@localhost ~]# kubectl get node

NAME     STATUS   ROLES    AGE   VERSION

master   Ready    master   10m   v1.19.3

```

所有 pod 都应该成功运行

![图片描述](//img.mukewang.com/wiki/6016bd4709485b6516740674.jpg)


## 错误排查

如果状态是 NotReady, 执行

```

kubectl get pod -n kube-system

```

如果有 pod 处于 pending 状态说明是在下载镜像等待即可如果状态是 fail则很可能是镜像拉取失败此时需要手动拉取。



- 如果提示 ifconfig not found, 则需要在 centos 系统里安装 net-tools

```

yum install net-tools -y

```

- 查看 flannel 网络插件部署状态

```

kubectl get po -n kube-system

```

- 如果出现“node 'master' not found 错误

```

检查权限

chmod 777 /run/flannel/subnet.env

```

如果 flannel pod 启动失败执行

```

kubectl describe pod  kube-flannel-ds-hd6lf -n kube-system

```

如果是镜像拉取失败修改 flannel 的镜像路径为阿里云的镜像registry.cn-beijing.aliyuncs.com/qingfeng666/flannel:v0.13.0。再执行

```

 docker pull registry.cn-beijing.aliyuncs.com/qingfeng666/flannel:v0.13.0

```

再创建 flannel pod


- 查看运行的 Kubernetes 组件

```

docker ps

```

- 如果出现“The connection to the server 192.168.99.101:6443 was refused - did you specify the right host or port?”错误

先执行 `kubectl get po -n kube-system`查看所有服务是否正常启动如果某个服务启动失败则执行

```

kubectl describe pod <pod name> -n kube-system

```

查看错误原因。

如果出现 flannel 镜像拉取失败则需要手动拉取 flannel 镜像再重复 init。


- 如果重装 kubeadm 主节点或者 worker 节点在 reset 之后要执行删除 cni0 网卡的命令

```

sudo ifconfig cni0 down    

sudo ip link delete cni0

```


0
0

Kubernetes 入门到进阶实战,系统性掌握 K8s 生产实践

阿里云最有价值专家亲授,云原生时代必备技能

1502 学习 · 613 问题

查看课程