kubernetes YAML文件的使用
01 YAML文件介绍
K8S在启动Pod的时候,会使用yaml文件的方式来启动,今天我们来看看YAML文件最常用的格式。
YAML的语法和JSON语法很像,都是通过key-value形式来组织的,它可以表示list、dict等常用数据类型,它的后缀一般使用".yml",它有如下几个特点:
1、大小写敏感
2、使用缩进表示递进关系
3、缩进不允许使用tab,只允许使用空格
4、缩进的空格数不重要,只要相同层级的元素左侧对齐即可,这一点类似Python语法
5、使用"#"来表示注释
6、key-value结构用{}包围,list结构用[]包围
YAML---key-value类型
a、使用key:value的方式来表示,key和value中间需要一个空格,否则会报错;
b、如果有层级关系,可以通过下面两种方法来表示:
key:{key1: value1,key2: value1} 或者 key: key1:value1 key2:value2
c、表示一个key-value格式,其中value是一个dict
websites: YAML: yaml.org Ruby: ruby-lang.org Python: python.org Perl: use.perl.org 表示成json格式就是: websites: { YAML: 'yaml.org', Ruby: 'ruby-lang.org', Python: 'python.org', Perl: 'use.perl.org' }
YAML---list类型
以-开头表示一个数组,如下:
- A - B - C 表示成数组是:[A,B,C]
下面是一个稍微复杂点儿的例子
students: - id: 1 name: zhangsan age: 12 - id: 2 name: lisi age: 15 表示成数组是: students:[{id: 1,name: zhangsan,age: 12},{id: 2,name: lisi,age: 15}] 数组中的元素又是一个key-value结构的dict
一段Json和一段Yaml的对比:
yaml格式的文件 nodes: - name: jobE type: command config: command: echo "This is job E" dependsOn: - jobD - name: jobD type: command config: command: echo "This is job D" dependsOn: - jobA - jobB - jobC 表示成json格式就是: { "nodes":[ { "name":"jobE", "type":"command", "config":{ "command":"echo \"This is job E\"" }, "dependsOn":[ "jobD" ] }, { "name":"jobD", "type":"command", "config":{ "command":"echo \"This is job D\"" }, "dependsOn":[ "jobA", "jobB", "jobC" ] } ] }
02 K8S中Master、Node和Pod的关系
Master的架构图:
其中:
API Server提供了HTTP Rest接口,它是k8s中的所有资源增删改查的唯一入口,也是集群控制的入口;
Scheduler是负责资源调度的进程;
Controller Manager是所有资源对象的自动化控制中心;
Etcd提供资源对象的数据保存服务
K8S使用Master节点和Node节点部署的方式来管理整个集群,Master节点、Node节点和Pod的关系使用官方的结构图来说明比较贴切:
可以看到,Master和Node之间有直接的通信交互过程,而Pod是部署在Node上的,简单理解,就是:
Master是一台服务器,有固定的IP地址
Node是一台服务器,有固定的IP地址
Pod是Node上的一个进程,有一个虚拟的IP地址,有可能和Node IP地址相同,也有可能不同。
而我们知道,一个Pod中可以有多个容器,如果再加上容器,就会变成下面的样子:
他们之间的调用关系简单来说就是:
当Pod被创建的时候,它的信息就会被放入Master的Etcd存储,随后这些创建Pod的信息会被K8S调度到某个Node上,并进行绑定,然后该Pod它所在的Node上的kubelet进程实例化成一组相关的Docker容器并启动起来。
以上就是kubernetes YAML文件的使用的详细内容,更多关于kubernetes YAML文件的资料请关注猪先飞其它相关文章!
相关文章
- 本文主要介绍了Python使用Kubernetes API访问集群,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-05-30
- 这篇文章主要介绍了Golang使用第三方包viper读取yaml配置信息操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-12-18
- 这篇文章主要介绍了Springboot-yaml配置和自动配置原理分析,自动配置原理是配置文件配置debug: true可以在控制台打印自动配置报告.可以打印所有的启动的自动配置和没有启动的自动配置类,需要的朋友可以参考下...2021-06-21
- 这篇文章主要介绍了如何在kubernetes中创建Pod,帮助大家更好的理解和学习使用kubernetes,感兴趣的朋友可以了解下...2021-04-01
使用client-go工具调用kubernetes API接口的教程详解(v1.17版本)
这篇文章主要介绍了使用client-go工具调kubernetes API接口(v1.17版本),本文通过图文实例相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-08-25- 这篇文章主要介绍了kubernetes YAML文件的使用,帮助大家更好的理解和学习使用kubernetes,感兴趣的朋友可以了解下...2021-04-01
Springboot整合Spring Cloud Kubernetes读取ConfigMap支持自动刷新配置的教程
这篇文章主要介绍了Springboot整合Spring Cloud Kubernetes读取ConfigMap支持自动刷新配置,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-09-05- 这篇文章主要介绍了基于Python和PyYAML读取yaml配置文件数据,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-04-27
- 这篇文章主要介绍了Python读取YAML文件过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-05-08
- 本文主要是总结yaml常用的一些数据形式,对于我们正常的项目使用,已经足够用了,接下来通过本文给大家分享python 中yaml文件用法,需要的朋友参考下吧...2021-07-05
- 这篇文章主要为大家详细介绍了如何利用Python语言实现yaml与json文件的批量互转,文中的示例代码讲解详细,感兴趣的小伙伴可以动手尝试一下...2022-07-27
- 这篇文章主要为大家介绍了Kubernetes探针使用详细介绍,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪...2022-03-19
- 这篇文章主要介绍了SpringBoot中YAML语法及几个注意点说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2022-02-16
- 这篇文章主要介绍了SpringBoot中的yaml配置文件问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2022-06-27
- Nginx已经是互联网IT业界一个无敌的存在,作为反向代理、负载均衡、Web服务器等多种角色的扮演者,下面这篇文章主要给大家介绍了关于Kubernetes中Nginx配置热加载的相关资料,需要的朋友可以参考下...2022-01-19
pytest自动化测试数据驱动yaml/excel/csv/json
这篇文章主要为大家介绍了pytest自动化测试数据驱动yaml/excel/csv/json的示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪...2022-06-27- YAML是一种直观的能够被电脑识别的的数据序列化格式,容易被人类阅读,并且容易和脚本语言交互。本文将详细介绍一下Python中yaml文件的用法,需要的可以参考一下...2022-03-30
- 大多数卷积神经网络都是直接通过写一个Model类来定义的,这样写的代码其实是比较好懂,也很方便。但是本文将介绍另一个方法:利用yaml定义卷积网络,感兴趣的可以了解一下...2022-10-21