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 作为示例。
相关推荐
久绊A3 小时前
春节前云平台运维深度巡检-实操经验
运维·安全·容器·kubernetes·云平台
!chen4 小时前
银河麒麟v11 kubeadm部署k8s v1.35.0高可用集群
云原生·容器·kubernetes
DB!!!5 小时前
自学Kubernestes(k8s)Day1 -- 核心基础概念
云原生·容器·kubernetes
陈陈CHENCHEN7 小时前
【Kubernetes】多集群管理实践 - kubeconfig
kubernetes
hwj运维之路7 小时前
超详细ubuntu22.04部署k8s1.28高可用(二)【结合ingress实现业务高可用】
运维·云原生·容器·kubernetes
切糕师学AI8 小时前
.NET Core Web 中的健康检查端点(Health Check Endpoint)
前端·kubernetes·.netcore
Cyber4K11 小时前
【Kubernetes专项】K8s 控制器 DaemonSet 从入门到企业实战应用
云原生·容器·kubernetes
切糕师学AI11 小时前
RKE(Rancher Kubernetes Engine) 是什么?
云原生·容器·kubernetes·rancher
龙飞0513 小时前
Kubernetes 排障实战:PVC 一直 Pending 的原因与解决方案
运维·学习·云原生·容器·kubernetes
岁岁种桃花儿13 小时前
流量入口Nginx动态发现K8s Ingress Controller实操指南
nginx·架构·kubernetes