2、Kubernetes 介绍+安装+卸载

发布时间:2026/10/20 2:15:40

2、Kubernetes 介绍+安装+卸载 0 Kubernetes 介绍0.1 应用部署演进传统物理机部署多应用直接跑在物理服务器没有资源隔离单个应用抢占 CPU / 内存挤压其他业务硬件资源利用率低维护成本高。虚拟化 VM 部署一台物理机上运行多台完整虚拟机每台虚拟机拥有独立完整操作系统资源强隔离但是虚拟机操作系统开销大启动慢资源损耗高。容器部署时代容器共享宿主机内核拥有独立文件系统、CPU、内存、进程空间轻量级秒级启动镜像一次构建到处运行开发测试生产环境保持一致。容器优势快速部署、CI/CD、开发运维分离、环境一致性、可移植、微服务适配、资源隔离、资源利用率高。0.2 Kubernetes 前世今生K8s 是Kubernetes缩写去掉中间 8 个字母 ubernete源自 Google 内部 Borg/Omega 容器调度系统2014 开源。定位开源容器编排平台自动化部署、扩缩容、管理容器化应用。0.3 K8s 核心特性自动化上线与回滚分批次更新应用异常自动回滚服务发现与负载均衡Pod 分配独立 IPService 实现负载均衡存储编排自动挂载本地 / NFS / 云存储配置与密钥管理 Secret更新配置无需重建镜像敏感信息加密保存自动调度装箱按照资源需求调度 Pod提升硬件利用率批处理任务支持一次性任务、定时任务自我修复容器崩溃自动重启、异常 Pod 重建水平扩缩容命令 / 监控指标自动增减实例数量IPv4/IPv6 双栈高可扩展架构。0.4 Kubernetes 不是什么不是完整 PaaS 平台不限制应用语言、框架不内置数据库、消息队列等中间件但可以部署在 K8s 之上不会编译源代码不提供完整 CI 流水线不强制指定日志监控告警组件不做底层机器操作系统维护。0.5 K8s 集群架构集群分为控制平面 MasterControl‑Plane和工作节点 Worker Node。控制平面组件Masterkube‑apiserver集群唯一入口REST API所有组件 / 客户端都和 apiserver 交互鉴权、校验。etcd分布式键值存储保存集群全部配置、元数据集群数据库。kube‑scheduler调度器按照策略把 Pod 分配到合适 worker 节点。kube‑controller‑manager控制器管理器维持集群期望状态故障检测、副本管理。Worker 工作节点组件所有节点都运行kubelet节点代理接收 Pod 配置管理本节点 Pod 生命周期管理 CNI 网络、CSI 存储。kube‑proxy网络代理维护 iptables/ipvs 规则实现 Service 服务发现、集群内部负载均衡。容器运行时 containerd/docker真正拉取镜像、运行容器。1 K8s 多种安装方式对比表格安装方式特点难度适用场景kubeadm官方标准无魔改中等考试、自建标准生产集群⭐⭐⭐⭐⭐二进制手工部署完全底层可控极高原理研究教学Sealos/KubeKey一键自动化部署低快速搭建测试生产k3s/k0s轻量裁剪版低边缘、低配机器开发测试minikube/kind/k3d单机模拟集群极低本地学习实验云厂商 ACK/EKS托管 master 免运维低云上生产成本高RKE/OpenShift企业发行版中高大型企业商用学习 未来上生产优先选择kubeadm。2 集群节点环境准备Ubuntu24.042.1 系统基础配置修改 apt 软件源为国内镜像源。设置静态 IP使用netplan yaml 配置只能空格禁止 Tabnetplan apply生效。/etc/hosts主机名解析集群所有节点互相解析主机名。关闭 swapK8s 要求禁用 swap 分区swapoff -a sed -i /swap/d /etc/fstab时间同步 chrony。ssh 优化关闭 UseDNS关闭 StrictHostKeyChecking配置免密 ssh。2.2 内核模块与内核参数加载内核模块overlay、br_netfilteripvs 模块 (ip_vs、ip_vs_rr、ip_vs_wrr、ip_vs_lc、ip_vs_sh、nf_conntrack)写入/etc/modules‑load.d/k8s‑net.conf开机自动加载。sysctl 内核参数/etc/sysctl.d/k8s.confnet.bridge.bridge‑nf‑call‑iptables1 net.bridge.bridge‑nf‑call‑ip6tables1 net.ipv4.ip_forward1 vm.swappiness0执行sysctl -p /etc/sysctl.d/k8s.conf生效。2.3 安装 containerd 容器运行时安装containerd.io cri‑tools生成默认配置containerd config default /etc/containerd/config.toml修改配置SystemdCgroup true使用 systemd cgroup 驱动修改 pause 镜像版本配置镜像 mirrors 镜像加速器docker.io、registry.k8s.io 私有 hub 仓库重启systemctl restart containerdcrictl 配置 runtime 端点指向 containerd。nerdctlcontainerd 的 docker 兼容客户端需要配置镜像加速必须设置环境变量CONTAINERD_NAMESPACEk8s.io。2.4 安装 kubernetes 组件安装kubeadm kubelet kubectl指定版本 v1.30.2设置 kubelet 开机自启。kubelet 刚安装状态 activating集群初始化完成才会 active。2.5 配置命令补全配置 bash_completion.dkubectl、kubeadm、crictl、nerdctl命令自动补全。3 kubeadm 初始化集群3.1 master 控制平面节点操作预拉取镜像kubeadm config images pull --kubernetes-versionv1.30.2kubeadm init 初始化控制平面kubeadm init --kubernetes-versionv1.30.2 --pod‑network‑cidr10.224.0.0/16 --image‑repository镜像仓库主要参数--kubernetes‑version指定 k8s 版本--pod‑network‑cidrPod 网络网段要和 Calico 网络插件匹配--image‑repository指定镜像仓库地址国内加速。配置 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。部署网络插件 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 工作节点加入集群在 worker 节点执行 join 命令加入集群kubeadm join 10.1.8.30:6443 --token xxx --discovery‑token‑ca‑cert sha256:xxxtoken 过期master 重新生成 join 命令kubeadm token create --print‑join‑command3.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‑daemonsetsdrain 执行后节点状态 Ready,SchedulingDisabled新 Pod 不会调度到此节点。4.3 删除集群内节点对象kubectl delete node worker31.laoma.cloud4.4 在被删除的节点本机执行 kubeadm reset 重置在待重置节点本机执行清理本机 k8s 所有组件数据kubeadm reset -f清理内容etcd 数据目录、kubelet 目录、证书、kubeconfig 配置文件。reset不会清理 CNI 配置 /etc/cni/net.d、iptables/ipvs 规则需要手动清理。4.5 完整删除整个集群流程所有 worker 节点执行 drain 驱逐 Podkubectl delete node 删除节点对象。worker 本机执行kubeadm reset -f重置。master 控制平面节点执行 kubectl delete node 删除 master 节点对象本机kubeadm reset -f删除.kube/config。4.6 重建集群master 节点kubeadm init初始化集群拷贝 admin.conf 凭据。部署 calico 网络插件。worker 节点执行 kubeadm join 重新加入集群。思维导图文本
延伸阅读

