【Kubernetes-1.30】--containerd部署
文章目录
- 一、环境准备
- 1.1 三台服务器
- 1.2 基础配置(三台机通用)
- 1.3 关闭 Swap(必须)
- 1.4 关闭防火墙(可选)
- 1.5 加载必要模块 & 配置内核参数
- 二、安装容器运行时(containerd 推荐)
- 三、安装 Kubernetes 组件
- 3.1 添加 apt 源
- 3.2 安装 Kubernetes v1.30
- 四、初始化 Master 节点(只在 master 上操作)
- 配置 kubectl 使用
- 五、安装网络插件(使用 Flannel 示例)
- 六、加入 Worker 节点(在 worker1、worker2 上操作)
- 七、验证集群状态(master 上执行)
Ubuntu 22.04 上部署 Kubernetes 1.30 集群的完整步骤(1 个 Master + 2 个 Worker):
一、环境准备
1.1 三台服务器
主机名 | IP地址 | 角色 |
---|---|---|
master | 192.168.1.10 | 控制节点 |
worker1 | 192.168.1.11 | 工作节点 |
worker2 | 192.168.1.12 | 工作节点 |
1.2 基础配置(三台机通用)
sudo hostnamectl set-hostname <主机名> # 分别设置为 master、worker1、worker2# 修改 hosts 文件
sudo vim /etc/hosts
# 添加以下内容
192.168.1.10 master
192.168.1.11 worker1
192.168.1.12 worker2
1.3 关闭 Swap(必须)
sudo swapoff -a
sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
1.4 关闭防火墙(可选)
sudo systemctl disable --now ufw
1.5 加载必要模块 & 配置内核参数
# 加载模块
sudo modprobe overlay
sudo modprobe br_netfilter# 配置内核参数
cat <<EOF | sudo tee /etc/sysctl.d/kubernetes.conf
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward = 1
EOFsudo sysctl --system
二、安装容器运行时(containerd 推荐)
# 安装依赖
sudo apt update && sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release# 安装 containerd
sudo apt install -y containerd# 配置默认文件
sudo mkdir -p /etc/containerd
containerd config default | sudo tee /etc/containerd/config.toml# 修改containerd的镜像源---让他和kubeadm保持一样的源
sudo sed -i 's|sandbox_image = .*|sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.9"|' /etc/containerd/config.toml# 修改 Cgroup Driver 为 systemd
sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml# 重启服务
sudo systemctl restart containerd
sudo systemctl enable containerd
三、安装 Kubernetes 组件
3.1 添加 apt 源
sudo curl -fsSLo /etc/apt/keyrings/kubernetes-apt-key.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpgecho "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-key.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" \| sudo tee /etc/apt/sources.list.d/kubernetes.listsudo apt update
国内建议换成阿里
旧源:deb https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial main
最高支持到1.28
apt-cache madison kubeadm
# 添加阿里云镜像源
echo "deb https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial main" | \sudo tee /etc/apt/sources.list.d/kubernetes.list# 添加 GPG key
curl -fsSL https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | \sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/kubernetes-aliyun.gpg# 更新源
sudo apt update
或者
新源:https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.30/deb/
目前支持到1.3X
sudo rm -f /etc/apt/sources.list.d/kubernetes.list
sudo rm -f /etc/apt/trusted.gpg.d/kubernetes-aliyun.gpg
# 创建 keyrings 目录,用于存放源的签名文件(Ubuntu 22.04 推荐做法)
sudo mkdir -p /etc/apt/keyrings# 下载阿里云 Kubernetes 1.30 的 GPG 签名文件,并转为 APT 可识别的格式(.gpg)
curl -fsSL https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.30/deb/Release.key | \gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg# 添加 Kubernetes 1.30 的 APT 软件源到系统源列表
# signed-by= 指定只信任这个源对应的 GPG 密钥,避免信任全局
echo "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] \
https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.30/deb/ /" | \
sudo tee /etc/apt/sources.list.d/kubernetes.listapt update
3.2 安装 Kubernetes v1.30
# 安装 kubelet、kubeadm、kubectl 的 1.30.1 版本
sudo apt install -y kubelet=1.30.1-1.1 kubeadm=1.30.1-1.1 kubectl=1.30.1-1.1# 锁定版本,防止未来 apt upgrade 时被升级
sudo apt-mark hold kubelet kubeadm kubectl
四、初始化 Master 节点(只在 master 上操作)
(可选)
提前拉取 kubeadm 所需镜像(避免初始化失败)
sudo kubeadm config images pull \--image-repository=registry.aliyuncs.com/google_containers \--kubernetes-version=v1.30.1
# 使用默认的 containerd 和 flannel 的 pod 网段 10.244.0.0/16
# 初始化 kubeadm(将 192.168.121.134 替换为你 master 节点的实际 IP)
sudo kubeadm init \--apiserver-advertise-address=192.168.121.134 \--image-repository=registry.aliyuncs.com/google_containers \--kubernetes-version=1.30.1 \--pod-network-cidr=10.244.0.0/16
初始化成功后,会输出一条 kubeadm join … 命令,把它复制保存,用于让 worker1 和 worker2 节点加入集群。
kubeadm join 192.168.121.134:6443 --token rlb4zl.ab1ghdphpyqx3jt4 \--discovery-token-ca-cert-hash sha256:6afb88e798521ecb63191de8aa93cb7d573f88cae41cea50086942a2626a5a12
配置 kubectl 使用
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
五、安装网络插件(使用 Flannel 示例)
kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml
等几秒后可以查看是否网络组件准备就绪
kubectl get pods -n kube-system
六、加入 Worker 节点(在 worker1、worker2 上操作)
使用 master 初始化时输出的命令,如:
sudo kubeadm join 192.168.1.10:6443 --token <token> \--discovery-token-ca-cert-hash sha256:<hash>
七、验证集群状态(master 上执行)
kubectl get nodes
应该能看到三台机器都处于 Ready
状态。
相关文章:

