
使用 kubeadm 搭建 v1.15.3 版本 Kubernetes 集群
作者 阳明
来源 | k8s技术圈(ID:kube100)
前面文章和课程中我们都是使用的 Kubeadm 搭建的 Kubernetes 集群,但是版本比较低了(1.10.0版本),近期有不少反馈让更新下版本,本文将通过 Kubeadm 来搭建最新版本的 Kubernetes 1.15.3 集群,其实和以前搭建的方式方法基本一致,我们这里准备使用 calico 网络插件以及 ipvs 模式的 kube-proxy。
环境准备
3个节点,都是 Centos 7.6 系统,内核版本:3.10.0-957.12.2.el7.x86_64,在每个节点上添加 hosts 信息:
禁用防火墙:
禁用SELINUX:
创建 /etc/sysctl.d/k8s.conf文件,添加如下内容:
执行如下命令使修改生效:
安装 ipvs
上面脚本创建了的 /etc/sysconfig/modules/ipvs.modules文件,保证在节点重启后能自动加载所需模块。使用 lsmod|grep-e ip_vs-e nf_conntrack_ipv4命令查看是否已经正确加载所需的内核模块。
接下来还需要确保各个节点上已经安装了 ipset 软件包:
为了便于查看 ipvs 的代理规则,最好安装一下管理工具 ipvsadm:
同步服务器时间
关闭 swap 分区:
修改 /etc/fstab文件,注释掉 SWAP 的自动挂载,使用 free-m确认 swap 已经关闭。swappiness 参数调整,修改 /etc/sysctl.d/k8s.conf添加下面一行:
执行 sysctl-p/etc/sysctl.d/k8s.conf使修改生效。
接下来可以安装 Docker
可以选择安装一个版本,比如我们这里安装最新版本:
配置 Docker 镜像加速器
启动 Docker
在确保 Docker 安装完成后,上面的相关环境配置也完成了,现在我们就可以来安装 Kubeadm 了,我们这里是通过指定yum 源的方式来进行安装的:
当然了,上面的 yum 源是需要科学上网的,如果不能科学上网的话,我们可以使用阿里云的源进行安装:
然后安装 kubeadm、kubelet、kubectl:
可以看到我们这里安装的是 v1.15.3 版本,然后将 kubelet 设置成开机启动:
到这里为止上面所有的操作都需要在所有节点执行配置。
初始化集群
然后接下来在 master 节点配置 kubeadm 初始化文件,可以通过如下命令导出默认的初始化配置:
然后根据我们自己的需求修改配置,比如修改 imageRepository 的值,kube-proxy 的模式为 ipvs,另外需要注意的是我们这里是准备安装 calico 网络插件的,需要将 networking.podSubnet 设置为 192.168.0.0/16:
然后使用上面的配置文件进行初始化:
可以看到最新验证的 docker 版本是18.09,虽然是一个 warning,所以最好还是安装18.09版本的 docker。
拷贝 kubeconfig 文件
添加节点
如果忘记了上面的 join 命令可以使用命令 kubeadm token create--print-join-command重新获取。
执行成功后运行 get nodes 命令:
可以看到是 NotReady 状态,这是因为还没有安装网络插件,接下来安装网络插件,可以在文档 https://kubernetes.io/docs/setup/production-
隔一会儿查看 Pod 运行状态:
网络插件运行成功了,node 状态也正常了:
用同样的方法添加另外一个节点即可。
安装 Dashboard
直接创建:
然后可以通过上面的 32497 端口去访问 Dashboard,要记住使用 https,Chrome不生效可以使用Firefox测试:
然后创建一个具有全局所有权限的用户来登录Dashboard:(admin.yaml)
直接创建:
然后用上面的base64解码后的字符串作为token登录Dashboard即可:
最终我们就完成了。
