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

《Kubernetes部署篇:Ubuntu20.04基于containerd部署kubernetes1.24.17集群(多主多从)》

一、架构图

如下图所示:
在这里插入图片描述


二、环境信息

  • 1、部署规划
主机名 K8S版本 系统版本 内核版本 IP地址 备注
k8s-master-63 1.24.17 Ubuntu 20.04.5 LTS 5.15.0-69-generic 192.168.1.63 master节点 + etcd节点
k8s-master-64 1.24.17 Ubuntu 20.04.5 LTS 5.15.0-69-generic 192.168.1.64 master节点 + etcd节点
k8s-master-65 1.24.17 Ubuntu 20.04.5 LTS 5.15.0-69-generic 192.168.1.65 master节点 + etcd节点
k8s-worker-66 1.24.17 Ubuntu 20.04.5 LTS 5.15.0-69-generic 192.168.1.66 worker节点
- - - - 192.168.1.146 vip(虚拟ip)
k8s-lb-01 - Ubuntu 20.04.5 LTS 5.15.0-69-generic 192.168.1.185 Nginx + keepalived
k8s-lb-02 - Ubuntu 20.04.5 LTS 5.15.0-69-generic 192.168.1.205 Nginx + keepalived

  • 2、集群网段
宿主机 集群Pod网段 集群Service网段
192.168.1.0/24 10.48.0.0/16 10.96.0.0/16

  • 3、基础软件版本
软件 版本 安装方式
containerd 1.7.2 apt或二进制
runc 1.1.7 apt或二进制
cni 1.2.0 apt或二进制
cri-tools 1.26.0 apt或二进制
kube-lb(nginx) 1.22.1 二进制
keepalived v2.2.7 二进制
kubeadm、kubectl、kubelet v1.24.17 apt或二进制

如果kubeadm、kubectl、kubelet使用二进制安装,需要单独安装依赖软件包,如果是使用apt方式安装,则会自动安装。如下所示:

软件 版本
ebtables 2.0.11
socat 1.7.3.3

总结:

1、安装containerd,需要同时安装runc及cni网络插件。Containerd不能直接操作容器,需要通过runc来运行容器。默认Containerd管理的容器仅有lo网络(无法访问容器之外的网络),如果需要访问容器之外的网络则需要安装CNI网络插件。CNI(Container Network Interface) 是一套容器网络接口规范,用于为容器分配ip地址,通过CNI插件Containerd管理的容器可以访问容器之外的网络。

2、cri-tools(容器运行时工具):这是一个 用于与Kubernetes容器运行时接口(CRI)进行交互的命令行工具集。它提供了一些有用的功能,如创建、销毁和管理容器等。

3、ebtables(以太网桥规则管理工具):这是一个用于在Linux系统中管理以太网桥规则的工具。在Kubernetes中,ebtables 用于在网络分区中实现容器之间的隔离和通信。

4、socat(网络工具):这是一个用于在Linux系统中建立各种类型网络连接的工具。在Kubernetes网络中,socat可以 用于创建端口转发、代理和转发等网络连接。


  • 4、容器镜像版本
K8S镜像 calico镜像
registry.k8s.io/kube-apiserver:v1.24.17 docker.io/calico/cni:v3.25.0
registry.k8s.io/kube-controller-manager:v1.24.17 docker.io/calico/kube-controllers:v3.25.0
registry.k8s.io/kube-scheduler:v1.24.17 docker.io/calico/node:v3.25.0
registry.k8s.io/kube-proxy:v1.24.17 -
registry.k8s.io/pause:3.7 -
registry.k8s.io/coredns/coredns:v1.8.6 -
registry.k8s.io/etcd:3.5.6-0 -

三、安装和配置先决条件

3.1、主机名设置

说明:分别在对应的节点IP上设置主机名。

主机IP 设置主机名
192.168.1.63 hostnamectl set-hostname k8s-master-63 && bash
192.168.1.64 hostnamectl set-hostname k8s-master-64 && bash
192.168.1.65 hostnamectl set-hostname k8s-master-65 && bash
192.168.1.66 hostnamectl set-hostname k8s-worker-66 && bash
192.168.1.185 hostnamectl set-hostname k8s-lb-01 && bash
192.168.1.205 hostnamectl set-hostname k8s-lb-02 && bash

3.2、配置主机hosts

说明:以下操作无论是master节点、worker节点、kube-lb节点均需要执行。

cat >> /etc/hosts <<EOF
192.168.1.63  k8s-master-63
192.168.1.64  k8s-master-64
192.168.1.65  k8s-master-65
192.168.1.66  k8s-worker-66
EOF

3.3、关闭防火墙

说明:以下操作无论是master节点、worker节点、kube-lb节点均需要执行。

ufw disable && systemctl stop ufw && systemctl disable ufw

3.4、关闭swap分区

说明:以下操作无论是master节点、worker节点、kube-lb节点均需要执行。

swapoff -a
sed -i '/swap/ s/^/#/'  /etc/fstab

3.5、修改系统参数

说明:以下操作无论是master节点、worker节点、kube-lb节点均需要执行。

cat >>/etc/security/limits.conf <<
http://www.lryc.cn/news/152516.html

相关文章:

  • Adobe Illustrator 2023 for mac安装教程,可用。
  • ElasticSearch(一)数据类型
  • Spark-Core核心算子
  • Linux和Windows下防火墙、端口和进程相关命令
  • 2021年09月 C/C++(六级)真题解析#中国电子学会#全国青少年软件编程等级考试
  • 【算法】滑动窗口
  • JS获取Beego渲染模板Temple时传递的数据
  • 代码随想录训练营第五十二天|300.最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组
  • 前端三大Css处理器之Less
  • Win 教程 Win7实现隔空投送
  • 代码随想录算法训练营Day45 | 70. 爬楼梯 (进阶) | 322. 零钱兑换 | 279. 完全平方数
  • 算法训练营第四十一天(9.2)| 动态规划Part11:最长公共子序列
  • k8s基于rbac权限管理serviceAccount授权管理
  • linux URL访问工具
  • CCF-CSP 29次 第五题【202303-5 施肥】
  • 前端基础4——jQuery
  • 测试人:“躺平?不可能的“, 盘点测试人在职场的优势
  • C++:初识类与this指针
  • 2023应届生java面试紧张失误之一:CAS口误说成开心锁-笑坏面试官
  • Excel_VBA程序文件的加密及解密说明
  • Flutter关于StatefulWidget中State刷新时机的一点实用理解
  • CS420 课程笔记 P2 - 内存编辑和基础的 GameHacking 尝试
  • 【sql】MongoDB 查询 高级用法
  • 监督学习的介绍
  • 【DRONECAN】(三)WSL2 及 ubuntu20.04 CAN 驱动安装
  • Databricks 入门之sql(二)常用函数
  • Simulink建模与仿真(3)-Simulink 简介
  • (超简单)将图片转换为ASCII字符图像
  • In-Context Retrieval-Augmented Language Models
  • 多种免费天气api