初始化
首先和上次一样,我们需要对就四个节点做初始化准备,我们需要手动修改hosts配置文件,ntp时间,剩下的脚本可以完成。
[root@node15 ~]# cat init.sh
#!/bin/bash
swapoff -a && sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
modprobe br_netfilter
cat >> /etc/sysctl.conf <<EOF
net.bridge.bridge-nf-call-iptables=1
net.bridge.bridge-nf-call-ip6tables=1
net.ipv4.ip_forward = 1
EOF
sysctl -p
mkdir /var/log/journal
mkdir /etc/systemd/journald.conf.d
cat > /etc/systemd/journald.conf.d/prophet.conf <<EOF
[Journal]
#持久化保存到磁盘
Storage=persistent
# 压缩历史日志
Compress=yes
SyncIntervalSec=5m
RateLimitInterval=30s
RateLimitBurst=1000
# 最大占用空间
SystemMaxUse=5G
# 单个日志文件最大
SystemMaxFileSize=200M
#日志保存时间
MaxRetentionSec=2week
#不讲日志转发到syslog
ForwardToSyslog=no
EOF
systemctl restart systemd-journald
cat > /etc/yum.repos.d/docker-ce.repo << EOF
[docker-ce-stable]
name=Docker CE Stable - $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/$basearch/stable
enabled=1
gpgcheck=0
EOF
yum repolist
yum install -y docker-ce-17.03.2-1.el7
yum install -y docker-ce-selinux-17.03.2-1.el7
sed -i '11c ExecStart=/usr/bin/dockerd --storage-driver=overlay2 --storage-opt overlay2.override_kernel_check=1' /usr/lib/systemd/system/docker.service
mkdir /etc/docker
cat > /etc/docker/daemon.json <<EOF
{
"registry-mirrors": ["https://ol663cbd.mirror.aliyuncs.com"],
"insecure-registries":[ "0.0.0.0/0"],
"exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
systemctl daemon-reload
systemctl start docker
modprobe ip_vs
modprobe ip_vs_rr
modprobe ip_vs_wrr
modprobe ip_vs_sh
modprobe nf_conntrack_ipv4
chmod +x /etc/rc.local
cat >> /etc/rc.local << EOF
modprobe ip_vs
modprobe ip_vs_rr
modprobe ip_vs_wrr
modprobe ip_vs_sh
modprobe nf_conntrack_ipv4
EOF
cat > /etc/yum.repos.d/k8s.repo <<EOF
[k8s]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enable=1
gpgcheck=0
EOF
yum install -y kubeadm-1.15.1 kubectl-1.15.1 kubelet-1.15.1
systemctl enable kubelet.service
systemctl enable docker.service
配置keepailved和haproxy
我们有一个虚拟ip为192.168.100.100
配置haproxy的监听端口为16443,转发到100.12/13/14的6443端口,因为这个是我们将会使用的apiserver的端口,不过需要先把13/14的转发注释掉,因为我们在12上会先启动apiserver,此时部分服务需要连接apiserver,会去连接100.100的16443接口,不可以让