【Kubernetes-1.30】--containerd部署
文章目录 一、环境准备1.1 三台服务器1.2 基础配置(三台机通用)1.3 关闭 Swap(必须)1.4 关闭防火墙(可选)1.5 加载必要模块 & 配置内核参数 二、安装容器运行时(containerd 推荐)…...
Flutter 嵌套H5 传参数
你可以通过在加载 H5 页面时,将 token 作为 URL 参数拼接,或者通过 WebView 的 JavaScript 通信功能(如 runJavaScript 或 addJavaScriptChannel)传递 token。常用方式如下: 方式一:URL 拼接参数 假设你的…...
什么是线程上下文切换?
导语: 线程上下文切换(Context Switch)是Java并发编程中一个常见但容易被忽视的概念。在高并发场景下,它直接影响系统性能。本文将从面试官角度深入剖析这个话题,帮你理解底层原理、掌握优化思路、规避项目中的常见陷阱…...
Jvm 元空间大小分配原则
JVM元空间(Metaspace)的大小分配原则与系统物理内存密切相关,但并不是直接等比例分配,而是通过一系列参数和JVM的动态管理机制来确定。下面从原理和实际行为两方面详细说明: 1. 元空间(Metaspace࿰…...

相机--相机标定
教程 内外参公式及讲解 相机标定分类 相机标定分为内参标定和外参标定。 相机成像原理 相机成像畸变 链接 四个坐标系的转变 内参标定 内参 相机内参通常用一个 33 矩阵(内参矩阵,KK)表示,形式如下: (1)焦距&…...

MongoDB(七) - MongoDB副本集安装与配置
文章目录 前言一、下载MongoDB1. 下载MongoDB2. 上传安装包3. 创建相关目录 二、安装配置MongoDB1. 解压MongoDB安装包2. 重命名MongoDB文件夹名称3. 修改配置文件4. 分发MongoDB文件夹5. 配置环境变量6. 启动副本集7. 进入MongoDB客户端8. 初始化副本集8.1 初始化副本集8.2 添…...

131. 分割回文串-两种回溯思路
我们可以将字符串分割成若干回文子串,返回所有可能的方案。如果将问题分解,可以表示为分割长度为n-1的子字符串,这与原问题性质相同,因此可以采用递归方法解决。 为什么回溯与递归存在联系?在解决这个问题时࿰…...

[Java恶补day13] 53. 最大子数组和
休息了一天,开始补上! 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 子数组是数组中的一个连续部分。 示例 1: 输入:nums …...

摩尔投票算法原理实现一文剖析
摩尔投票算法原理&实现一文剖析 一、算法原理1.1 基本思想1.2 数学原理 二、算法实现2.1 Python实现2.2 Java实现2.3 C实现 三、复杂度分析四、应用场景4.1 多数元素问题4.2 扩展应用:寻找出现次数超过n/3的元素 五、算法优势与注意事项5.1 优势5.2 注意事项 总…...
springboot项目下面的单元测试注入的RedisConnectionFactory类redisConnectionFactory值为什么为空呢?
你遇到的问题是: RedisConnectionFactory redisConnectionFactory 在单元测试中为 null 这是 Spring Boot 单元测试中非常常见的问题,根本原因是你的测试类没有启用 Spring 容器上下文,导致 Resource 注解无法注入 Bean。 ✅ 正确做法&…...

MyBatis操作数据库(2)
1.#{}和${}使用 Interger类型的参数可以看到这里显示的语句是:select username,password,age,gender,phone from userinfo where id? 输入的参数并没有在后面进行拼接,,id的值是使用?进行占位,这种sql称之为"预编译sql".这里,把#{}改成${}观察情况:这里可以看到…...

C++面向对象(二)
面向对象基础内容参考: C面向对象(一)-CSDN博客 友元函数 类的友元函数是定义在类外部,但有权访问类的所有私有(private)成员和保护(protected)成员。尽管友元函数的原型有在类的定…...

【C语言入门级教学】冒泡排序和指针数组
文章目录 1.冒泡排序2.⼆级指针3.指针数组4.指针数组模拟⼆维数组 1.冒泡排序 冒泡排序的核⼼思想:两两相邻的元素进⾏⽐较。 //⽅法1 void bubble_sort(int arr[], int sz)//参数接收数组元素个数 { int i 0;for(i0; i-1; i) { int j 0; for(j0; j-1; j) { …...

shell脚本中常用的命令
一、设置主机名称 通过文件的方式修改通过命令修改 二、nmcli 查看网卡 ip a s ens160 (网卡名称) ifconfig ens160 nmcli device show ens160 nmcli device status nmcli connection show ens160 2.设置网卡 a)当网卡没有被设置时 b)网卡被设定,需要修改 三…...

