CentOS7 部署K8S集群成功后,重启就不能用了???k8s环境自启动

时间:2024-03-10 20:56:12

如题,踩了一堆坑后,终于把项目部署到k8s,但是每次重启,都要初始化???不科学啊,找了一堆资料,记录下踩坑过程:

一、准备工作

  如果你的项目还没在k8s环境下部署成功,建议看看其他几篇文档:

  1、安装虚拟机:https://www.cnblogs.com/CoderLinkf/p/12393993.html

  2、集群部署:https://www.cnblogs.com/CoderLinkf/p/12395710.html

  3、项目部署:https://www.cnblogs.com/CoderLinkf/p/12408589.html

二、问题说明

  我们在部署项目的时候发现一个问题,部署完k8s,机子重启后,需要关闭防火墙,swap,重置k8s环境,重新安装,并且重新将node join进来。情况就是在使用kubectl get nodes时出现6443端口占用

 

 

 查看状态,发现没有运行,于是,开始找解决方法

三、解决问题

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

systemctl stop firewalld.service
systemctl disable firewalld.service

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

  yum install iptables -y

  yum install iptables-services

  安装成功

 

  接下来,配置规则,编辑文件

  vi /etc/sysconfig/iptables

  

  这里说一下文件,一般简单配置开放端口,就是按端口顺序在

  -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

  node节点:

-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这一行注释掉

  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

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