Feb
11
2022
yaml 文件详解
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
感谢您的阅读~
本公司销售:阿里云、腾讯云、百度云、天翼云、金山大米云、金山企业云盘!可签订合同,开具发票。
我有话说: