首页 > 技术文章 > K8S-服务编排YAML

zhaobin-diray 2020-07-22 20:49 原文

5.1 编写YAML注意事项

YAML 是一种简洁的非标记语言。

语法格式:

  • 缩进表示层级关系

  • 不支持制表符“tab”缩进,使用空格缩进

  • 通常开头缩进 2 个空格

  • 字符后缩进 1 个空格,如冒号、逗号等

  • “---” 表示YAML格式,一个文件的开始

  • “#”注释

5.2 YAML内容解析

在K8S部署一个应用的YAML内容大致分为两部分:

 

 

控制器定义:定义控制器属性

被控制对象:Pod模板,定义容器属性

具体字段意义:

| 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.Always: 默认值,每次创建POD 都会重新拉取镜像
2.IfNotPresent: 镜像在宿主机不存在时拉取
3.Never: POd永远不会主动拉取这个镜像

 

推荐阅读