kubernetes YAML文件的使用

 更新时间:2021年04月01日 10:58:57   作者:DBA随笔  
这篇文章主要介绍了kubernetes YAML文件的使用,帮助大家更好的理解和学习使用kubernetes,感兴趣的朋友可以了解下

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文件的资料请关注脚本之家其它相关文章!

相关文章

  • Hadoop 2.x与3.x 22点比较,Hadoop 3.x比2.x的改进

    Hadoop 2.x与3.x 22点比较,Hadoop 3.x比2.x的改进

    本文介绍了Hadoop3版本中添加的新功能,Hadoop 2和Hadoop 3的区别,在这篇文章中,我们将讨论Hadoop 2.x与Hadoop 3.x之间的比较。感兴趣的朋友跟随小编一起看一下
    2018-09-09
  • 玩客云内置EMMC存储刷入Armbian系统(图文详解)

    玩客云内置EMMC存储刷入Armbian系统(图文详解)

    Armbian是其他项目可以信赖的单板计算机(SBC)的基本操作系统平台,接下来通过本文给大家介绍玩客云内置EMMC存储刷入Armbian系统,需要的朋友可以参考下
    2022-05-05
  • Kubernetes集群环境初始化

    Kubernetes集群环境初始化

    这篇文章介绍了Kubernetes集群环境初始化的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • 2022最新青龙面板部署完整版图文教程

    2022最新青龙面板部署完整版图文教程

    这篇文章主要介绍了2022最新青龙面板部署完整版图文教程,下面以腾讯云服务器为例,先选地区、然后选择官方镜像、系统镜像、Centos7.6版本,需要的朋友可以参考下
    2022-05-05
  • 超详细的Kubernetes (k8s)常用命令整理

    超详细的Kubernetes (k8s)常用命令整理

    这篇文章主要介绍了Kubernetes (k8s)常用命令整理的相关资料,讲解了Kubernetes集群管理、节点资源查看、Pod管理、部署管理、命名空间管理、服务负载均衡、调试排错以及备份恢复等操作的命令,需要的朋友可以参考下
    2025-03-03
  • K8s如何拉取habor镜像

    K8s如何拉取habor镜像

    这篇文章主要介绍了K8s如何拉取habor镜像,在daemon.json中添加仓库地址,需要在创建资源对象所在的节点进行添加,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2024-04-04
  • K8S命令如何查看日志

    K8S命令如何查看日志

    文章内容总结:K8S命令查看日志,列出所有节点、切换节点、查看容器日志及部分日志内容,个人经验分享,希望对大家有所帮助
    2024-11-11
  • K8s-helm简介及基本概念详解

    K8s-helm简介及基本概念详解

    ​Helm 使用的包格式称为 chart,它是一个描述 Kubernetes 相关资源对象的文件集合,这篇文章主要介绍了K8s-helm简介及基本概念,需要的朋友可以参考下
    2022-07-07
  • 虚拟化和云计算的区别分析

    虚拟化和云计算的区别分析

    这篇文章主要介绍了虚拟化和云计算的区别,深入浅出的列举分析了虚拟化与云计算的几点常见区别,需要的朋友可以参考下
    2016-10-10
  • 浅析kubernetes的控制器和标签

    浅析kubernetes的控制器和标签

    这篇文章主要介绍了kubernetes的控制器和标签的相关资料,帮助大家更好的理解和学习使用k8s,感兴趣的朋友可以了解下
    2021-04-04

最新评论