3、使k8s集群重启后能正常使用

前言

把项目部署到k8s,但是每次重启虚拟机,k8s集群崩了,那我每次重启都要初始化???不科学啊,找了一堆资料,记录下踩坑过程:

发现问题

我们在部署项目的时候发现一个问题,部署完k8s,机子重启后,需要关闭防火墙,swap,重置k8s环境,重新安装,并且重新将node join进来。情况就是在使用kubectl get nodes时出现6443端口占用
3、使k8s集群重启后能正常使用_第1张图片
查看状态,发现没有运行,于是,开始找解决方法

解决问题

1、关闭防火墙(不安全的做法),但是,每次重启,防火墙也开启,所以彻底关掉它

systemctl stop firewalld.service
systemctl disable firewalld.service

2、关闭防火墙之后,既然是不安全的做法,我们来使用iptables配置规则:

yum install iptables -y

yum install iptables-services

安装成功
在这里插入图片描述
接下来,配置规则,编辑文件

vi /etc/sysconfig/iptables

3、使k8s集群重启后能正常使用_第2张图片
这里说一下文件,一般简单配置开放端口,就是按端口顺序在

-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT

上下添加配置,连续的端口可以使用“:”号,比如,100:200表示一百到两百间的端口,100:表示一百以上的端口,:200表示两百以下端口。
  
贴出配置:
master节点:

-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 443 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 2379:2380 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 6443 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 10250:10255 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 30000:32767 -j ACCEPT

worker节点:

-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 443 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 10250:10255 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 30000:32767 -j ACCEPT

保存文件后执行以下命令:

service iptables save
systemctl start iptables.service
systemctl enable iptables.service

3、设置swap关闭

需要关闭交换内存

swapoff -a

修改/etc/fstab文件

vi /etc/fstab
# 将文件中的/dev/mapper/centos-swap swap swap defaults 0 0这一行注释掉

修改/etc/sysctl.d/k8s.conf文件

vi /etc/sysctl.d/k8s.conf

# 添加一行
vm.swappiness=0

执行命令:

sysctl -p /etc/sysctl.d/k8s.conf

4、让kubelet自启

最后,在master,node节点中,都要让kubelet自启

systemctl start kubelet
systemctl enable kubelet

这样,就不怕重启后要做一系列的操作了

你可能感兴趣的:(系统运维,kubernetes,docker,容器)