【云原生 | 从零开始学 Kubernetes】四、Kubernetes 之 YAML 文件详解
概述
k8s 集群中对资源管理和资源对象编排部署都可以通过声明样式(YAML)文件来解决,也就是可以把需要对资源对象操作编辑到 YAML 格式文件中,我们把这种文件叫做资源清单文件,通过 kubectl 命令直接使用资源清单文件就可以实现对大量的资源对象进行编排部署了。一般在我们开发的时候,都是通过配置 YAML 文件来部署集群的。
YAML 文件:就是资源清单文件,用于资源编排
YAML 文件介绍
YAML 概述
YAML :仍是一种标记语言。为了强调这种语言以数据做为中心,而不是以标记语言为重点。
YAML 是一个可读性高,用来表达数据序列的格式。
YAML 基本语法
使用空格做为缩进
缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
低版本缩进时不允许使用 Tab 键,只允许使用空格
使用 #标识注释,从这个字符一直到行尾,都会被解释器忽略
使用 --- 表示新的 yaml 文件开始
YAML 支持的数据结构
纯量
单个的、不可再分的值,也就是指的一个简单的值,字符串、布尔值、整数、浮点数、Null、时间、日期。
对象
键值对的集合,又称为映射(mapping) / 哈希(hashes) / 字典(dictionary)
数组
YAML 文件组成部分
主要分为了两部分,一个是控制器的定义 和 被控制的对象
属性说明
在一个 YAML 文件的控制器定义中,有很多属性名称
如何快速编写 YAL 文件
一般来说,我们很少自己手写 YAML 文件,因为这里面涉及到了很多内容,我们一般都会借助工具来创建
使用 kubectl create 命令
这种方式一般用于资源没有部署的时候,我们可以直接创建一个 YAML 配置文件
或者我们可以输出到一个文件中kubectl create deployment web --image=nginx -o yaml --dry-run > hello.yaml
然后我们就在文件中直接修改即可
使用 kubectl get 命令导出 yaml 文件
可以首先查看一个目前已经部署的镜像kubectl get deploy
然后我们导出 nginx 的配置kubectl get deploy nginx -o=yaml --export > nginx.yaml
然后会生成一个 nginx.yaml
的配置文件
命令式对象配置
命令式对象配置就是使用命令配合配置文件一起来操作 kubernetes 资源。创建一个 nginx.yml,内容如下:
执行 create 命令,创建资源:
此时发现创建了两个资源对象,分别是 namespace 和 pod
执行 get 命令,查看资源:
执行 delete 命令,删除资源:
此时发现两个资源对象被删除了。
命令式对象配置的方式操作资源,可以简单的认为:命令 + yaml 配置文件(里面是命令需要的各种参数)
声明式对象配置
声明式对象配置跟命令式对象配置很相似,但是它只有一个命令 apply。
其实声明式对象配置就是使用 apply 描述一个资源最终的状态(在 yaml 中定义状态)
使用 apply 操作资源:如果资源不存在,就创建,相当于 kubectl create
如果资源已存在,就更新,相当于 kubectl patch
node 节点如何使用 kubectl
kubectl 的运行是需要进行配置的,它的配置文件是 $HOME/.kube,如果想要在 node 节点运行此命令,需要将 master 上的.kube 文件复制到 node 节点上,即在 master 节点上执行下面操作
写在最后
创作不易,如果觉得内容对你有帮助,麻烦给个三连关注支持一下我!如果有错误,请在评论区指出,我会及时更改!目前正在更新的系列:从零开始学 k8s
感谢各位的观看,文章掺杂个人理解,如有错误请联系我指出~
版权声明: 本文为 InfoQ 作者【泡泡】的原创文章。
原文链接:【http://xie.infoq.cn/article/bad7618338b2f8516b13ece6b】。未经作者许可,禁止转载。
评论