yml文件tab 空格_YAML文件格式语法

本文介绍了YAML的基本语法,强调了大小写敏感、使用空格而非Tab进行缩进的关键规则。在Kubernetes中,YAML主要用于定义资源,如Lists和Maps,提供便捷性、可维护性和灵活性。示例展示了如何定义ServiceAccount和Deployment,以及嵌套的数据结构。
摘要由CSDN通过智能技术生成

yaml基础

学习k8s就不得不学习下yaml语法了

yaml是一种简洁的非标记语言,YAML以数据为中心,使用空白,缩进,分行组织数据,从而使得表示更加简洁易读。

YAML语法规则:

大小写敏感

使用缩进表示层级关系

缩进时不允许使用Tab键,只允许使用空格

缩进的空格数目不重要,只要相同层级的元素左侧对齐即可

”#” 表示注释,从这个字符一直到行尾,都会被解析器忽略

字符串可以不用引号标注

列表项,通过减号“-”加一个空格,多个项使用同样缩进级别做为同一列表部分

map结构里面的键值对(key/value)用冒号“:”来分割

数组用“[]”包括起来,hash用“{}”来包括

以上就是yaml的语法

在Kubernetes中,只需要知道两种结构类型即可:

Lists

Maps

scalar 在k8s中不使用此类型

使用YAML用于K8s的定义带来的好处包括:

便捷性:不必添加大量的参数到命令行中执行命令

可维护性:YAML文件可以通过源头控制,跟踪每次操作

灵活性:YAML可以创建比命令行更加复杂的结构

YAML Maps

YAML Maps

map,散列表 ,使用冒号(:)表示键值对,同一缩进的所有键值对属于一个map,例如:

apiVersion: v1

kind: ServiceAccount

metadata:

labels:

k8s-app: kubernetes-dashboard

addonmanager.kubernetes.io/mode: Reconcile

name: kubernetes-dashboard

namespace: kube-system

如果要把多个kind写于一个文件需要用到

--- 为可选的分隔符 ,当在一个文件中定义多个结构时需要

apiVersion: v1

kind: ServiceAccount

metadata:

labels:

k8s-app: kubernetes-dashboard

addonmanager.kubernetes.io/mode: Reconcile

name: kubernetes-dashboard

namespace: kube-system

#以上labels,name,namespace为同一级,因为都缩进了相同的空格

--- #分隔符,因为此yaml文件定义了二个不同的kind类型

apiVersion: apps/v1

kind: Deployment

metadata:

name: kubernetes-dashboard

namespace: kube-system

labels:

k8s-app: kubernetes-dashboard

kubernetes.io/cluster-service: "true"

addonmanager.kubernetes.io/mode: Reconcile

YAML Lists

List 数组,使用连字符(-)表示,例如:

volumeMounts:

- name: kubernetes-dashboard-certs

mountPath: /certs

- name: tmp-volume

mountPath: /tmp

数据结构嵌套

map嵌套map

apiVersion: v1

kind: ConfigMap

metadata: #map嵌套map

labels: #map嵌套map

k8s-app: kubernetes-dashboard #map嵌套map

# Allows editing resource and makes sure it is created first.

addonmanager.kubernetes.io/mode: EnsureExists

name: kubernetes-dashboard-settings

namespace: kube-system

map嵌套list

volumes: #map

- name: kubernetes-dashboard-certs #list map

secret:

secretName: kubernetes-dashboard-certs

- name: tmp-volume

emptyDir: {}

list嵌套list

在k8s的yaml中比较少见

list嵌套map

volumes: #map

- name: kubernetes-dashboard-certs #list map嵌套list

secret: #map list嵌套map

secretName: kubernetes-dashboard-certs

- name: tmp-volume

emptyDir: {}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值