Kubernetes 资源全景解析
Kubernetes 中的资源(Resources)是 Kubernetes API 的核心对象,用来描述应用、网络、存储、配置以及集群本身的行为。理解这些资源,是学好 Kubernetes 的第一步。
一、工作负载资源 (Workload Resources)
管理和运行容器化应用的核心对象。
- Pod
最小部署单元,一个 Pod 可以包含一个或多个紧密耦合的容器。
示例 YAML:
apiVersion: v1
kind: Pod
metadata:
name: my-pod
spec:
containers:
- name: nginx
image: nginx:1.25
ports:
- containerPort: 80
- Deployment
最常用的控制器,适合 无状态应用。支持滚动更新、回滚。
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-deploy
spec:
replicas: 3
selector:
matchLabels:
app: web
template:
metadata:
labels:
app: web
spec:
containers:
- name: nginx
image: nginx:1.25
- ReplicaSet
确保 Pod 数量,一般由 Deployment 管理。 - StatefulSet
管理有状态应用(如数据库),提供稳定标识和有序部署。 - DaemonSet
在每个节点上运行一个 Pod,常用于日志、监控、存储守护进程。 - Job / CronJob
Job 负责一次性任务,CronJob 负责周期任务(类似 Linux cron)。
二、服务发现与负载均衡 (Service Discovery & Load Balancing)
- Service
提供稳定访问入口,支持多种类型:ClusterIP、NodePort、LoadBalancer。
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
type: NodePort
selector:
app: web
ports:
- port: 80
targetPort: 80
nodePort: 30080
- Ingress
提供 HTTP/HTTPS 路由,需配合 Ingress Controller(如 Nginx)。
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-ingress
spec:
rules:
- host: app.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: my-service
port:
number: 80
三、配置与存储资源 (Configuration & Storage)
- ConfigMap – 非机密配置
apiVersion: v1
kind: ConfigMap
metadata:
name: app-config
data:
APP_MODE: "production"
- Secret – 敏感信息(需额外加密)
apiVersion: v1
kind: Secret
metadata:
name: db-secret
type: Opaque
data:
password: cGFzc3dvcmQ= # base64("password")
- Volume – 存储挂载,生命周期和 Pod 一致。
- PersistentVolume (PV) & PersistentVolumeClaim (PVC) – 持久存储抽象。
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: my-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi
- StorageClass – 定义不同存储类型(如 SSD/HDD)。
四、集群级资源 (Cluster-Level Resources)
- Namespace – 逻辑隔离,常用于多环境管理(dev/test/prod)。
- ResourceQuota – 限制命名空间总资源使用量。
- LimitRange – 控制单个 Pod/容器的资源上下限。
五、元数据与安全资源 (Metadata & Security)
- HorizontalPodAutoscaler (HPA)
自动扩缩容 Pod 副本。
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: hpa-example
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: my-deploy
minReplicas: 2
maxReplicas: 5
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 60
- ServiceAccount – Pod 身份标识,用于 API 访问。
- Role / ClusterRole – 定义权限规则。
- RoleBinding / ClusterRoleBinding – 绑定用户/组/SA 和权限。
总结表格
|
分类 |
资源 |
作用 |
|
工作负载 |
Pod |
最小运行单元 |
|
Deployment |
无状态应用 |
|
|
StatefulSet |
有状态应用 |
|
|
DaemonSet |
每节点运行 |
|
|
Job / CronJob |
批处理/定时任务 |
|
|
网络 |
Service |
提供稳定入口 |
|
Ingress |
HTTP/HTTPS 路由 |
|
|
配置存储 |
ConfigMap |
非机密配置 |
|
Secret |
敏感配置 |
|
|
PV/PVC |
持久存储 |
|
|
StorageClass |
存储类别 |
|
|
集群级 |
Namespace |
逻辑隔离 |
|
ResourceQuota |
限制命名空间资源 |
|
|
LimitRange |
限制 Pod/容器资源 |
|
|
元数据/安全 |
HPA |
自动扩缩容 |
|
SA / Role / RBAC |
认证与授权 |
这样一份 文字 + YAML 示例 + 总结表格 的全景手册,你可以直接当作 学习大纲 或者 运维速查表。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...


