rockylinux8.10多master节点高可用k8s1.28集群部署

kubernetes集群部署

常见的 k8s 部署方式包括:二进制包、kubeadm 工具、云服务提供商、或通过一些开源的工具搭建,例如:sealos、kuboard、Runcher、kubeSphere。

本文使用kubeadm的部署方式,部署k8s1.28版本

我本地安装资源规划如下:

IP地址 主机名称 角色 操作系统 主机配置参考
192.168.3.86 vip192.168.3.199 master1 master (nginx+keepalived主) rockylinux8.10(最小化安装) 4核心CPU/4G内存/80G磁盘
192.168.3.87 master2 master (nginx+keepalived备) rockylinux8.10(最小化安装) 4核心CPU/4G内存/80G磁盘
192.168.3.88 master3 master rockylinux8.10(最小化安装) 4核心CPU/4G内存/80G磁盘
192.168.3.89 worker1 worker rockylinux8.10(最小化安装) 4核心CPU/4G内存/80G磁盘

这里为了节省机器资源worker节点只有一个,nginx和keepalived也安装在k8s的master1 ,master2节点上,最好单独两台机器部署nginx主备服务。

初始化集群环境

**注意:**初始化集群环境,以下步骤在所有主机都需相应操作

修改相应主机的主机名称和host文件解析

hostnamectl set-hostname master1 && bash
hostnamectl set-hostname master2 && bash
hostnamectl set-hostname master3 && bash
hostnamectl set-hostname worker1 && bash
cat <<EOF >> /etc/hosts
192.168.3.86 master1
192.168.3.87 master2
192.168.3.88 master3
192.168.3.89 worker1
EOF

配置相应主机的静态IP地址

vim /etc/sysconfig/network-scripts/ifcfg-ens160
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=eui64
NAME=ens160
UUID=963e7e9e-d175-4067-9879-ae004288ec4d
DEVICE=ens160
ONBOOT=yes
IPADDR=192.168.3.86
PREFIX=24
DNS1=114.114.114.114
GATEWAY=192.168.3.2

安装常用软件包

yum install -y epel-release tree vim wget bash-completion lrzsz nfs-utils net-tools sysstat iotop unzip nc nmap telnet bc psmisc yum-utils ipvsadm git socat conntrack sshpass libseccomp device-mapper-persistent-data lvm2 gcc gcc-c++ make cmake libxml2-devel openssl-devel curl libaio-devel ncurses-devel autoconf automake zlib-devel epel-release telnet 

关闭selinux和防火墙

setenforce 0 && sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
systemctl stop firewalld.service && systemctl disable firewalld.service

关闭swap缓存

swapoff -a && sed -ri 's/.*swap.*/#&/' /etc/fstab

配置免密登录

生成秘钥

ssh-keygen

拷贝秘钥到相应主机()

ssh-copy-id 192.168.3.86

安装时间同步chrony软件

yum install chrony -y
systemctl enable chronyd.service --now
systemctl restart chronyd.service
vim /etc/chrony.conf

#修改以下位置
#pool 2.rocky.pool.ntp.org iburst
pool ntp1.aliyun.com
修改内核参数
#加载内核模块
modprobe br_netfilter
modprobe ip_conntrack
modprobe iptable_filter
modprobe iptable_nat
modprobe overlay

#查看是否加载
lsmod | grep -e ip_vs -e nf_conntrack
nf_conntrack          176128  1 nf_nat
nf_defrag_ipv6         20480  1 nf_conntrack
nf_defrag_ipv4         16384  1 nf_conntrack
libcrc32c              16384  3 nf_conntrack,nf_nat,xfs

lsmod | grep ip
iptable_nat            16384  0
nf_nat                 49152  1 iptable_nat
iptable_filter         16384  0
ip_tables              28672  2 iptable_filter,iptable_nat
nf_defrag_ipv6         20480  1 nf_conntrack
nf_defrag_ipv4         16384  1 nf_conntrack

#修改内核参数
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF

#加载生效
sysctl --system

#持久化加载内核模块
cat > /etc/modules-load.d/modules.conf << EOF
br_netfilter
ip_conntrack
iptable_filter
iptable_nat
overlay
EOF

systemctl restart systemd-modules-load.service

#解释:
#对网桥上的IPv6数据包通过iptables处理            net.bridge.bridge-nf-call-ip6tables = 1  
#对网桥上的IPv4数据包通过iptables处理            net.bridge.bridge-nf-call-iptables = 1   
#开启IPv4路由转发,来实现集群中的容器与外部网络的通信 net.ipv4.ip_forward = 1          
安装docker
yum install -y yum-utils
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#查看yum源中的docker版本
yum list docker-ce.x86_64 --showduplicates | sort -r
#安装指定版本
yum -y install docker-ce-26.1.1-1.el8.x86_64 --allowerasing

安装好docker后containerd.io作为docker依赖也会被安装,在安装k8s前就无需再安装containerd.io了

[root@master1 ~]# rpm -qa | grep containerd
containerd.io-1.6.32-3.1.el8.x86_64

启用Docker Cgroup控制组,用于限制进程的资源使用量,如CPU、内存。再配置镜像加速器,harbor地址,方便后期拉取镜像。

mkdir /etc/docker
cat > /etc/docker/daemon.json <<EOF
{
  "log-opts": {
    "max-size": "5m",
    "max-file":"3"
  },
  "exec-opts": ["native.cgroupdriver=systemd"],
  "insecure-registries": ["192.168.137.35","harbor.cn"],
  "registry-mirrors": [
        "https://jockerhub.com",
        "https://mirror.baidubce.com",
        "https://dockerproxy.com",
        "https://docker.laoex.link",
        "https://docker.nju.edu.cn"
    ]
}
EOF

启动Docker服务并设置开机自启动

systemctl enable docker --now

安装k8s

配置软件仓库和安装所需包

因上文安装好了docker所以在安装k8s前就无需再安装containerd.io了

**注意:**所有主机均需要操作

添加阿里云kubernetes仓库

cat > /etc/yum.repos.d/kubernetes.repo <<EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值