环境规划
集群类型
一主多从
一台master节点和多台node节点,搭建简单,但是有单机故障风险,适合用于测试环境
多主多从
多台master节点和多台node节点,搭建麻烦,安全性高,适合用于生产环境
为了测试简单,本次搭建的是一主两从类型的集群
安装方式
k8s有多种部署方式,目前主流的方式有kubeadm、minikube、二进制包
- minikube:一个用于快速搭建单节点的k8s的工具
- kubeadm:一个用于快速搭建k8s集群的工具
- 二进制包:从官网下载的每个组件的二进制包,依次去安装,此方式对于理解k8s组件更加有效
现在需要安装k8s集群环境,但又不想过于麻烦,所以选择使用kubeadm的方式
环境搭建
准备三台centos虚拟机,分别命名为master node1 node2
虚拟机安装步骤自行百度,注意虚拟机配置至少2核2g内存,不然无法使用k8s集群
使用xshell连接三台虚拟机
配置xshell同时向三台虚拟机输入命令
改变xshell布局为瓷砖排列
这样我们就能同时向三台虚拟机发送命令,同时观察三台虚拟机的状态了
环境初始化
检查centos版本
使用k8s集群要求centos版本在7.5及以上,在xshell中输入
[root@master ~]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core)
显示centos版本为7.9,符合要求
主机名解析
配置三台虚拟机的主机名到ip地址的映射
[root@master ~]# vim /etc/hosts #在里面添加 你的master虚拟机的ip地址 master 你的node1虚拟机的IP地址 node1 你的node2虚拟机的ip地址 node2
ping主机名查看是否能成功连通
[root@master ~]# ping master [root@master ~]# ping node1 [root@master ~]# ping node2
如果都能ping通证明没有问题
开启时间同步
kubernetes要求集群中的节点时间必须精确一致,这里直接使用chronyd服务从网络同步时间
启动chronyd服务
[root@master ~]# systemctl start chronyd
设置chronyd服务开机自启
[root@master ~]# systemctl enable chronyd
使用date验证时间
[root@master ~]# date 2021年 06月 30日 星期三 09:51:14 CST
禁用iptables和firewalld服务
注意:这只是开发学习中使用,生产环境中慎重关闭
k8s和docker在运行过程中会产生大量的iptables规则,为了不让系统规则跟它们混淆,直接关闭系统的规则
#关闭防火墙 [root@master ~]# systemctl stop firewalld #设置开机自动关闭防火墙 [root@master ~]# systemctl disable firewalld Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service. Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service. #关闭iptables服务 [root@master ~]# systemctl stop iptables Failed to stop iptables.service: Unit iptables.service not loaded.
禁用selinux
selinux是linux系统下的一个安全服务,如果不关闭它,在安装集群中会产生各种各样的奇葩问题
[root@master ~]# vim /etc/selinux/config #将里面的SELINUX改为disabled SELINUX=disabled
禁用swap分区
swap分区指的是虚拟内存分区,它的作用是在物理内存使用完之后