YAML文件如何在kubernetes中使用
YAML文件如何在kubernetes中使用?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
01 YAML文件介绍
K8S在启动Pod的时候,会使用yaml文件的方式来启动,今天我们来看看YAML文件最常用的格式。
YAML的语法和JSON语法很像,都是通过key-value形式来组织的,它可以表示list、dict等常用数据类型,它的后缀一般使用".yml",它有如下几个特点:
大小写敏感
使用缩进表示递进关系
缩进不允许使用tab,只允许使用空格
缩进的空格数不重要,只要相同层级的元素左侧对齐即可,这一点类似Python语法
使用"#"来表示注释
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中可以有多个容器,如果再加上容器,就会变成下面的样子:
关于YAML文件如何在kubernetes中使用问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网行业资讯频道了解更多相关知识。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341