kubernetes之yaml文件介绍

yaml文件简介

YAML(IPA: /ˈjæməl/)是一个可读性高的语言,参考了XML、C、Python等。

理解:Yet Another Markup Language

后缀:可以是.yml或者是.yaml,更加推荐.yaml,其实用任意后缀都可以,只是阅读性不强

yaml文件基础

- 区分大小写
- 缩进表示层级关系,相同层级的元素左对齐
- 缩进只能使用空格,不能使用TAB
- "#"表示当前行的注释
- 是JSON文件的超级,两个可以转换
- ---表示分隔符,可以在一个文件中定义多个结构
- 使用key: value,其中":"和value之间要有一个英文空格

Maps

简单

apiVersion: v1
kind: Pod
---表示分隔符,可选。要定义多个结构一定要分隔

apiVersion表示key,v1表示value,英文":"后面要有一个空格

kind表示key,Pod表示value

也可以这样写apiVersion: "v1"

转换为json

{
"apiVersion": "v1",
"kind": "Pod"
}
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx

复杂

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
metadata表示key,下面的内容表示value,该value中包含两个直接的key:name和labels

name表示key,nginx-deployment表示value

labels表示key,下面的表示value,这个值又是一个map

app表示key,nginx表示value

相同层级的记得使用空间缩进,左对齐
{
"apiVersion": "apps/v1",
"kind": "Deployment",
"metadata": {
         "name": "nginx-deployment",
         "labels": {
                    "app": "nginx"
                   }
        }
}

Lists

apiVersion: v1
kind: Pod
metadata:
  name: myapp-pod
  labels:
    app: myapp
spec:
  containers:
  - name: myapp-container01
    image: busybox:1.28
  - name: myapp-container02
    image: busybox:1.28
containers表示key,下面的表示value,其中value是一个数组

数组中有两个元素,每个元素里面包含name和image

image表示key,myapp-container表示value

转成json

{
"apiVersion": "v1",
"kind": "Pod",
"metadata": {
           "name": "myapp",
           "labels": {
                       "app": "myapp"
                     }
         },
"spec": {
 "containers": [{
                 "name": "myapp-container01",
                 "image": "busybox:1.28",
                }, 
                {
                 "name": "myapp-container02",
                 "image": "busybox:1.28",
                }]
      }
}

k8s的yaml文件样例

官网
https://kubernetes.io/docs/reference/

# yaml格式对于Pod的定义:
apiVersion: v1          #必写,版本号,比如v1
kind: Pod               #必写,类型,比如Pod
metadata:               #必写,元数据
  name: nginx           #必写,表示pod名称
  namespace: default    #表示pod名称属于的命名空间
  labels:
    app: nginx                  #自定义标签名字
spec:                           #必写,pod中容器的详细定义
  containers:                   #必写,pod中容器列表
  - name: nginx                 #必写,容器名称
    image: nginx                #必写,容器的镜像名称
    ports:
    - containerPort: 80         #表示容器的端口

k8s yaml文件 属性介绍
在这里插入图片描述

https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.14/

在这里插入图片描述

发布了261 篇原创文章 · 获赞 37 · 访问量 20万+

猜你喜欢

转载自blog.csdn.net/u014636209/article/details/103814205