时间:2021-05-19
K8S在启动Pod的时候,会使用yaml文件的方式来启动,今天我们来看看YAML文件最常用的格式。
YAML的语法和JSON语法很像,都是通过key-value形式来组织的,它可以表示list、dict等常用数据类型,它的后缀一般使用".yml",它有如下几个特点:
1、大小写敏感
2、使用缩进表示递进关系
3、缩进不允许使用tab,只允许使用空格
4、缩进的空格数不重要,只要相同层级的元素左侧对齐即可,这一点类似Python语法
5、使用"#"来表示注释
6、key-value结构用{}包围,list结构用[]包围
a、使用key:value的方式来表示,key和value中间需要一个空格,否则会报错;
b、如果有层级关系,可以通过下面两种方法来表示:
key:{key1: value1,key2: value1}或者key: key1:value1 key2:value2c、表示一个key-value格式,其中value是一个dict
websites:YAML:yaml.orgRuby:ruby-lang.orgPython:python.orgPerl:use.perl.org表示成json格式就是:websites:{YAML:'yaml.org',Ruby:'ruby-lang.org',Python:'python.org',Perl:'use.perl.org'}以-开头表示一个数组,如下:
-A-B-C表示成数组是:[A,B,C]下面是一个稍微复杂点儿的例子
students:-id:1name:zhangsanage:12-id:2name:lisiage:15表示成数组是:students:[{id:1,name:zhangsan,age:12},{id:2,name:lisi,age:15}]数组中的元素又是一个key-value结构的dict一段Json和一段Yaml的对比:
yaml格式的文件nodes:-name:jobEtype:commandconfig:command:echo"ThisisjobE"dependsOn:-jobD-name:jobDtype:commandconfig:command:echo"ThisisjobD"dependsOn:-jobA-jobB-jobC表示成json格式就是:{"nodes":[{"name":"jobE","type":"command","config":{"command":"echo\"ThisisjobE\""},"dependsOn":["jobD"]},{"name":"jobD","type":"command","config":{"command":"echo\"ThisisjobD\""},"dependsOn":["jobA","jobB","jobC"]}]}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文件的资料请关注其它相关文章!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
一、yaml文件介绍yaml是一个专门用来写配置文件的语言。1.yaml文件规则区分大小写;使用缩进表示层级关系;使用空格键缩进,而非Tab键缩进缩进的空格数目
首先安装pipinstallruamel.yaml用于修改yaml文件#coding:utf-8fromruamelimportyamldefup_yml(ip
什么是yaml一种标记语言。yaml是专门用来写配置文件的语言,非常简洁和强大更直观,更方便,有点类似于json格式yaml文件格式:test.yaml安装ya
pyyaml模块在python中用于处理yaml格式数据,主要使用yaml.safe_dump()、yaml.safe_load()函数将python值和yam
这一刻已经来了很久。Kubernetes在1.20版本之后弃用Docker作为容器运行时,转而使用使用为Kubernetes创建的ContainerRuntim