TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=enp0s3 DEVICE=enp0s3 ONBOOT=yes IPADDR=192.168.56.11 GATEWAY=192.168.56.1 DNS1=192.168.56.1
注意 BOOTPROTO=static 这一行是设置 IP 为静态 IP。
停止并禁用防火墙
systemctl stop firewalld systemctl disable firewalld
关闭 SELinux
setenforce 0 sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
设置主机名
通过以下命令将本机的主机名修改为 k8s-node1
echo k8s-node1 > /etc/hostname
修改文件 /etc/hosts,将主机名 k8s-node1 添加到 hosts ,以便在本机能够解析。效果如下:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 k8s-node1 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
关闭 swap, 并取消自动挂载 /swap
swapoff -a && sysctl -w vm.swappiness=0 sed -ri '/^[^#]*swap/s@^@#@' /etc/fstab
复制其他节点操作之前建议备份节点。
此时也可以不进行节点复制,等 docker 和 kubelet, kubeadm, kubectl 的安装完成后在进行节点复制更方便。
在 VirtualBox 中复制 k8s-node1 节点为其他节点,其他节点的名称分别为 k8s-node2, k8s-node3, k8s-node4。然后分别修改各个节点的如下项:
修改节点的固定 IP
修改节点的主机名 和 hosts 文件
至此基础环境已经安装完毕,下一步进入到 docker 和 k8s 的安装。
安装 docker此步骤要在所有的 4 个节点执行。
安装依赖项
yum install -y yum-utils device-mapper-persistent-data lvm2 deltarpm
添加阿里云的 yum 仓库
yum-config-manager --add-repo yum makecache fast
安装 docker
yum install -y docker-ce docker-ce-cli containerd.io
完成后查看 docker 版本
docker --version
输出结果为
Docker version 18.09.7, build 2d0083d
现在 docker 已经成功安装了。
修改docker 的 cgroup 驱动为 systemd ,与k8s一致
cat > /etc/docker/daemon.json <<EOF { "exec-opts": ["native.cgroupdriver=systemd"], "log-driver": "json-file", "log-opts": { "max-size": "100m" }, "storage-driver": "overlay2", "storage-opts": [ "overlay2.override_kernel_check=true" ] } EOF
重启 docker ,并设置为随机自启动,请输入:
systemctl restart docker systemctl enable docker
安装 kubelet kubeadm kubectl此步骤要在所有的 4 个节点执行。
添加 kubernetes YUM 仓库,其中源修改为阿里云
cat > /etc/yum.repos.d/kubernetes.repo <<EOF [kubernetes] name=Kubernetes baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64 enabled=1 gpgcheck=0 repo_gpgcheck=0 gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg EOF
安装 kubelet, kubeadm, kubectl, ipvsadm
yum install -y kubelet kubeadm kubectl ipvsadm
设置路由
安装路由工具包,并加载 br_netfilter 模块
yum install -y bridge-utils.x86_64 modprobe br_netfilte
设置路由
cat > /etc/sysctl.d/k8s.conf <<EOF net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 net.ipv4.ip_forward = 1 EOF
重新加载所有配置
sysctl --system
启动并设置随机自动启动
systemctl start kubelet systemctl enable kubelet
配置 master 节点 执行初始化操作执行如下命令来初始化 master 节点。