当前位置: 首页 > news >正文

Kubeadm+Containerd部署k8s(v1.28.2)集群(非高可用版)

Kubeadm+Containerd部署k8s(v1.28.2)集群(非高可用版)

文章目录

  • Kubeadm+Containerd部署k8s(v1.28.2)集群(非高可用版)
      • 一.环境准备
        • 1.服务器准备
        • 2.环境配置
        • 3.设置主机名
        • 4.修改国内镜像源地址
        • 5.配置时间同步
        • 6.配置内核转发及网桥过滤
      • 二.容器运行时Containerd安装(所有节点)
        • 1.apt源安装
        • 2.二进制安装文件方法
        • 3.配置Containerd镜像加速等
      • **注意**:
      • 三.K8S集群部署
        • 1.集群软件的apt源准备
        • 2.K8S集群软件的安装
        • 3.K8S集群初始化
        • 4.K8S集群网络插件Calico部署
      • 四.部署应用测试集群是否安装成功

一.环境准备

1.服务器准备

服务器信息(此处为同一运营商的服务器,并且处于同一网络组中)如本地搭建的服务器则需要保证在同一内网中,且最好关闭防火墙。

角色主机名称IPKubernetes版本
masterk8s-master1192.168.0.2v1.28.2
node1k8s-node1192.168.0.3v1.28.2
node2k8s-node2192.168.0.4v1.28.2

为什么要用Containerd?
1.Docker Engine 没有实现 CRI, 而这是容器运行时在 Kubernetes 中工作所需要的。 为此,必须安装一个额外的服务 cri-dockerd。 cri-dockerd 是一个基于传统的内置 Docker 引擎支持的项目, 它在 1.24 版本从 kubelet 中移除。

2.不直接兼容 CRI:Docker 使用自己的运行时逻辑,与 Kubernetes的 CRI 不完全兼容。

3.性能和复杂性:Docker 包含许多 Kubernetes 不需要的额外功能(如镜像构建、CLI 工具),相比专注的运行时(如 CRI-O 或 Containerd)更重。
4.Containerd 是一个通用容器运行时,是 Docker 的核心组件之一,后来独立成为一个开源项目。它同样支持 Kubernetes,通过 CRI 插件(cri-Containerd)与 Kubernetes 集成.且被被广泛应用于生产环境(如 AWS EKS、Google GKE)

2.环境配置

确保每个节点上的MAC地址和product_uuid的唯一性,因为某些虚拟机的地址可能会重复。

#查看MAC地址命令
ip link
#校验product_uuid
sudo cat /sys/class/dmi/id/product_uuid

如图,eth0网卡下的,link/ether后面的就是Mac地址。

image-20241218171946878

此处输出的就是product_uuid

image-20241218172255562

3.设置主机名

根据机器的规划,分布设置三台主机名为k8s-master1、k8s-node1和k8s-node2。

#修改配置文件方式,
vi /etc/hostname
##文件内容为:k8s-master1或k8s-node1#命令行方式,临时修改
# 设置 master 主机名
hostnamectl set-hostname k8s-master1 && bash
# 设置 worker 主机名
hostnamectl set-hostname k8s-node1 && bash
hostnamectl set-hostname k8s-node2 && bash
4.修改国内镜像源地址

改为华为的镜像源为例子

  • 备份镜像源文件

    sudo cp -a /etc/apt/sources.list /etc/apt/sources.list.bak
    
  • 修改sources.list文件,将http://archive.ubuntu.comhttp://security.ubuntu.com替换成http://repo.huaweicloud.com

    sudo sed -i "s@http://.*archive.ubuntu.com@http://repo.huaweicloud.com@g" /etc/apt/sources.list
    sudo sed -i "s@http://.*security.ubuntu.com@http://repo.huaweicloud.com@g" /etc/apt/sources.lis
    
5.配置时间同步

采用ntpdate命令进行时间校对,设置Crontab定时任务进行定时校对。

#安装工具
sudo apt install ntpdate
#配置Crontab定时任务
crontab -e
#添加如下内容: 0 */1 * * * ntpdate time1.aliyun.com

image-20241218173016645

6.配置内核转发及网桥过滤
  • 添加配置文件
cat << EOF | tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF
  • 加载模块

    modprobe overlay
    modprobe br_netfilter
    
  • 添加网桥过滤及内核转发配置文件

    cat  <<EOF | tee /etc/sysctl.d/k8s.conf
    net.bridge.bridge-nf-call-iptables  = 1
    net.bridge.bridge-nf-call-ip6tables = 1
    net.ipv4.ip_forward                 = 1
    EOF#然后执行
    sysctl -p /etc/sysctl.d/k8s.conf
    

    如果上述配置执行之后,执行sysctl net.ipv4.ip_forward输出和下图不一致。则需手动执行sysctl -w net.ipv4.ip_forward=1

    image-20241218173952554

  • 安装Ipset及ipvsadm

    sudo apt -y install ipset ipvsadm
    
  • 配置ipvsadm模块,添加需要添加的模块

    cat  << EOF | tee /etc/modules-load.d/ipvs.conf
    ip_vs
    ip_vs_rr
    ip_vs_wrr
    ip_vs_sh
    nf_conntrack
    EOF
    
  • 加载模块脚本

    cat << EOF | tee ipvs.sh > /dev/null &&

http://www.mrgr.cn/news/80651.html

相关文章:

  • 序列模型的使用示例
  • SpringDataJpa-字段加解密存储
  • windows11 专业版 docker desktop 安装指南
  • Java中的ArrayList、LinkedList如何进行线程安全的操作、为什么ArrayList不是线程安全的?
  • 【MySQL】InnoDB引擎中的Compact行格式
  • 在pycharm2024.3.1中配置anaconda3-2024-06环境
  • windows11 24H2 CSOL 闪退问题解决办法
  • Java通过反射破坏单例模式
  • Compose IO
  • Linux介绍与安装CentOS 7操作系统
  • JS实现简单的前端分页功能
  • Avalonia 开发环境准备
  • asp.net core发布配置端口号,支持linux
  • 使用qemu搭建armv7嵌入式开发环境
  • matlab绘图时设置左、右坐标轴为不同颜色
  • JVM性能优化一:初识内存泄露-内存溢出-垃圾回收
  • Linux Shell 脚本编程基础知识篇
  • 【蓝桥杯】46195.水仙花数
  • ARM学习(38)多进程多线程之间的通信方式
  • Visual Studio 2022 QT5.14.2 新建项目无法打开QT的ui文件,出现闪退情况
  • [spring]XML标签<bean>的二级标签
  • WPF ControlTemplate 控件模板
  • 【递归,搜索与回溯算法】穷举 vs 暴搜 vs 深搜 vs 回溯 vs 剪枝算法入门专题详解
  • “年轻科技旗舰”爱玛A7 Plus正式发布,全国售价4999元
  • AMS1117芯片驱动电路·降压芯片的驱动电路详解
  • linux - 软硬链接