Nuxt3部署
最近接了一个项目,需要用到 nuxt3 技术来满足甲方所要求的需求,在部署的时候遇到了很多问题,这里我一一给大家讲述部署流程,以及所遇到的坑 打包部署 部署分为俩种方式: 静态(spa)部署 和 ssr部署 静态部署 静态部…...

网络攻防技术一:绪论
文章目录 一、网络空间CyberSpace1、定义2、基本四要素 二、网络空间安全1、定义2、保护对象3、安全属性4、作用空间 三、网络攻击1、攻击分类2、攻击过程 四、网络防护1、定义2、安全模型3、安全服务5类4、特定安全机制8种5、普遍性安全机制5种 五、网络安全技术发展简史1、第…...

【人工智能】deepseek七篇论文阅读笔记大纲
七篇文章看了整整五天,加上整理笔记和问ds优化,大致的框架是有了。具体的公式细节比较多,截图也比较麻烦,就不列入大纲去做笔记了。 DeepSeek-LLM:一切的起点,所以探索的东西比较多,包括&#x…...
unix/linux source 命令,在当前的 Shell 会话中读取并执行指定文件中的命令
source 命令 (或者它的POSIX等效命令 .):在当前 Shell 环境中执行脚本 简单来说,source 命令的作用是:在当前的 Shell 会话中读取并执行指定文件中的命令。 这意味着,被 source 执行的脚本中的所有命令,就好像是你直接在当前的命令行提示符下逐行输入并执行的一样。 核…...
[leetcode] 二分算法
本文介绍算法题中常见的二分算法。二分算法的模板框架并不复杂,但是初始左右边界的取值以及左右边界如何向中间移动,往往让我们头疼。本文根据博主自己的刷题经验,总结出四类题型,熟记这四套模板,可以应付大部分二分算…...
imgsz参数设置
在YOLOv8中,imgsz参数控制输入图像的尺寸,它直接影响模型的精度、速度和显存占用。对于1280720像素的原始图片,选择合适的imgsz需要平衡以下因素: 一、推荐设置 1. 兼顾精度与速度(推荐) model<...

