当前位置: 首页 > news >正文

[K8S学习笔记]YAML相关

文章目录

    • 0 Key component:
    • 1 基本结构
    • 2 常见对象类型
    • 3 metadata 元数据
    • 4 spec 期望状态
    • 5 多文档 YAML
    • 6 最佳实践
    • 7 Label & Selector
      • a. label 是什么
      • b. selector 是什么
    • 8 YAML 校验方法
    • 9 格式
      • a. 缩进必须使用空格
      • b. 冒号后面要加空格
      • c. 列表使用破折号 - 并缩进
      • d. 字符串和数字

[[ TOC]]

0 Key component:

  1. Metadata
  2. Specification
  3. Status

1 基本结构

Kubernetes YAML 文件通常包含四个核心字段:

apiVersion: v1         # API 版本
kind: Pod              # 对象类型(Pod、Deployment、Service 等)
metadata:              # 元数据  
name: mypod  labels:  app: nginx  
spec:                  # 期望状态  
containers:  - name: nginx  image: nginx:1.21

2 常见对象类型

  • Pod:最小的运行单元
  • Deployment:管理 ReplicaSet,支持滚动更新和回滚
  • Service:提供稳定访问入口,做负载均衡
  • ConfigMap / Secret:存放配置和敏感数据
  • Namespace:资源逻辑隔离
  • Ingress:基于域名和路径的 HTTP/HTTPS 路由

3 metadata 元数据

  • name:资源的名字,必须唯一
  • labels:标签,用于分组和选择资源(Service 找 Pod,Deployment 找 Pod)
  • annotations:额外信息,通常被工具或系统使用

4 spec 期望状态

  • containers(在 Pod/Deployment 中)
    • image:容器镜像
    • ports:容器端口
    • resources:CPU/内存请求与限制
    • env:环境变量
  • replicas(在 Deployment 中定义副本数)
  • selector:选择器(Deployment 关联 Pod,Service 关联 Pod)

5 多文档 YAML

一个文件中可以定义多个对象,用 — 分隔:

apiVersion: v1  
kind: Service  
metadata:  name: nginx-svc  
spec:  selector:  app: nginx  
---  
apiVersion: apps/v1  
kind: Deployment  
metadata:  name: nginx-deploy  
spec:  replicas: 3

6 最佳实践

  • 合理使用 labels,例如 app: nginx, tier: frontend
  • 避免写死 Pod IP,统一通过 Service 访问
  • 在资源中定义 requests 和 limits,避免资源抢占
  • 配置文件建议纳入版本控制,方便回滚和团队协作

7 Label & Selector

a. label 是什么

label(标签)是附加在 Kubernetes 对象上的 键值对,用来描述对象的属性。
例子:

metadata:
name: nginx-pod
labels:
app: nginx
tier: frontend
上面这个 Pod 有两个 label:

*   app: nginx
*   tier: frontend

label 本身没有实际功能,但它们是 分组和筛选资源的依据。

b. selector 是什么

selector(选择器)是用来匹配 label 的规则。
例子:

spec:  selector:  matchLabels:  app: nginx

这里的 selector 表示:找出所有 app=nginx 的 Pod。

8 YAML 校验方法

  1. 在 PowerShell 用 kubectl apply --dry-run=client -f pod.yaml 检查
  2. 或者用在线 YAML 校验工具,例如 https://yamlchecker.com

9 格式

a. 缩进必须使用空格

  • 不能用 Tab 键
  • 通常每一级缩进使用 2 个空格
    ✅ 正确
containers:  - name: nginx  image: nginx:latest

❌ 错误(使用 Tab)

containers:  - name: nginx  image: nginx:latest

b. 冒号后面要加空格

✅ 正确
name: tiny-pod
❌ 错误
name:tiny-pod

c. 列表使用破折号 - 并缩进

ports:  - containerPort: 80
  • “-” 前面和父级键同级缩进
  • 列表项内部继续缩进

