【k8s】YAML语言基础

YAML介绍

YAML是一个类似于XML、JSON的标记语言。强调以数据为中心,并不是以标记语言为中心

<heima>
    <age>15</age>
    <address>Beijing</address>
</heima>
heima:
  age: 15
  address: Beijing

语法

  • 大小写敏感
  • 使用缩进表示层级关系
  • 缩进不允许使用tab,只允许空格( 低版本限制 )
  • 缩进的空格数不重要,只要相同层级的元素左对齐即可
  • '#'表示注释,从这个字符一直到行尾,都会被解析器忽略
  • 在k8s中,只需要知道lists、maps即可

支持的数据类型

  • 纯量:单个的、不可再分的值

    # 纯量, 就是指的一个简单的值,字符串、布尔值、整数、浮点数、Null、时间、日期
    # 1 布尔类型
    c1: true (或者True)
    # 2 整型
    c2: 234
    # 3 浮点型
    c3: 3.14
    # 4 null类型 
    c4: ~  # 使用~表示null
    # 5 日期类型
    c5: 2018-02-17    # 日期必须使用ISO 8601格式,即yyyy-MM-dd
    # 6 时间类型
    c6: 2018-02-17T15:02:31+08:00  # 时间使用ISO 8601格式,时间和日期之间使用T连接,最后使用+代表时区
    # 7 字符串类型
    c7: heima     # 简单写法,直接写值 , 如果字符串中间有特殊字符,必须使用双引号或者单引号包裹 
    c8: line1
        line2     # 字符串过多的情况可以拆成多行,每一行会被转化成一个空格
    
  • maps对象:键值对的集合,又称为映射(mapping)/ 哈希(hash) / 字典(dictionary)

    # 对象
    # 形式一(推荐):
    heima:
      age: 15
      address: Beijing
    # 形式二(了解):
    heima: {age: 15,address: Beijing}
    
  • 数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)

    # 数组
    # 形式一(推荐):
    address:
      - 顺义
      - 昌平  
    # 形式二(了解):
    address: [顺义,昌平]
    
    spec:
      containers:
        - name: front-end
          image: nginx
          ports:
            - containerPort: 80
        - name: flaskapp-demo
          image: jcdemo/flaskapp
          ports: 8080
    ————————————————
    "spec": {
        "containers": [{
            "name": "front-end",
            "image": "nginx",
            "ports": [{
                "containerPort": "80"
            }]
        }, {
            "name": "flaskapp-demo",
            "image": "jcdemo/flaskapp",
            "ports": [{
                "containerPort": "5000"
            }]
        }]
      }
    

注意事项

  • 书写yaml切记: 后面要加一个空格
  • 如果需要将多段yaml配置放在一个文件中,中间要使用---分隔

json与yaml互转

https://www.json2yaml.com/convert-yaml-to-json

猜你喜欢

转载自blog.csdn.net/al6nlee/article/details/133282996