目录
步骤三:提前准备好负载均衡器和keepalived(接着之前的二进制部署修改的)
编辑 步骤二:所有节点安装kubeadm,kubelet和kubectl
步骤二:修改了 kubeadm-config.yaml,将其传输给其他master节点,先完成所有master节点的镜像拉取
步骤四:master01根据提示信息完成kubectl的集群引导文件
步骤二:根据提示信息完成master02/03的kubectl初始化
五、完成所有node节点加入k8s集群,部署网络插件calico
步骤一:部署网络插件calico(在master01节点上传)
一、完成系统初始化
步骤一:常规环境初始化
//所有节点,关闭防火墙规则,关闭selinux,关闭swap交换
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/enforcing/disabled/' /etc/selinux/config
iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X
swapoff -a #交换分区必须要关闭
sed -ri 's/.*swap.*/#&/' /etc/fstab #永久关闭swap分区,&符号在sed命令中代表上次匹配的结果
#加载 ip_vs 模块
for i in $(ls /usr/lib/modules/$(uname -r)/kernel/net/netfilter/ipvs|grep -o "^[^.]*");do echo $i; /sbin/modinfo -F filename $i >/dev/null 2>&1 && /sbin/modprobe $i;done
//修改主机名
hostnamectl set-hostname master01/master02/master03
hostnamectl set-hostname node01/node02/node03
//所有节点修改hosts文件
cat >> /etc/hosts << EOF
192.168.20.15 master01
192.168.20.16 master02
192.168.20.17 master03
192.168.20.10 node01
192.168.20.12 node02
192.168.20.30 node03
EOF
//调整内核参数
cat > /etc/sysctl.d/kubernetes.conf << EOF
#开启网桥模式,可将网桥的流量传递给iptables链
net.bridge.bridge-nf-call-ip6tables=1
net.bridge.bridge-nf-call-iptables=1
#关闭ipv6协议
net.ipv6.conf.all.disable_ipv6=1
net.ipv4.ip_forward=1
EOF
//生效参数
sysctl --system
步骤二:内核版本升级以及内核限制文件参数修改
//内核升级
cat > /etc/yum.repos.d/elrepo.repo <<EOF
[elrepo]
name=elrepo
baseurl=https://mirrors.aliyun.com/elrepo/kernel/el7/x86_64
gpgcheck=0
enabled=1
EOF
yum install -y kernel-lt kernel-lt-devel
awk -F\' '$1=="menuentry "{print i++ ":" $2}' /etc/grub2.cfg
grub2-set-default 0
reboot
uname -r
cat >> /etc/security/limits.conf <<EOF
* hard noproc 65535
* soft noproc 65535
* hard nofile 65535
* soft nofile 65535
* hard memlock unlimited
* soft memlock unlimited
EOF
步骤三:提前准备好负载均衡器和keepalived(接着之前的二进制部署修改的)
二、所有节点部署docker,以及指定版本的kubeadm
步骤一:所有节点完成docker部署
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install -y docker-ce docker-ce-cli containerd.io
mkdir /etc/docker
cat > /etc/docker/daemon.json <<EOF
{
"registry-mirrors": ["https://6ijb8ubo.mirror.aliyuncs.com"],
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "500m", "max-file": "3"
}
}
EOF
#使用Systemd管理的Cgroup来进行资源控制与管理,因为相对Cgroupfs而言,Systemd限制CPU、内存等资源更加简单和成熟稳定。
#日志使用json-file格式类型存储,大小为100M,保存在/var/log/containers目录下,方便ELK等日志系统收集和管理日志。
systemctl daemon-reload
systemctl restart docker.service
systemctl enable --now docker.service
docker info | grep "Cgroup Driver"
Cgroup Driver: systemd
步骤二:所有节点安装kubeadm,kubelet和kubectl
-------------------- 所有节点安装kubeadm,kubelet和kubectl --------------------
//定义kubernetes源