k8s资源清单文件详解
restartPolicy: Always# 重启策略(Always重启|OnFailure失败就重启|Never不重启)name: <deploy-name># Deployment名称。volumeName: <pv-name># 直接绑定指定PV(可选)storage: <size># 存储大小(如10Gi)storageClassName: <class-name># 存储类名称(可选)
·
常用字段说明
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): 可被多个节点读写挂载
更多推荐
所有评论(0)