CKS认证 | 使用kubeadm部署K8s高可用集群(v1.26)

一、前置知识点

1.1 生产环境可部署Kubernetes集群的两种方式

目前生产部署Kubernetes集群主要有两种方式:

1)kubeadm

Kubeadm是一个K8s部署工具,提供 kubeadm init 和 kubeadm join,用于快速部署Kubernetes集群(这里采用kubeadm搭建集群)。

2)二进制包

从github下载发行版的二进制包,手动部署每个组件,组成Kubernetes集群。


kubeadm工具功能:

  • kubeadm init:初始化一个Master节点

  • kubeadm join:将工作节点加入集群

  • kubeadm upgrade:升级K8s版本

  • kubeadm token:管理 kubeadm join 使用的令牌

  • kubeadm reset:清空 kubeadm init 或者 kubeadm join 对主机所做的任何更改

  • kubeadm version:打印 kubeadm 版本

  • kubeadm alpha:预览可用的新功能

1.2 准备环境

1)服务器要求:

  • 建议最小硬件配置:2核CPU、4G内存、30G硬盘

  • 服务器最好可以访问外网,会有从网上拉取镜像需求,如果服务器不能上网,需要提前下载对应镜像并导入节点。

2)软件环境:

软件

版本

操作系统

CentOS7.9_x64 (mini)

Docker

21-ce

Kubernetes

1.26

3)服务器规划:

角色

IP

主机名

k8s-master1

192.168.1.81

docker,etcd,nginx,keepalived

k8s-master2

192.168.1.82

docker,etcd,nginx,keepalived

k8s-node1

192.168.1.83

docker,etcd

负载均衡器对外IP

192.168.1.88 (VIP)

4)架构图:

二、环境准备

2.1 操作系统初始化配置(所有节点)

1)设置网卡命名(规范化)

cat /etc/default/grub
...
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet net.ifnames=0 biosdevname=0"

...
grub2-mkconfig -o /boot/grub2/grub.cfg
reboot    //重启生效

2)配置IP地址(以1.71为例)

[root@k8s-master1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0

IPADDR=192.168.1.81
PREFIX=24
GATEWAY=192.168.1.254
DNS1=223.5.5.5
...

3)关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

# 查看防火墙策略
iptables -vnL

4)关闭 selinux

setenforce 0  # 临时配置
sed -i 's/enforcing/disabled/' /etc/selinux/config  # 永久配置

5)关闭 swap

swapoff -a  # 临时
sed -ri 's/.*swap.*/#&/' /etc/fstab    # 永久

6)根据规划设置主机名

hostnamectl set-hostname <hostname>

7)添加 hosts 解析

cat >> /etc/hosts << EOF
192.168.1.81 k8s-master1 k8s-master1-1-81
192.168.1.82 k8s-master2 k8s-master2-1-82
192.168.1.83 k8s-node1 k8s-node1-1-83
EOF

8)将桥接的IPv4流量传递到 iptables 的链

cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system  # 生效

9)配置YUM源

wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

10)时间同步

yum install ntpdate -y
ntpdate time.windows.com
(echo "*/5 * * * * /usr/sbin/ntpdate -u time.windows.com") | crontab
crontab -l
*/5 * * * * /usr/sbin/ntpdate -u time.windows.com

11)配置内核模块

cat >> /etc/modules-load.d/ipvs.conf <<EOF
ip_vs
ip_vs_rr
ip_vs_wrr
ip_vs_sh
nf_conntrack
ip_tables
ip_set
xt_set
ipt_set
ipt_rpfilter
ipt_REJECT
ipip
EOF

systemctl restart systemd-modules-load.service

lsmod | grep -e ip_vs -e 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小安运维日记

Hey~ 感谢您的充电支持!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值