更多相关文章

2026/10/20 2:15:40

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

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

2026/10/20 2:15:40

学生成绩管理系统需求分析:表结构、技术栈与避坑指南

简介:学生成绩管理系统需求分析报告以Word文档形式提供,面向高校教务管理人员、系统开发人员以及需要完成相关课程设计或毕业设计的在校生。报告围绕日益复杂的学生成绩管理场景,给出完整的系统功能定位与用户需求分析,覆盖教师管…

2026/10/20 3:31:12

知识工作插件怎么选:分层框架与三大选型标准

1. 先搞清楚:知识工作插件到底在补哪块短板很多人一听到"知识工作插件"这个词,第一反应是往浏览器里装一堆小工具,或者给编辑器配上各种扩展,觉得只要装得够多,自己的信息处理能力就能跟着提升。我在这个方向…

2026/10/20 3:31:12

知识工作流插件化实践:从剪藏到语义检索的完整架构

坦白说,我在很长一段时间里都觉得“知识管理”是个伪命题。收藏夹里躺着几百篇“以后再看”的文章,笔记软件里散落着大量片段,真正写东西或做决策时能调用的,可能连十分之一都不到。问题出在哪?我后来想明白了——大多…

2026/10/20 3:31:12

C++中多线程的执行顺序如你预期吗

前言 很多人在第一次写多线程程序时,会默认「先创建的线程先执行」「join 的顺序就是线程运行完成的顺序」,甚至用一次运行的控制台输出反推线程的调度规律。这些预期在标准层面都没有依据。C 标准不规定线程何时开始运行、运行多久、在哪个 CPU 核心上运…

2026/10/20 3:31:12

用OCR与规则引擎构建报表信息抽取助手

“rea”这个代号,不是某个英文单词的随手缩写,而是我手头一个内部小工具的名字,全称是 Report Extraction Assistant,翻译过来就是报表信息抽取助手。最早写它,是因为有段时间我被迫处理大量来自不同系统的导出报告、电…

2026/10/20 3:26:11

NAND Flash芯片测试程序全解析:坏块扫描、位翻转与ECC校验

简介:面向NAND Flash驱动开发与验证场景的测试程序包,适合嵌入式开发者、驱动调试人员及存储技术学习者使用。程序针对驱动与硬件交互中的关键问题,覆盖基础读写一致性校验、坏块检测与标记、ECC纠错验证、损耗均衡检查、页与块管理、读写性能…

2026/10/19 18:06:35

金融AI落地指南:从调研报告到技术选型与工程实践

简介:这份PDF报告聚焦2025年金融服务业中国AI现状与趋势,面向金融科技从业者、AI战略规划人员及关注行业数字化转型的研究者,帮助读者把握生成式AI在银行、支付、交易等场景中的落地路径与投资方向。资源包内含1个PDF文件,大小约1…

2026/10/20 1:05:37

单片机C运行时从启动到多任务:中断安全与共享资源冲突

/* 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:05:37

GCC编译四步详解:预处理、编译、汇编、链接实战

/* 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:05:37

FIW线是什么?FEP注塑线与普通氟塑料线的区别及应用指南

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

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