一. 环境概述:
master (192.168.122.23): CentOS7u7
node1(192.168.122.117): CentOS7u7
node2(192.168.122.164): CentOS7u7
(1) 关闭防火墙和SELinux。
(2) 创建vi /etc/sysctl.d/k8s.conf
文件,添加如下内容:
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
执行命令使修改生效。
modprobe br_netfilter
sysctl -p /etc/sysctl.d/k8s.conf
(3) 由于ipvs已经加入到了内核的主干,所以为kube-proxy开启ipvs的前提需要加载以下的内核模块:
ip_vs
ip_vs_rr
ip_vs_wrr
ip_vs_sh
nf_conntrack_ipv4
在所有的Kubernetes节点上执行以下脚本:
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_ipv4
EOF
chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack_ipv4
上面脚本创建了的/etc/sysconfig/modules/ipvs.modules
文件,保证在节点重启后能自动加载所需模块。 使用lsmod | grep -e ip_vs -e nf_conntrack_ipv4
命令查看是否已经正确加载所需的内核模块。
(4) 关闭swap
swapoff -a
修改 vi /etc/fstab
文件,注释掉 SWAP 的自动挂载,使用free -m
确认swap已经关闭。 swappiness参数调整,修改vi /etc/sysctl.d/k8s.conf
添加下面一行:
vm.swappiness=0
执行sysctl -p /etc/sysctl.d/k8s.conf
使修改生效。
修改vi /etc/sysconfig/kubelet
,加入:
KUBELET_EXTRA_ARGS=--fail-swap-on=false
二. 安装docker
参考:https://docs.docker.com/install/linux/docker-ce/centos/
建议安装18.09以下版本,本文使用18.09.1
yum install docker-ce-18.09.1 docker-ce-cli-18.09.1 containerd.io
同时,docker的Cgroup Driver建议改为:systemd。可参考:
https://kubernetes.io/docs/setup/production-environment/container-runtimes/
[root@master ~]# docker info
Containers: 20
Running: 18
Paused: 0
Stopped: 2
Images: 11
Server Ver