Linux个人心得29(k8s的一些个人理解)

k8s并不是单点技术,而是把把Linux、网络、容器、调度、负载均衡、配置、存储、发布、监控都揉在一起了。

基础设施与地基(Linux、容器)

  • Linux :相当于餐厅的地基和物理空间。K8s 集群里的每一台服务器(无论是 Master 还是 Node 节点)都必须运行在 Linux 操作系统之上。K8s 会调用 Linux 的内核特性(如 Cgroups 限制资源、Namespace 做隔离)来干活。
  • 容器(Container) :相当于餐厅里的标准化餐盒。你的应用(比如 Nginx、MySQL)被打包进 Docker 容器里。不管餐盒里装的是川菜还是粤菜,对餐厅来说,它们都是统一规格的盒子,方便搬运和摆放。

交通与指挥系统(网络、调度、负载均衡)

  • 网络(Network) :相当于餐厅里的走廊和传菜通道。K8s 要求集群里的每一个"餐盒"(Pod)都有一个独立的 IP 地址,并且互相能 ping 通。通过 CNI 网络插件(如 Calico),K8s 打通了跨服务器的容器通信,让数据能顺畅流动。
  • 调度(Scheduling) :相当于餐厅的大堂经理。当你说"我要上 5 份牛排(启动 5 个 Pod)"时,调度器(Scheduler)会自动观察哪张桌子(Node 节点)还有空位、资源够不够,然后自动把这 5 份牛排安排到最合适的桌子上,完全不需要你手动去搬。
  • 负载均衡(Load Balancing) :相当于餐厅的迎宾/传菜员。当外面有大量顾客(用户请求)涌入时,K8s 的 Service 组件会自动把请求均匀地分发给后面那 5 份牛排(Pod 副本),防止某一份牛排被"累死",而其他牛排却闲着。

运营与保障(配置、存储、发布、监控)

  • 配置(Config) :相当于餐厅的菜单和配方表。K8s 通过 ConfigMap 和 Secret,把应用的配置文件(比如数据库密码、Nginx 配置)和程序代码解耦。想换口味(改配置)时,不用重新做菜(重新打包镜像),直接换张配方表就行。
  • 存储(Storage) :相当于餐厅的中央大冰箱。容器有个特点:重启后里面的数据就没了。通过 PV 和 PVC,K8s 给需要持久化数据的应用(比如 MySQL)挂载了外部存储。就算餐盒(容器)被扔了,冰箱(存储卷)里的食材(数据)依然还在。
  • 发布(Release/Deployment) :相当于餐厅的菜品更新换代。K8s 的 Deployment 支持"滚动更新"。比如要把牛排升级为黑椒牛排,K8s 会先上一份新的,撤下一份旧的,一步步平滑替换。顾客完全感觉不到餐厅在换菜单,而且一旦发现新菜有问题,还能一键"秒退"回旧版本。
  • 监控(Monitoring) :相当于餐厅的监控摄像头和健康巡检员。通过 Metrics Server、Prometheus 等工具,K8s 实时盯着每个餐盒的健康状况(存活探针)和餐厅的繁忙程度(CPU/内存)。一旦发现某份牛排坏了(Pod 崩溃),它会立刻自动扔掉并重新做一份新的(自我修复);如果顾客爆满,它还能自动触发扩容(HPA),多加几张桌子。

如何把这套"超级餐厅"实操落地?

如果你想亲手把这 9 大技术揉在一起跑起来,建议按照下面这条从 0 到 1 的实操主线去推进:

  1. 准备地基(Linux + 网络):准备 3 台 Linux 虚拟机(1 台 Master,2 台 Node),配置好静态 IP,关闭防火墙和 Swap,打通彼此的网络。
  2. 安装引擎(容器):在所有机器上安装 Docker 或 containerd 容器运行时。
  3. 搭建指挥中心(调度) :使用 kubeadm 初始化 Master 节点,把 K8s 的大脑(API Server, Scheduler, Controller)跑起来。
  4. 扩容团队(调度) :把 2 台 Node 节点通过 kubeadm join 加入集群,让调度器有地方安排工作。
  5. 铺设管道(网络):安装 CNI 网络插件(如 Calico),让集群里的 Pod 能够互相通信。
  6. 实战演练(揉合所有技术)
    • 写一个包含 配置 (ConfigMap)、存储 (PVC)、容器(你的 Nginx/MariaDB 镜像)的 YAML 文件。
    • 通过 发布(Deployment)把它跑起来。
    • 通过 负载均衡(Service)把它暴露出去。
    • 最后通过 监控(kubectl top 或 Dashboard)观察它的运行状态。
相关推荐
comedate2 小时前
Windows / Linux GPU 虚拟内存布局差异与 CUDA 越界访问行为
linux·windows·mmu·cuda 越界访问
暴力求解4 小时前
Linux网络---传输层协议TCP(二)
linux·服务器·开发语言·网络·tcp/ip
JoyCong19984 小时前
ToDesk个人版、专业版、游戏版、设计版、性能版、团队版权益介绍
大数据·运维·游戏·远程工作·远程操作
ltl5 小时前
mTLS 工程实践:服务间双向认证怎么落地
kubernetes
ltl5 小时前
序列化格式深度对比:Protobuf、FlatBuffers、Cap’n Proto
linux
lengjingzju5 小时前
编译与调试完全指南—第17章 总结
linux
ltl5 小时前
容器网络性能真相:veth vs macvlan vs eBPF 数据面
linux
Elastic 中国社区官方博客6 小时前
ES95:面向 Elasticsearch 时间序列指标的自适应压缩
大数据·运维·elasticsearch·搜索引擎·架构·全文检索
我不会插花弄玉6 小时前
9.进程间通信(上)【由浅入深-Linux】
linux·共享内存·进程通信
mqiqe7 小时前
AgentScope Java 2.0 Agent 状态存储(AgentStateStore)深度解析:构建可恢复、可扩展的智能体运行时
java·运维·网络