核心资源对象
约 498 字大约 2 分钟
布欧-Lewyon
2026-05-15
资源清单
Kubernetes 中的所有事物都抽象为"资源对象",通过 YAML 或 JSON 定义。
资源分类
完整资源示例
apiVersion: v1 # API 版本
kind: Pod # 资源类型
metadata: # 元数据
name: nginx-pod
labels:
app: nginx
env: prod
spec: # 期望状态
containers:
- name: nginx
image: nginx:alpine
ports:
- containerPort: 80常用资源一览
| 资源 | API 版本 | 作用 |
|---|---|---|
| Pod | v1 | 最小调度单元,包含一个或多个容器 |
| Deployment | apps/v1 | 无状态应用,管理副本和滚动更新 |
| StatefulSet | apps/v1 | 有状态应用,稳定网络标识和存储 |
| DaemonSet | apps/v1 | 每个节点运行一个 Pod |
| Job | batch/v1 | 一次性任务 |
| CronJob | batch/v1 | 定时任务 |
| Service | v1 | 网络入口,负载均衡到 Pod |
| Ingress | networking.k8s.io/v1 | HTTP/HTTPS 路由 |
| ConfigMap | v1 | 非敏感配置 |
| Secret | v1 | 敏感数据(密码、Token) |
| PV / PVC | v1 | 持久化存储 |
| Namespace | v1 | 资源隔离 |
API 版本
# 查看支持的 API 版本
kubectl api-versions| 版本 | 说明 |
|---|---|
v1 | 稳定版 |
apps/v1 | 稳定版(Deployment、StatefulSet) |
batch/v1 | 稳定版(Job、CronJob) |
networking.k8s.io/v1 | 稳定版(Ingress、NetworkPolicy) |
autoscaling/v2 | 稳定版(HPA) |
Namespace
# 查看所有 Namespace
kubectl get namespaces
# NAME STATUS AGE
# default Active 7d
# kube-system Active 7d
# kube-public Active 7d
# kube-node-lease Active 7d
# 在指定 Namespace 下操作
kubectl get pods -n kube-system
# 创建 Namespace
kubectl create namespace myapp
# 切换默认 Namespace
kubectl config set-context --current --namespace=myapp小结
- K8s 资源通过 YAML 声明式定义,核心字段:
apiVersion/kind/metadata/spec。 - 常用资源:Pod(最小单元)、Deployment(无状态)、Service(网络)、ConfigMap(配置)。
- 版本前缀
v1apps/v1batch/v1均为稳定版。 - Namespace 实现多租户资源隔离,
kube-system存放系统组件。 kubectl api-versions查看集群支持的 API 版本。
上一节:集群架构与核心组件 下一节:Minikube 与 kind
