每日一Go-63、90% 的人学不会 K8s,不是因为难,而是第一天就被名词打蒙了

0 阅读3分钟

很多人学 K8s 学不下去,不是因为难,而是第一天就被一堆名词打蒙了。

今天我们不追求全,只讲K8s最核心、最有用的几个概念,讲到你“再也绕不开”。

Kubernetes 是一个开源的容器编排平台,它的设计初衷是让部署和管理大规模容器化应用变得简单。为了理解 K8s,我们可以把它想象成一个操作系统的分布式版本:它管理整个集群中的容器。

以下是 K8s 中最核心的几个概念,按照从底层资源到逻辑控制的顺序排列:

一、最小调度单位:Pod(可以理解为豌豆荚的荚)

在K8s里,你不会直接运行容器,而是运行Pod。

  • 定义:Pod 是 K8s 中最小的可部署单元,一个 Pod 可以包含一个或多个紧密相关的容器。

  • 特性:同一个 Pod 内的容器共享网络命名空间(IP地址和端口)和存储卷(Volume)。它们可以通过 localhost 互相通信。

Pod ≠ 容器,但容器一定在 Pod 里。一个豌豆荚里有一个或多个豌豆(容器)。

图片

二、集群架构: Nodes(节点)

K8s集群由两类节点组成:

  • Control Plane(Master Node):大脑,负责决策(如调度)、检测和响应集群事件。

  • Worker Node:打工人,负责运行实际的应用容器。每个 Node 上都有 kubelet(负责与master通信)和容器运行时(如Docker 或 containerd)。

图片

三、控制器: Deployment & StatefulSet

你通常不会手动创建 Pod,而是通过控制器来管理它们。以实现“自愈”和“扩缩容”。

  • Deployment:最常用的控制器,适用于无状态应用(如web服务、api服务)。它定义了副本数量,如果某个 Pod 挂了,Deployment 会自动补齐。

  • StatefulSet:适用于有状态应用(如数据库Redis,MySQL),保证 Pod 有固定的网络标识和持久化存储。

图片

四、服务发现:Service

Pod 是有生命周期的,一旦销毁重启,IP就会变。 Service 解决了这个问题。

作用:它为一组 Pod 提供一个固定的虚拟IP。无论后端 Pod 如何变动,客户端只需要访问Service 的 IP 即可。

负载均衡:Service 会自动将流量分发到后端的多个 Pod 实例上。

图片

五、配置管理:ConfigMap & Secret

为了实现代码与配置分离:

  • ConfigMap:存储非敏感配置(如环境变量、配置文件路径)。

  • Secret:存储敏感信息(如密码、Token、密钥),以 Base64 编码存储,安全性更高。

图片

六、存储:Volume & PersistentVolume(PV)

容器内的文件是短暂的,容器重启后数据会丢失。

  • PV(PersistnetVolume):集群中的一块存储资源。

  • PVC(PersistentVolumeClaim):用户对存储的需求申请(比如“我要10G空间”)。K8s 会自动把 PVC 绑定到合适的PV上。

    图片

七、K8s的设计哲学

K8s 的核心是声明式 API (Declarative API)。你不需要告诉 K8s “怎么做”(第一步启动容器,第二步检查状态),你只需要告诉它**“最终状态是什么”**(我要 3 个运行中的 Nginx 副本),剩下的事情由 K8s 的控制循环(Control Loop)自动完成。


*源码地址*

1、公众号“Codee君”回复“源码”获取源码

2、pan.baidu.com/s/1B6pgLWfS…


友情链接:加班费计算器(vx小程序搜索“加班计”)


如果您喜欢这篇文章,请您(点赞、分享、亮爱心),万分感谢!