重启后k8s主节点连不上了

Posted 毛奇志

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了重启后k8s主节点连不上了相关的知识,希望对你有一定的参考价值。

文章目录

找到问题

一、故障产生

在不关闭kubernets相关服务的情况下,对kubernets的master节点进行重启,模拟服务器的异常掉电,重启linux后,k8s的kube-apiserver无法正常启动的问题。

k8s主节点报错:The connection to the server localhost:6443 was refused - did you specify the right host or port?

之前使用正常,重启后,kube-apiserver无法启动:

二、故障状况

启动后无法远程到kubernets的dashbaord,后进行如下命令报错。

# kubectl get nodes
The connection to the server <master>:6443 was refused - did you specify the right host or port?

故障处理:

1.检查环境变量情况(正常)

# env | grep -i kub

2.检查docker服务(正常)

# systemctl status docker.service

3.检查kubelet服务(表面正常)

# systemctl status kubelet.service

4.查看端口是是否被监听(没有监听)

# netstat -pnlt | grep 6443

5.检查防火墙状态(正常)

# systemctl status firewalld.service

6.查看日志

# journalctl -xeu kubelet

解决问题

首先确认
1.防火墙已经关闭
2.selinux设置disabled完成
3.docker启动正常
4.kubelet运行状态active
5.docker images存在所需镜像

主节点操作(删除 + 重新初始化 + 安装网络插件)

1.kubectl 查看命令是否正常
2.cd ~ 进入根目录
3.ll -a 查看是否存在.kube文件
4.rm -rf .kube/ 删除 (重置和删除 主节点需要多删除一个.kube目录)
5.systemctl restart docker 重启docker (主节点上重启两个)
6.systemctl restart kubelet 重启kubelet (主节点上重启两个)
7.kubeadm reset 重置 (重置和删除)
8.rm -rf /etc/cni/ 删除 (重置和删除)
9.kubeadm init --kubernetes-version=v1.17.17 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/16 --ignore-preflight-errors=Swap 初始化节点

kubectl get pods -n kube-system
curl -k https://localhost:6443/healthz

10.初始化命令成功后,创建.kube目录三句(重新配置)

mkdir -p $HOME/.kube
cd .kube/
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown ( i d − u ) : (id -u):(id−u):(id -g) $HOME/.kube/config
  1. 安装网络插件两句 Pending到Running
# 在k8s中安装calico(这条命令很快的)
kubectl apply -f https://docs.projectcalico.org/v3.9/manifests/calico.yaml

# 确认一下calico是否安装成功  -w可以实时变化(看到calico都好了表示网络插件好了)
kubectl get pods --all-namespaces -w

13.查看节点,已经出现,查看6443端口号,已经出现

netstat -ntlp | grep 6443

work1从节点操作(删除 + 重新join集群)

1.kubeadm reset 重置 (重置和删除)

2.rm -rf /etc/cni/ (重置和删除) rm -rf .kube/

  1. 从节点加入集群
    kubeadm join x.x.x.x:6443 --token skagw4.hadivii9y393gvv9 --discovery-token-ca-cert-hash sha256:d4c5a34b948f221362c9796f7aba7d10711213a128e12b9c8da3d18843

  1. 重启从节点docker systemctl enable docker

成功:


参考:
问题描述
问题描述
解决方案

问题:这样从新搞一次之后,前面的命名空间,就都没了
应该只要 kubectl reset ,不需要rm -rf 吧

以上是关于重启后k8s主节点连不上了的主要内容,如果未能解决你的问题,请参考以下文章

linux服务器突然ssh远程连不上了

重启后为啥我不能ssh连不上机器

suse重启了系统为啥连不上了端口也不通,IP通端口却不通页面打不开,SSH连不上。

我公司的远程连接服务器连不上了

关闭VM时手贱想删除快照,但是导致死机,强行关机又开机后,为啥我的Xshell 连不上了,都可以ping通

解决Xshell连不上Linux问题