yaml 文件详解

作者阿里云代理 文章分类 分类:linux图文教程 阅读次数 已被围观 687

YAML 基础

YAML(Yet Another Markup Language) 不是一种标志语言。它的运用很广泛,在这里着重讲一讲,在 Kubernetes 中的一些内容。运用 YAML 用于 k8s 的定义将给你一些好处,包括:

  • 快捷性:你将不再需求增加很多的参数到命令行中执行命令
  • 可维护性:YAML 文件能够经过源头控制,能够跟踪每次的操作
  • 灵活性:经过 YAML 你将能够创建比命令行愈加杂乱的结构 YAML 是一个 JSON 的超集,意味着任何有用 JSON 文件也都是一个 YAML 文件。关于 Kubernetes 中 YAML 的运用,只需求知道两种类型:
  • Maps
  • Lists

YAML Maps

咱们先来看看 YAML Maps 这种类型。Maps 能够将键值组合,从而能够愈加便利的去装备信息。像下面这样,你可能会有这样一个装备信息:

--- apiVersion: v1 kind: Service

榜首行是分隔符,并且是可选的。如果在单个文件中只定义了一个服务,那么这种情况下,榜首行的分隔符就能够忽略不计。在上面的例子中,能够看出有两个值: v1 和 Service ,对应它们的键是 apiVersion 和 kind

YAML Lists

接下来介绍一下 YAML Lists。其实它便是一个序列的目标,例如:

args  - sleep  - "1000"  - message

咱们能够看到,能够有任何数量的项在列表中,项的定义以破折号(-)开头,并且和父元素之间存在缩进。但是要注意一点:在 YAML 文件中绝对不要运用 tab 键来进行缩进。

实践中的运用

基本上,不管咱们想要什么样的结构,都能够经过这两个结构去组合完成。接下来我就以我在项目中运用的 yaml 文件为例来进行讲解一下(#后面内容为注释内容):

apiVersion: v1 kind: ReplicationController   #类型是一个RC metadata:  name: nginx-controller spec:  replicas: 2                 #我想要2个RC  selector:  name: mynginx  template:  metadata:  labels:  name: mynginx  spec:  containers:  - name: mynginx  image: reg。zll。com/web/nginx:1。12。2    #前端需求部署在nginx上,这里是对应的nginx的镜像。  volumeMounts:  - name: httpd-storage  mountPath: /etc/nginx/nginx。conf          #镜像中nginx的装备文件地址,用下面的path:/home/nginx。conf去替代此途径。  - name: httpd-storag  mountPath: /usr/local/dist  ports:  - containerPort: 80  volumes:  - name: httpd-storage  hostPath:  path: /home/nginx。conf             #自定义的nginx的装备文件,挂载到服务器上的这一途径下,去替代镜像中nginx的装备  - name: httpd-storag  hostPath:  path: /usr/local/dist              #前端打包好的文件,放置的途径,去替代上放的mountPath:/usr/local/dist  --- apiVersion: v1 kind: Service    #类型是个service metadata:  name: nginx-service-nodeport spec:  ports:  - port: 8000  targetPort: 80  nodePort: 30080    #暴露出来可供拜访的IP。  protocol: TCP  type: NodePort  selector:  name: mynginx

感谢您的阅读~

本公司销售:阿里云、腾讯云、百度云、天翼云、金山大米云、金山企业云盘!可签订合同,开具发票。

我有话说: