2、Kubernetes 介绍+安装+卸载

0 Kubernetes 介绍

0.1 应用部署演进

  1. 传统物理机部署多应用直接跑在物理服务器;没有资源隔离;单个应用抢占 CPU / 内存,挤压其他业务;硬件资源利用率低,维护成本高。
  2. 虚拟化 VM 部署一台物理机上运行多台完整虚拟机;每台虚拟机拥有独立完整操作系统;资源强隔离;但是虚拟机操作系统开销大,启动慢,资源损耗高。
  3. 容器部署时代容器共享宿主机内核,拥有独立文件系统、CPU、内存、进程空间;轻量级,秒级启动;镜像一次构建到处运行,开发测试生产环境保持一致。

容器优势:快速部署、CI/CD、开发运维分离、环境一致性、可移植、微服务适配、资源隔离、资源利用率高。

0.2 Kubernetes 前世今生

K8s 是Kubernetes缩写,去掉中间 8 个字母 ubernete;源自 Google 内部 Borg/Omega 容器调度系统,2014 开源。

  • 定位:开源容器编排平台,自动化部署、扩缩容、管理容器化应用。

0.3 K8s 核心特性

  1. 自动化上线与回滚:分批次更新应用,异常自动回滚
  2. 服务发现与负载均衡:Pod 分配独立 IP,Service 实现负载均衡
  3. 存储编排:自动挂载本地 / NFS / 云存储
  4. 配置与密钥管理 Secret:更新配置无需重建镜像,敏感信息加密保存
  5. 自动调度装箱:按照资源需求调度 Pod,提升硬件利用率
  6. 批处理任务:支持一次性任务、定时任务
  7. 自我修复:容器崩溃自动重启、异常 Pod 重建
  8. 水平扩缩容:命令 / 监控指标自动增减实例数量
  9. IPv4/IPv6 双栈;高可扩展架构。

0.4 Kubernetes 不是什么

  1. 不是完整 PaaS 平台,不限制应用语言、框架;
  2. 不内置数据库、消息队列等中间件,但可以部署在 K8s 之上;
  3. 不会编译源代码,不提供完整 CI 流水线;
  4. 不强制指定日志监控告警组件;
  5. 不做底层机器操作系统维护。

0.5 K8s 集群架构

集群分为控制平面 Master(Control‑Plane)和工作节点 Worker Node。

控制平面组件(Master)
  1. kube‑apiserver:集群唯一入口,REST API,所有组件 / 客户端都和 apiserver 交互;鉴权、校验。
  2. etcd:分布式键值存储,保存集群全部配置、元数据,集群数据库。
  3. kube‑scheduler:调度器,按照策略把 Pod 分配到合适 worker 节点。
  4. kube‑controller‑manager:控制器管理器,维持集群期望状态,故障检测、副本管理。
Worker 工作节点组件(所有节点都运行)
  1. kubelet:节点代理;接收 Pod 配置,管理本节点 Pod 生命周期,管理 CNI 网络、CSI 存储。
  2. kube‑proxy:网络代理,维护 iptables/ipvs 规则,实现 Service 服务发现、集群内部负载均衡。
  3. 容器运行时 containerd/docker:真正拉取镜像、运行容器。

1 K8s 多种安装方式对比

表格

安装方式特点难度适用场景
kubeadm官方标准,无魔改中等考试、自建标准生产集群⭐⭐⭐⭐⭐
二进制手工部署完全底层可控极高原理研究教学
Sealos/KubeKey一键自动化部署低快速搭建测试生产
k3s/k0s轻量裁剪版低边缘、低配机器开发测试
minikube/kind/k3d单机模拟集群极低本地学习实验
云厂商 ACK/EKS托管 master 免运维低云上生产,成本高
RKE/OpenShift企业发行版中高大型企业商用

学习 + 未来上生产优先选择kubeadm。

2 集群节点环境准备(Ubuntu24.04)

2.1 系统基础配置

  1. 修改 apt 软件源为国内镜像源。
  2. 设置静态 IP,使用netplan yaml 配置,只能空格,禁止 Tab;netplan apply生效。
  3. /etc/hosts主机名解析,集群所有节点互相解析主机名。
  4. 关闭 swap,K8s 要求禁用 swap 分区
swapoff -a sed -i '/swap/d' /etc/fstab
  1. 时间同步 chrony。
  2. ssh 优化:关闭 UseDNS,关闭 StrictHostKeyChecking,配置免密 ssh。

2.2 内核模块与内核参数

  1. 加载内核模块:overlay、br_netfilter;ipvs 模块 (ip_vs、ip_vs_rr、ip_vs_wrr、ip_vs_lc、ip_vs_sh、nf_conntrack),写入/etc/modules‑load.d/k8s‑net.conf开机自动加载。
  2. sysctl 内核参数/etc/sysctl.d/k8s.conf
net.bridge.bridge‑nf‑call‑iptables=1 net.bridge.bridge‑nf‑call‑ip6tables=1 net.ipv4.ip_forward=1 vm.swappiness=0

执行sysctl -p /etc/sysctl.d/k8s.conf生效。

2.3 安装 containerd 容器运行时

  1. 安装containerd.io cri‑tools
  2. 生成默认配置:containerd config default > /etc/containerd/config.toml
  3. 修改配置:
    • SystemdCgroup = true使用 systemd cgroup 驱动;
    • 修改 pause 镜像版本;
    • 配置镜像 mirrors 镜像加速器(docker.io、registry.k8s.io 私有 hub 仓库)
  4. 重启systemctl restart containerd
  5. crictl 配置 runtime 端点指向 containerd。
  6. nerdctl:containerd 的 docker 兼容客户端,需要配置镜像加速,必须设置环境变量CONTAINERD_NAMESPACE=k8s.io。

2.4 安装 kubernetes 组件

安装kubeadm kubelet kubectl指定版本 v1.30.2;设置 kubelet 开机自启。

kubelet 刚安装状态 activating,集群初始化完成才会 active。

2.5 配置命令补全

配置 bash_completion.d:kubectl、kubeadm、crictl、nerdctl命令自动补全。

3 kubeadm 初始化集群

3.1 master 控制平面节点操作

  1. 预拉取镜像
kubeadm config images pull --kubernetes-version=v1.30.2
  1. kubeadm init 初始化控制平面
kubeadm init --kubernetes-version=v1.30.2 --pod‑network‑cidr=10.224.0.0/16 --image‑repository=镜像仓库

主要参数:

  • --kubernetes‑version指定 k8s 版本
  • --pod‑network‑cidrPod 网络网段,要和 Calico 网络插件匹配
  • --image‑repository指定镜像仓库地址,国内加速。
  1. 配置 kubectl 访问凭据
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config

也可以使用环境变量export KUBECONFIG=/etc/kubernetes/admin.conf。

  1. 部署网络插件 Calico
  • 下载 calico.yaml,修改CALICO_IPV4POOL_CIDR和 pod‑network‑cidr 保持一致10.224.0.0/16
  • 所有节点提前下载 calico 镜像
  • kubectl apply -f calico.yaml部署
  • 等待 calico pod 全部 Running,节点状态变为 Ready。

3.2 worker 工作节点加入集群

  1. 在 worker 节点执行 join 命令加入集群
kubeadm join 10.1.8.30:6443 --token xxx --discovery‑token‑ca‑cert sha256:xxx
  1. token 过期,master 重新生成 join 命令:
kubeadm token create --print‑join‑command

3.3 集群验证命令

kubectl cluster-info #查看集群信息 kubectl version #客户端服务端版本 kubectl get nodes #查看所有节点状态,状态Ready代表正常 kubectl get pods -A #查看所有命名空间全部Pod状态,全部Running

节点 Ready 条件:kubelet 正常运行、swap 关闭、CNI 网络插件正常。

4 Node 节点管理(节点查看、维护、删除、重置、集群销毁重建)

4.1 查看节点

kubectl get nodes #查看节点简要信息 kubectl describe node worker31.laoma.cloud #查看节点详细信息

4.2 下线维护节点(drain 驱逐 Pod)

节点要停机维护,驱逐节点上所有 Pod,设置节点不可调度 SchedulingDisabled

#--ignore‑daemonsets忽略DaemonSet类型pod(如calico‑node、kube‑proxy) kubectl drain worker31.laoma.cloud --ignore‑daemonsets

drain 执行后,节点状态 Ready,SchedulingDisabled,新 Pod 不会调度到此节点。

4.3 删除集群内节点对象

kubectl delete node worker31.laoma.cloud

4.4 在被删除的节点本机执行 kubeadm reset 重置

在待重置节点本机执行,清理本机 k8s 所有组件数据

kubeadm reset -f

清理内容:etcd 数据目录、kubelet 目录、证书、kubeconfig 配置文件。

reset不会清理 CNI 配置 /etc/cni/net.d、iptables/ipvs 规则,需要手动清理。

4.5 完整删除整个集群流程

  1. 所有 worker 节点执行 drain 驱逐 Pod,kubectl delete node 删除节点对象。
  2. worker 本机执行kubeadm reset -f重置。
  3. master 控制平面节点执行 kubectl delete node 删除 master 节点对象,本机kubeadm reset -f,删除.kube/config。

4.6 重建集群

  1. master 节点:kubeadm init初始化集群,拷贝 admin.conf 凭据。
  2. 部署 calico 网络插件。
  3. worker 节点执行 kubeadm join 重新加入集群。

思维导图文本

相关新闻

2026 AI学习路线图:收藏这份系统学习框架,从基础到工程全面提升大模型能力

2026 AI学习路线图:收藏这份系统学习框架,从基础到工程全面提升大模型能力

本文针对AI技术快速更新的现状,提出不应盲目追热点,而应从数据、模型、能力、应用到工程逐层构建AI技术体系的学习主线。文章强调理解AI原理、模型工作方式及应用落地的长期价值,并构建了包含基础层、模型层、应用层、工程层的四层学习框架。…

2026/10/20 2:15:25 阅读更多 →
如何提高阅读后的知识留存率

如何提高阅读后的知识留存率

前两年读专业类书籍、跑线下读书分享会,我总陷在“记了忘、忘了记”的循环里。抱着本子抄重点,经常抄完上句漏了下句的核心观点,过两周翻笔记,零散的句子根本串不起整本书的逻辑,回头再翻书,大半内容都像第…

2026/10/20 2:15:25 阅读更多 →
2026 年青州口碑好的汽车贴膜选哪家? 青州汽车贴膜哪家好?哪家靠谱?量子膜 1 号车酷青州形象店值得推荐

2026 年青州口碑好的汽车贴膜选哪家? 青州汽车贴膜哪家好?哪家靠谱?量子膜 1 号车酷青州形象店值得推荐

青州汽车贴膜哪家好?哪家靠谱?不少青州车主准备贴太阳膜、隐形车衣或者改色膜时,都会在网上搜索青州量子膜哪家好、青州量子膜哪家靠谱、青州量子膜哪家专业、青州隐形车衣哪家好、青州隐形车衣哪家靠谱、青州汽车贴膜哪家靠谱、青州汽车贴膜…

2026/10/20 2:14:25 阅读更多 →

最新新闻

本地推理实战:用llama.cpp与ollama部署LFM2.5-1.2B小模型

本地推理实战:用llama.cpp与ollama部署LFM2.5-1.2B小模型

1. 上手前的心里话:为什么大家都盯着小模型本地推理最近圈子里聊本地大模型,基本绕不开两个东西:llama.cpp 和 ollama。而我这段时间一直在折腾的主角,是 LFM2.5-1.2B 这个模型。别看它只有 1.2B 参数,实测下来每秒能跑…

2026/10/20 3:51:14 阅读更多 →
CPU推理LFM2.5-1.2B:llama.cpp与ollama的15token/s实战

CPU推理LFM2.5-1.2B:llama.cpp与ollama的15token/s实战

). To avoid truncated thinking or repeated loops, set appropriate stop sequences; generate_enough tokens because thinking consumes budget; temperature lower (0.6-0.7); maybe set--no-cnv? Simpler: stop attags if present; handle "过度思考" issue b…

2026/10/20 3:51:14 阅读更多 →
PyTorch 2.1神经网络构建核心:计算图、编译与内存控制

PyTorch 2.1神经网络构建核心:计算图、编译与内存控制

1. 这不是“Hello World”式教学:为什么从PyTorch 2.1开始构建神经网络,必须绕开90%初学者踩过的坑你点进来的这个标题——“【PyTorch】2.1 使用Pytorch构建一个神经网络”——看起来平平无奇,甚至有点过时。毕竟PyTorch都出到2.3了&#xf…

2026/10/20 3:51:14 阅读更多 →
LiteLLM实战:统一大模型网关的部署与路由策略

LiteLLM实战:统一大模型网关的部署与路由策略

1. 项目概述:LiteLLM 到底是什么,凭什么值得关注干了这些年大模型应用开发,我最大的痛感就是“供应商锁定”和“接口碎片化”。今天调这家模型用一套参数,明天换那家模型又是另一套鉴权和超时策略,光适配层代码就写到手…

2026/10/20 3:51:14 阅读更多 →
OpenClaw Agent日均成本从50元到0.48元:AI工具调用优化实战

OpenClaw Agent日均成本从50元到0.48元:AI工具调用优化实战

1. 一天50块是怎么烧掉的:一次天气查询的完整计费分解先说个真实的场景。某位朋友在群里截图问我:他给OpenClaw配好了工具链,让它每天早上9点自动查一次当天的天气,顺便提醒要不要带伞。结果月底一看账单,光这一条自动…

2026/10/20 3:51:14 阅读更多 →
技能管理实战:识别、组合与迁移,打造个人核心竞争力

技能管理实战:识别、组合与迁移,打造个人核心竞争力

有一次帮一位朋友梳理简历,他接到一个面试问题——“你最擅长的三项技能是什么”。他愣了半天,最后写的是"Excel、PPT、沟通"。写完连他自己都不信,觉得这跟没说一样。那一刻我突然意识到一件事:我们几乎每天都在提&quo…

2026/10/20 3:50:14 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/19 10:02:04 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 2:54:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 9:10:22 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →