为了学习k8s,想先搭个集群玩一下,没想到这一搭就是3天,还没有完全完善,先把前面的步骤给记录一下以免忘记。
由于我是一台学校内的自己建的服务器,一台是购买的腾讯云的服务器,因此不在同一个局域网内,节点之间无法直接通信,给搭建带来了许多麻烦,参考了N多文章总结出下述版本。
1.设备准备
两台服务器,均是2核、4G内存以上配置,一台ubuntu16系统,一台ubuntu18系统。默认都在root模式下,sudo su开启。
2.环境准备
2.1内核参数调整(还没研究作用)
cat > k8s.conf <<EOF
#开启网桥模式
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
#开启转发
net.ipv4.ip_forward = 1
##关闭ipv6
net.ipv6.conf.all.disable_ipv6=1
EOF
cp k8s.conf /etc/sysctl.d/k8s.conf
sysctl -p /etc/sysctl.d/k8s.conf
2.2修改主机名
vi /etc/hostname
vi /etc/hosts
#其中每一台服务器都需要修改,并且要把所有的hostip hostname数据对都写入hosts文件中
#其中hostip如果是内网的话,就写各自服务器对应的内网ip,如果是跨局域网连接,这里可能要写对应的公网ip
2.3关闭防火墙、swap分区
# 为了方便本操作关闭了防火墙,也建议你这样操作
systemctl stop firewalld
systemctl disable firewalld
# 关闭 SeLinux
setenforce 0
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
# 临时关闭 swap
swapoff -a
#开启
swapoff -a
#永久关闭
# 用vi修改/etc/fstab文件,在swap分区这行前加 # 禁用掉,保存退出
vi /etc/fstab
2.4调整时区一致
timedatectl status #检查所有节点的时区时间是否一致,如果不一致可以执行下列命令
# 设置系统时区为 中国/上海
timedatectl set-timezone Asia/Shanghai
# 将当前的UTC时间写入硬件时钟
timedatectl set-local-rtc 0
# 重启依赖于系统时间的服务
systemctl restart rsyslog
systemctl restart cron
2.5日志服务设置
默认有两个日志服务,使用journald关闭rsyslogd
mkdir /var/log/journal # 持久化保存日志的目录
mkdir /etc/systemd/journald.conf.d
cat > /etc/systemd/journald.conf.d/99-prophet.conf <<EOF
[Journal]
# 持久化
Storage=persistent
# 压缩历史日志
Compress=yes
SysnIntervalSec=5m
RateLimitInterval=30s
RateLimitBurst=1000
# 最大占用空间 10G
SystemMaxUse&