记一次失败的K8S安装部署

前言

某日,准备良久后,开始入K8S的坑。以下经历,惨不忍睹。

K8S 安装

K8S官方安装方式比较繁琐,有大神出了一键部署包。https://github.com/fanux/sealos。

安装最新版的K8S免费且简单。想安装其他版本的话,就收费了。离线安装包50一位。

想着自己只是测试,然后客户那边是v1.17。我装个v1.18的应该没啥问题,于是就直接开搞。安装无比顺利,两台机器,master是自己的开发机:ubuntu18.04。node新开了一台centos7.4。(当时没多想,后来坑死了)

服务部署

应用很简单。前后端两个Deployment、前后端各一个Service, 主要为了能在外部访问。
前期不太熟悉Service的部署方式,略微耗费了点时间,也还好,没啥大问题。

然后开心的启动服务,一切正常。 然后扭头搞别的事情去了。

问题出现

过了大概1个小时?突然发现服务访问不了了。在Service里配置了使用NodePort的方式,因此正常情况下我可以用任意一台node或master的IP来访问服务,但现在的情况是master可以,node不行。

一番苦思冥想,各种测试,外加谷歌大法,终于找到了个大神的文章:http://www.mydlq.club/article/78/。

恍然大悟,原来是v1.18的版本太新了,需要升级linux内核才能匹配。不过升级内核太麻烦,干脆换系统吧。于是一顿操作把node节点系统换成了centos8.1。这下内核版本没问题了,重启服务,发现两个节点访问都没问题。

很开心。

新的问题

过了30秒吧,突然发现master节点的服务不能访问了。node节点的访问也会报500。

进入pod中发现无法访问master的ip,无法访问任何外网。

于是又开始了疯狂DEBUG, 1个小时后。。。

会不会是因为master和node的系统不一致???

于是一通操作,将node改成ubuntu18.04,重启服务。测试、等待、测试、等待。

终于,没问题了。

心情是这样的

欲哭无泪,没 人 说 节 点 的 系 统 必 须 得 一 致 吧!!!