Kubernetes 中spec解析

在 Kubernetes 中,spec(规格说明)部分是资源配置文件的核心内容,它定义了资源期望的状态或配置。与 metadata 不同,spec 描述了资源实际"做什么"或者"应该如何运行",例如一个 Pod 应该运行哪些容器,一个 Deployment 应该管理多少个副本,以及服务如何路由流量等。下面通过几个常见的资源类型来解析 spec 的关键元素。

1、对于 Deployment

yaml 复制代码
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
      - name: my-container
        image: nginx:latest
        ports:
        - containerPort: 80
  • replicas: 指定副本集应该运行的副本数量。
  • selector.matchLabels: 定义标签选择器,用来确定哪些 Pods 应该由这个 Deployment 管理。
  • template : 描述了 Pod 的模板,实际创建的每个 Pod 将基于此模板。
    • containers: 定义了容器列表及其配置,包括镜像、端口等。

2、对于 Service

yaml 复制代码
apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  selector:
    app: my-app
  ports:
  - protocol: TCP
    port: 80
    targetPort: 9376
  type: ClusterIP
  • selector: 用于匹配后端 Pods 的标签,确保 Service 能正确路由到对应的 Pods。
  • ports: 定义了服务的端口映射,包括协议、外部访问端口和服务监听的容器端口。
  • type: 指定服务的类型,如 ClusterIP、NodePort、LoadBalancer 或 ExternalName,决定了服务的可访问方式。

3、对于 Pod

yaml 复制代码
apiVersion: v1
kind: Pod
metadata:
  name: my-pod
spec:
  containers:
  - name: my-container
    image: nginx:latest
    ports:
    - containerPort: 80
    volumeMounts:
    - mountPath: /var/log/nginx
      name: nginx-logs
  volumes:
  - name: nginx-logs
    emptyDir: {}
  • containers: 描述了 Pod 中包含的容器,包括容器名、镜像、端口暴露等。
  • volumeMounts : 定义了容器内的卷挂载点,关联到 volumes 定义的存储。
  • volumes : 定义了 Pod 使用的存储卷,这里是一个空目录 emptyDir 作为示例。
相关推荐
赵文宇(温玉)2 天前
CoreDNS的hosts插件的缺行配置导致k8s集群异常
容器·kubernetes·rancher
张洛闻Eren2 天前
k8s云原生【第十课】:水平 Pod 自动扩缩容
运维·数据库·云原生·kubernetes·github
Thneonl2 天前
你的 Pod 为什么 Pending:调度器两阶段
后端·kubernetes
不吃香菜kkk、2 天前
CI/CD(GitOps)学习与部署手册
运维·云原生·容器·kubernetes·云计算·jenkins·argocd
ysu_03143 天前
【2026】K8s GPU调度空占怎么解?Kueue与Volcano Gang配置
云原生·kubernetes·gpu算力·volcano·ai基础设施·kueue·gang scheduling
哈__4 天前
KES-Operator重塑Kubernetes环境下的KES数据库集群管理
数据库·kubernetes·operator·kes
九皇叔叔4 天前
K8S 资源菜单
docker·容器·kubernetes·k8s
安易算力4 天前
PUE优化工程实践:从1.5到1.2的制冷架构与气流组织改造路径
网络·python·容器·架构·kubernetes
kuroomi5 天前
Ingress-Nginx与kubernetes 网络
linux·运维·网络·kubernetes
程序猿阿越5 天前
containerd如何创建Pod
后端·kubernetes·源码阅读