【算法】分支限界
一、基本思想 (分支限界, 分枝限界, 分支界限 文献不同说法但都是一样的) 分支限界法类似于回溯法,也是一种在问题的解空间树上搜索问题解的算法。 但一般情况下,分支限界法与回溯法的求解目标不同。回溯…...
使用 C/C++ 和 OpenCV 调用摄像头
使用 C/C 和 OpenCV 调用摄像头 📸 OpenCV 是一个强大的计算机视觉库,它使得从摄像头捕获和处理视频流变得非常简单。本文将指导你如何使用 C/C 和 OpenCV 来调用摄像头、读取视频帧并进行显示。 准备工作 在开始之前,请确保你已经正确安装…...
历史数据分析——广州港
个股简介 公司简介: 华南地区最大的综合性主枢纽港。 本公司是由广州港集团、国投交通、广州发展作为发起人,共同出资以发起方式设立的股份有限公司。 经营分析: 一般经营项目:企业管理服务(涉及许可经营项目的除外);港务船舶调度服务;船舶通信服务;企业自有资金…...

数据库管理与高可用-MySQL全量,增量备份与恢复
目录 #1.1MySQL数据库备份概述 1.1.1数据备份的重要性 1.1.2数据库备份类型 1.1.3常见的备份方法 #2.1数据库完全备份操作 2.1.1物理冷备份与恢复 2.1.2mysqldump备份与恢复 2.1.3MySQL增量备份与恢复 #3.1制定企业备份策略的思路 #4.1扩展:MySQL的GTID 4.1.1My…...

从gitee仓库中恢复IDEA项目某一版本
神奇的功能!!!代码改乱了,但是还有救! 打开终端,输入git log 复制想要恢复版本的提交哈希值,打开终端输入git reset --hard <哈希值> ,就能修复到那时的提交版本了...

用dayjs解析时间戳,我被提了bug
引言 前几天开发中突然接到测试提的一个 Bug,说我的时间组件显示异常。 我很诧异,这里初始化数据是后端返回的,我什么也没改,这bug提给我干啥。我去问后端:“这数据是不是有问题?”。后端答:“…...
[git每日一句]Changes not staged for commit
在 Git 中,"Changes not staged for commit" 的意思是: 你有已修改的文件,但尚未使用 git add 将它们添加到暂存区(Staging Area),因此这些更改不会被包含在下次提交中。 具体含义 已修改但未暂…...
架构师面试题整理
以下是从提供的HTML代码中提取的所有class"title-txt"的文本内容,已排除重复项并按顺序整理: 缓存专题 实战解决大规模缓存击穿导致线上数据库压力暴增面试常问的缓存穿透是怎么回事基于DCL机制解决突发性热点缓存并发重建问题实战Redis分布…...

类和对象:实现日期类
目录 概述 一.实现日期类的基本框架 二.实现比较的运算符重载 1.>的运算符重载 2.的运算符重载 3.其余的比较运算符重载 三.加减天数的运算符重载 1.,的运算符重载 2.-,-的运算符重载 3.对1和2的小优化 四.两个日期类相减的重载 1.,--的重…...

基于springboot的运动员健康管理系统
博主介绍:java高级开发,从事互联网行业六年,熟悉各种主流语言,精通java、python、php、爬虫、web开发,已经做了六年的毕业设计程序开发,开发过上千套毕业设计程序,没有什么华丽的语言࿰…...