下载系统镜像光盘文件
[清华开源软件镜像站centos下载地址](Index of /centos/7.9.2009/isos/x86_64/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror)
[清华大学开源软件镜像站]
centos-7-isos-x86_64安装包下载_开源镜像站-阿里云 (aliyun.com))
安装虚拟机软件并配置CentOS光盘文件
这里使用的时VM player,有条件可以使用VM Ware Pro版本,当然其他虚拟机软件也可以。
直接选择DVD的iso文件即可,也可以选择稍后安装。
如果选择稍后安装,点击这里的编辑虚拟机配置iso镜像即可
安装CentOS
install CentOS7
默认美式英文即可
点击DATE & TIME
在出现的地图上点击上海所在区域即可。
点击INSTALL TION ...
,在点击DONE
默认即可
5. 配置网络
安装虚拟机归属于局域网,需要配置局域网ip。点击NETWORK & ...
开启ens33
重命名主机名点击Apply
,最后点击Done
最后点击Begin Installtion
用户密码都是随便设置的,如果显示太短连点两次Done
即可
root : root
pass : root
user : centos01
pass : root
到此已经配置完成了,等待进度条完成即可。
点击Reboot
,由于安装时选择的最小软件,因此时没有Gome桌面的时终端命令版。
克隆多台主机修改网络配置
安装完虚拟机后,将虚拟机克隆两份,如果使用的Plaer版,直接复制文件夹在对应的文件下复制已安装的虚拟机。点击打开
切换root
用户,进入到cd /etc/sysconfig/network-scripts/
目录下,编辑如下划线文
件
原始内容如下
修改dhcp
为静态static
,追加ip,子网,网关信息
IPADDR="192.168.42.132"
NETMASK="255.255.255.0"
GATEWAY="192.168.42.2"
这个ip地址和网关信息在安装的
NETWORK
配置以及显示了,如下
service network restart
ip addr
命令查看ip信息,和配置一样即为静态网络配置成功。
vi /etc/hostname
注意上述步骤只需要修改克隆的两台主机即可,保证局域网下ip唯一,主机名唯一即可。
最终就是三台主机三个ip地址
搭建k8s预设环境
之后的所有命令最好使用root用户
在正式安装k8s插件时还有一系列的铺垫操作,k8s不是直接安装就可以用的还需要对系统预设环境,卸载或安装可能导致的问题的工具。
主机名 | ip addr |
---|---|
centos01 | 192.168.42.131 |
centos02 | 192.168.42.132 |
centos03 | 192.168.42.133 |
在搭建环境之前一定要注意的是k8s与docker容器的版本对应关系,因为k8s是多个组件的统称,如果k8s组件与docker版本之间存在冲突就会造成环境搭建失败。
k8s:截止2022.09.23(当前最新)的k8s软件版本支持docker容器引擎的情况:汇总信息 - jinzhenshui - 博客园 (cnblogs.com)
方便集群节点间的直接调用
vi /etc/hosts
- 安装
yum install chrony -y
- 设置开启启动
systemctl start chronyd
systemctl enable chronyd
- 设置服务端所有从节点从服务端同步时间
选择master(centos01=192.168.42.131)节点为服务端
vim /etc/chrony.conf
修改红方框的内容
# Allow NTP client access from local network. 允许所有主机从server端同步时间
allow all
# Serve time even if not synchronized to a time source. 即使server端无法从互联网同步时间,也同步本机时间至client
local stratum 10
客户端同步配置,vim /etc/chrony.conf
注释原server配置,改为 server 机器 IP 地址
- 重启chronyd服务查看同步情况
重启服务systemctl restart chronyd
查看在线情况chronyc activity
查看时间同步情况chronyc tracking
kubernetes和docker在运行中会产生大量的iptables规则,为了不让系统规则跟它们混淆,直接关闭系统的规则。
- 关闭firewalld服务
systemctl stop firewalld
systemctl disable firewalld
或者是
systemctl status firewalld.service
systemctl stop firewalld.service
systemctl disable firewalld.service
firewall-cmd --state
查看是否成功关闭systemctl status firewalld
- 关闭iptables服务
systemctl stop iptables
systemctl disable iptables
或者是
yum install iptables-services
systemctl status iptables.service
systemctl stop iptables.service
systemctl disable iptables.service
reboot
selinux是linux系统下的一个安全服务,如果不关闭它,在安装集群中会产生各种各样的问题。
sed -i 's/enforcing/disabled/' /etc/selinux/config
或者vi /etc/selinux/config
手动修改SELINUX=disabled
swap分区指的是虚拟内存分区,它的作用是在物理内存使用完之后,将磁盘空间虚拟成内存来使用启用swap设备会对系统的性能产生非常负面的影响,因此kubernetes要求每个节点都要禁用。
vi /etc/fstab
注释掉划红线的部分(存在swap一行)
vi /etc/sysctl.d/kubernetes.conf
我们需要修改linux的内核参数,添加网桥过滤和地址转发功能,编辑/etc/sysctl.d/kubernetes.conf
文件,添加如下配置:
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
-
重新加载配置
sysctl -p
-
加载网桥过滤模块
modprobe br_netfilter
-
查看网桥过滤模块是否加载成功
lsmod | grep br_netfilter
在kubernetes中service有两种代理模型,一种是基于iptables的,一种是基于ipvs的 相比较的话,ipvs的性能明显要高一些,但是如果要使用它,需要手动载入ipvs模块
# 安装ipset和ipvsadm
yum install ipset ipvsadmin -y
# 添加需要加载的模块写入脚本文件
cat