前提概要:
##########文档已验证,按照步骤操作可完整实现##########
1.文档内命令前面统一加了$符号,避免带换行的符号的命令使人混淆。
2.官方社区概述参考链接:
https://kubernetes.io/zh/docs/setup/production-environment/tools/kubeadm/install-kubeadm/
基础硬件配置:
- 每台机器 2 GB 或更多的 RAM
- 2 CPU 核或更多,Master节点要求至少2核
- 集群中的所有机器的网络彼此均能相互连接(公网和内网都可以)
- 节点之中不可以有重复的主机名、MAC 地址或 product_uuid
- 禁用交换分区。为了保证 kubelet 正常工作,必须禁用交换分区
1.环境如下
IP | 主机名 | 安装服务 | OS版本 | kubeadm版本 |
10.0.0.106 | master106 |
centos 7.4 |
kubeadm 1.17.0 | |
10.0.0.107 | node107 | centos 7.4 | kubeadm 1.17.0 | |
10.0.0.108 | node108 | centos 7.4 | kubeadm 1.17.0 |
2.部署前准备
1)关闭防火墙:
$ systemctl stop firewalld && systemctl disable firewalld
2)关闭 selinux:
$ sed -i 's/enforcing/disabled/' /etc/selinux/config
3)关闭 swap:
$ sed -ri 's/.*swap.*/#&/' /etc/fstab
4)主机名:
$ hostnamectl set-hostname <hostname>
5)更新hosts文件:
$ cat >> /etc/hosts << EOF
10.0.0.106 master106
10.0.0.107 master107
10.0.0.108 master108
EOF
6)时间同步:
$ yum install ntpdate -y
$ ntpdate ntp1.aliyun.com
7)安装工具
yum -y install wget
8)将桥接的 IPv4 流量传递到 iptables 的链
$ cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1net.bridge.bridge-nf-call-iptables = 1
EOF
# 生效
$ sysctl --system
9)系统重启
前面修改了/etc/fstab重启生效。