K8S-服务编排YAML
5.1 编写YAML注意事项
YAML 是一种简洁的非标记语言。
语法格式:
-
缩进表示层级关系
-
不支持制表符“tab”缩进,使用空格缩进
-
通常开头缩进 2 个空格
-
字符后缩进 1 个空格,如冒号、逗号等
-
“---” 表示YAML格式,一个文件的开始
-
“#”注释
5.2 YAML内容解析
在K8S部署一个应用的YAML内容大致分为两部分:
控制器定义:定义控制器属性
被控制对象:Pod模板,定义容器属性
具体字段意义:
1 2 3 4 5 6 7 8 9 10 11 | | apiVersion | API版本 | | ---------- | ---------- | | kind | 资源类型 | | metadata | 资源元数据 | | spec | 资源规格 | | replicas | 副本数量 | | selector | 标签选择器 | | template | Pod模板 | | metadata | Pod元数据 | | spec | Pod规格 | | containers | 容器配置 | |
5.3 资源字段太多,记不住怎么办?
很多同学YAML不会写!主要原因还是用的少,里面都是由于各个资源组成,熟悉了每个资源应用,自然就会写了,但也不用等到熟悉各种资源,这里教你几个技巧,帮助快速上手。
-
用run命令生成部署模板
kubectl create deployment nginx --image=nginx:1.14 -o yaml --dry-run> my-deploy.yaml
-
用get命令将已有部署的应用yaml导出
kubectl get my-deploy/nginx -o=yaml --export > my-deploy.yaml
-
如果某个字段单词不记得了,可以通过explain查看更详细的帮助文档获得
kubectl explain pods.spec.containers
关于YAML镜像策略一般有3种:
1 2 3 | 1.Always: 默认值,每次创建POD 都会重新拉取镜像 2.IfNotPresent: 镜像在宿主机不存在时拉取 3.Never: POd永远不会主动拉取这个镜像 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构