常用字段说明

apiVersion:   # API版本(核心组v1, apps组apps/v1等)
kind:         # 资源类型(Pod,Deployment等)
metadata:     # 元数据(名称,标签,注解等)
  name:       # 资源名称
  labels:     # 标签(用于选择器)
spec:         # 资源期望状态
status:       # 资源实际状态(由系统维护)

kubectl explain <resource>.<field>  # 查看字段详细说明

Pod 资源清单

apiVersion: v1                     # Kubernetes API 版本
kind: Pod                          # 资源类型为Pod
metadata:
  name: <pod-name>                 # Pod名称
  labels:                          # 标签用于选择器
    <key>: <value>                 # 标签键值对
spec:
  containers:
  - name: <container-name>         # 容器名称
    image: <image>                 # 容器镜像
    ports:
    - containerPort: <port>        # 容器暴露端口
    env:                           # 环境变量
    - name: <var-name>             # 变量名
      value: <var-value>           # 变量值
    resources:                     # 资源限制
      limits:                      # 硬限制
        cpu: "<limit>"             # CPU限制
        memory: "<limit>"          # 内存限制
      requests:                    # 资源请求
        cpu: "<request>"           # CPU请求
        memory: "<request>"        # 内存请求
  restartPolicy: Always       # 重启策略(Always重启|OnFailure失败就重启|Never不重启)

Deployment 资源清单

管理多个 Pod 。

apiVersion: apps/v1                # 使用apps API组
kind: Deployment                   # 资源类型为Deployment
metadata:
  name: <deploy-name>              # Deployment名称
spec:
  replicas: <number>              # Pod副本数
  selector:                       # 选择器
    matchLabels:                   # 匹配标签
      <key>: <value>              # 标签键值对
  strategy:                       # 更新策略
    type: RollingUpdate           # 滚动更新类型
    rollingUpdate:                # 滚动更新配置
      maxSurge: 25%               # 最大可超出副本数
      maxUnavailable: 25%         # 最大不可用比例
  template:                       # Pod模板
    metadata:
      labels:                     # Pod标签
        <key>: <value>
    spec:                         # Pod规格
      containers:
      - name: <container-name>   # 容器名称
        image: <image>           # 容器镜像
        ports:
        - containerPort: <port>  # 容器端口

Service 资源清单

自动调度,一个 Pod 故障后保持原来的 IP 在新的节点进行部署,不管 Pod 如何变化总能找到对应的 Pod 。

apiVersion: v1                    # 核心API组
kind: Service                     # 资源类型为Service
metadata:
  name: <service-name>            # Service名称
spec:
  selector:                      # 选择后端Pod的标签
    <key>: <value>               # 标签键值对
  ports:                         # 端口配置
  - protocol: TCP                # 协议类型
    port: <service-port>         # Service端口
    targetPort: <pod-port>       # 目标Pod端口
  type: ClusterIP|NodePort|LoadBalancer  # Service类型

ConfigMap 资源清单

一种临时卷,保存的数据不可超过 1MiB,用来配置环境变量,修改配置文件的参数、数据库的地址等。

apiVersion: v1
kind: ConfigMap                   # 配置映射资源
metadata:
  name: <cm-name>                # ConfigMap名称
data:                            # 配置数据
  <key>: |                       # 多行配置值
    <multi-line-value>
  <key2>: <single-line-value>    # 单行配置值

Secret 资源清单

一种临时卷,专门用于保存机密数据,用来配置一些需要加密的环境变量或文件,访问需要认证登录的私有镜像仓库。

apiVersion: v1
kind: Secret                      # 密钥资源
metadata:
  name: <secret-name>            # Secret名称
type: Opaque                     # 通用类型
data:                            # base64编码数据
  <key>: <base64-value>          # base64键值对
stringData:                      # 明文数据(自动base64)
  <key>: <plain-text-value>      # 明文键值对

PersistentVolume (PV) 资源清单

apiVersion: v1
kind: PersistentVolume            # 持久卷资源
metadata:
  name: <pv-name>                # PV名称
spec:
  capacity:                      # 存储容量
    storage: <size>              # 存储大小(如10Gi)
  accessModes:                   # 访问模式
  - ReadWriteOnce|ReadOnlyMany|ReadWriteMany
  persistentVolumeReclaimPolicy: Retain|Recycle|Delete  # 回收策略
  storageClassName: <class-name> # 存储类名称
  hostPath:                      # 主机路径类型
    path: </path/to/dir>         # 主机目录路径

PersistentVolumeClaim (PVC) 资源清单

apiVersion: v1                      # 核心API组
kind: PersistentVolumeClaim         # 持久卷声明资源
metadata:
  name: <pvc-name>                 # PVC名称
  namespace: <namespace>           # 命名空间(可选)
spec:
  accessModes:                     # 访问模式
    - ReadWriteOnce|ReadOnlyMany|ReadWriteMany
  resources:                       # 资源请求
    requests:
      storage: <size>              # 存储容量请求(如10Gi)
  storageClassName: <class-name>   # 存储类名称(可选)
  volumeName: <pv-name>            # 直接绑定指定PV(可选)
  selector:                        # 标签选择器(可选)
    matchLabels:                   # 匹配PV标签
      <key>: <value>               # 标签键值对

# accessModes:  # 访问模式(必须与PV匹配)
#   - ReadWriteOnce(RWO): 可被单个节点读写挂载
#   - ReadOnlyMany(ROX): 可被多个节点只读挂载  
#   - ReadWriteMany(RWX): 可被多个节点读写挂载
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