d. 字符串和数字

  • 字符串一般不用引号
  • 数字单位(如 CPU/内存)需要加引号:
resources:  requests:  cpu: "100m"  memory: "128Mi"

文章转载自:

http://EMZns4uK.wdwfm.cn
http://7ISaKZMY.wdwfm.cn
http://JjGlU7CA.wdwfm.cn
http://14Rwq2ro.wdwfm.cn
http://ovCmfUg9.wdwfm.cn
http://zqaLSPIR.wdwfm.cn
http://C6iQ6Brh.wdwfm.cn
http://nrYWB2DY.wdwfm.cn
http://TwBJaGhy.wdwfm.cn
http://4kqEZmjJ.wdwfm.cn
http://DZFsmYjg.wdwfm.cn
http://9gIIfI1r.wdwfm.cn
http://Fk7KnCmg.wdwfm.cn
http://VtKtfpq4.wdwfm.cn
http://BCCfEoQ7.wdwfm.cn
http://ya4sMyza.wdwfm.cn
http://FIyLYhvr.wdwfm.cn
http://5s5qZVkM.wdwfm.cn
http://NaPFNRXQ.wdwfm.cn
http://VHTy6sRu.wdwfm.cn
http://xypGFmRo.wdwfm.cn
http://tEq4qkFe.wdwfm.cn
http://hwLKQwct.wdwfm.cn
http://XqD1CuvM.wdwfm.cn
http://UEoSaDA6.wdwfm.cn
http://zkNlid4w.wdwfm.cn
http://Ut6nbWgU.wdwfm.cn
http://Z3vectL0.wdwfm.cn
http://T4qX1Imc.wdwfm.cn
http://2hp6FKrk.wdwfm.cn
http://www.dtcms.com/a/384617.html

相关文章:

  • 贪心算法在物联网能耗优化中的应用
  • 使用paddlepaddle-Gpu库时的一个小bug!
  • 从 Linux 到 Kubernetes:操作系统的演变与云原生未来
  • Java网络编程:(socket API编程:TCP协议的 socket API -- 服务器端处理请求的三个步骤)
  • 新能源汽车总装车间案例:四台S7-1200通过无线网桥同步控制16组ET 200SP的秘诀
  • k8s事件驱动运维利器 shell operator
  • GitHub Actions 部署配置
  • java后端工程师进修ing(研一版‖day45)
  • k8s核心资料基本操作
  • Redis 在电商系统中的应用:高并发场景下的架构艺术
  • RK3588:MIPI底层驱动学习——芯外拾遗第一篇:从四个模块到整个“江湖”
  • K8S里的“豌豆荚”:Pod
  • OpenStack 管理与基础操作学习笔记(一):角色、用户及项目管理实践
  • 大数据毕业设计选题推荐-基于大数据的金融数据分析与可视化系统-Spark-Hadoop-Bigdata
  • Python爬虫实战:研究Pandas,构建期货数据采集和分析系统
  • 软考中级习题与解答——第六章_计算机硬件基础(3)
  • Nvidia显卡架构解析与cuda应用生态浅析
  • AppStore 如何上架?iOS 应用发布全流程、uni-app 打包上传 ipa、App Store 审核与多工具组合实战指南
  • 贪心算法应用:卫星链路调度问题详解
  • 基于https的数据加密技术
  • 自学嵌入式第四十一天:单片机-中断
  • 二分图 系列
  • DDAC工作流的PyCharm项目前置准备清单
  • 【Kubernetes】K8s 集群外服务配置 Service 访问
  • RESTFul API接口设计指南_V2
  • Linux第十七讲:应用层自定义协议与序列化
  • ESLint 自定义规则开发
  • 三维地震数据体:形态、处理流程与勘探应用笔记
  • HTTP标头全解析:保护你的Web应用!
  • 机器人控制器开发(定位——cartographer ros2 使用2)