(4)主机名解析
分别进行如下操作:
为了方便后面集群节点间的直接调用,需要配置一下主机名解析,企业中推荐使用内部的 DNS 服务器。
cat >> /etc/hosts << EOF 127.0.0.1 $(hostname) 192.168.172.101 k8s-master 192.168.172.102 k8s-node1 192.168.172.103 k8s-node2 EOF
(5)时间同步
Kubernetes 要求集群中的节点时间必须精确一致,所以在每个节点上添加时间同步:
yum install ntpdate -y
ntpdate time.windows.com
(6)关闭 SELinux
分别进行如下操作:
查看 SELinux 是否开启:
getenforce
永久关闭 SELinux ,需要重启:
sed -i 's/enforcing/disabled/' /etc/selinux/config
(7)关闭 swap 分区
永久关闭 swap ,需要重启:
sed -ri 's/.*swap.*/#&/' /etc/fstab
关闭当前会话的 swap ,重启之后无效:
swapoff -a
(8)将桥接的 IPv4 流量传递到 iptables 的链
分别进行如下操作:
修改 /etc/sysctl.conf 文件:
# 如果有配置,则修改 sed -i "s#^net.ipv4.ip_forward.*#net.ipv4.ip_forward=1#g" /etc/sysctl.conf sed -i "s#^net.bridge.bridge-nf-call-ip6tables.*#net.bridge.bridge-nf-call-ip6tables=1#g" /etc/sysctl.conf sed -i "s#^net.bridge.bridge-nf-call-iptables.*#net.bridge.bridge-nf-call-iptables=1#g" /etc/sysctl.conf sed -i "s#^net.ipv6.conf.all.disable_ipv6.*#net.ipv6.conf.all.disable_ipv6=1#g" /etc/sysctl.conf sed -i "s#^net.ipv6.conf.default.disable_ipv6.*#net.ipv6.conf.default.disable_ipv6=1#g" /etc/sysctl.conf sed -i "s#^net.ipv6.conf.lo.disable_ipv6.*#net.ipv6.conf.lo.disable_ipv6=1#g" /etc/sysctl.conf sed -i "s#^net.ipv6.conf.all.forwarding.*#net.ipv6.conf.all.forwarding=1#g" /etc/sysctl.conf
# 可能没有,追加 echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf echo "net.bridge.bridge-nf-call-ip6tables = 1" >> /etc/sysctl.conf echo "net.bridge.bridge-nf-call-iptables = 1" >> /etc/sysctl.conf echo "net.ipv6.conf.all.disable_ipv6 = 1" >> /etc/sysctl.conf echo "net.ipv6.conf.default.disable_ipv6 = 1" >> /etc/sysctl.conf echo "net.ipv6.conf.lo.disable_ipv6 = 1" >> /etc/sysctl.conf echo "net.ipv6.conf.all.forwarding = 1" >> /etc/sysctl.conf
加载 br_netfilter 模块:
modprobe br_netfilter
持久化修改(保留配置包本地文件,重启系统或服务进程仍然有效):
sysctl -p
(9) 开启 ipvs
● 在 Kubernetes 中 service 有两种代理模型,一种是基于 iptables ,另一种是基于 ipvs 的。ipvs 的性能要高于 iptables 的,但是如果要使用它,需要手动载入 ipvs 模块。
● 在三台机器安装 ipset 和 ipvsadm :
yum -y install ipset ipvsadm
●在三台机器执行如下脚本:
cat > /etc/sysconfig/modules/ipvs.modules <<EOF #!/bin/bash modprobe -- ip_vs modprobe -- ip_vs_rr modprobe -- ip_vs_wrr modprobe -- ip_vs_sh modprobe -- nf_conntrack EOF
授权、运行、检查是否加载:
chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules
(10)重启
重启三台机器:
reboot
3.安装docker
三台机子都要操作!
●卸载旧版本docker:
sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
●yum 安装 gcc 相关:
yum -y install gcc
yum -y install gcc-c++
●安装所需要的软件包:
yum -y install yum-utils
●设置 stable 镜像仓库:
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docke
●更新 yum 软件包索引:
yum makecache fast
查看存储库中 Docker 的版本:
yum list docker-ce --showduplicates | sort -r
安装指定版本的 Docker(v20.10) :
yum -y install docker-ce-3:20.10.8-3.el7.x86_64 docker-ce-cli-3:20.10.8-3.el7.x86_64 conta
●启动 Docker:
# 启动 Docker systemctl start docker
# 开启自动启动 systemctl enable docker