当前位置: 首页> 文旅> 酒店 > kubernetes yaml 资源清单

kubernetes yaml 资源清单

时间:2025/7/11 19:18:04来源:https://blog.csdn.net/m0_60125201/article/details/139954738 浏览次数:0次

1 YAML语言

YAML 语言的设计目标,就是方便人类读写。它实质上是一种通用的数据串行化格式。

1.1 基本语法规则

  • 大小写敏感
  • 使用缩进表示层级关系
  • 缩进时不允许使用Tab键,只允许使用空格。
  • 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
  • # 表示注释,从这个字符一直到行尾,都会被解析器忽略。

1.2 YAML 支持的数据结构有三种

  • 对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)
  • 数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)
  • 纯量(scalars):单个的、不可再分的值

以下分别介绍这三种数据结构。

1.2.1 对象

对象的一组键值对,使用冒号结构表示。

animal: pets

Yaml 也允许另一种写法,将所有键值对写成一个行内对象。

hash: { name: Steve, foo: bar }
1.2.2 数组

一组连词线开头的行,构成一个数组。

- Cat
- Dog
- Goldfish

数据结构的子成员是一个数组,则可以在该项下面缩进一个空格。

animal:- Cat- Dog- Goldfish
1.2.3 纯量

纯量是最基本的、不可再分的值。以下数据类型都属于 JavaScript 的纯量。

  • 字符串
  • 布尔值
  • 整数
  • 浮点数
  • Null
  • 时间
  • 日期

2 kubernetes里yaml文件写法

常用字段解释

kubectl explain <name>.<name>

必须存在的字段

注意: 如果写不全是不让运行pod的

参数名

字段类型

说明

version

String

这里是指的k8s API 的版本,目前基本是v1,可以 用kubectl api-version命令查询

kind

String

这里指的是yam文件定义的资源类型和角色,比如:Pod

metadata

Object

元数据对象,固定值就写 metadata

metadata.name

String

元数据对象的名字,这里由我们编写,比如如名POd的名字

metadata namespace

String

元数据对象的命名空间,由我们自身定义

spec

Object

详细定义对象,固定值就写Spec

spec containers[]

list

这里是Spec对象的容器列表定义,是个列表

spec containers[].name

String

这里定义容器的名字

spec containers[]. image

String

这里定义要用到的镜像名称

创建一个最基本的pod

[root@k8s-master01 ~]# vim pod.yaml 
apiVersion: v1
kind: Pod
metadata:name: nginx-pod
spec:containers:- name: nginximage: nginx:latestimagePullPolicy: IfNotPresent
kubectl apply -f pod.yaml

主要对象

以下内容可以有可以没有,如果没有写系统会添加默认值

参数名

字段类型

说明

spec containers[]. name

String

定义容器的名字

spec containers[]. image

String

定义要用到的镜像名称

spec containers[]. imagePullPolicy

String

走义镜像拉取策路,有 Always、 NeverIfNotPresent三个值可选(1) Always:意思是每次都芸试重新拉取镜像(2) Never:表示仅使用本地镜像(3) IfNotPresent:如果本地有镜像就使用本地镜像,没有就拉取在线镜像。上面三个值都没设置的话,默认是 Always。

spec containers[]. command[]

list

指走容器启动命令,因为是数组可以指定多个,不指定则使用镜像打包时使用的启动命令。

spec containers[]. args[]

list

指定容器启动命令参数,因为是数组可以指定多个。

spec containers[]. workingDir

String

指定容器的工作目录

spec containers[]. volumeMounts[]

list

指定容器内部的存储卷配置

spec containers[]. volumeMounts[].name

String

指定可以被容器挂载的存储卷的名称

spec containers[]. volumeMounts[].mountrPath

String

指定可以被容挂载的存储芢的路径

spec containers[]. volumeMounts[].readOnly

String

设置存储卷路径的读写模式,ture或者 false,认为读写模式

spec containers[]. ports[]

list

指走容器需要用到的满口列表

spec containers[].ports[]. name

String

指定端口名称

spec containers[].ports[]. containerPort

String

指定容器需要监听的端口号

spec containers[]. ports[]. hostPort

String

首定容器所在主机需要监听的端口号,默认跟上面 containerPort相同,注意设置了 hostPort同一台主机无法启动该容器的相同副本(因为主机的端口号不能相同,这样会冲突)

spec containers[]. ports[]. protocol

String

指定端口协议,支持TCP和UDP,认值为TCP

spec containers[]. env[]

list

指定容器运行前需设置的环境变量列表

spec containers[].env[]. name

String

指定环境变量名称

spec containers[].env[] value

String

指走环境变量值

spec containers[]. resources

Object

指定资源限制和源请求的值(这里开始就是设置容器的资源上限)

spec containers[]. resources.limits

Object

指定设置容器运行时资源的运行上限

spec containers[]. resources.limits. cpu

String

指定CPU的限制,单位为core数,将用于docker run-cpu- shares参数(这里前面文章Pod资源限制有讲过)

spec containers[].resources.limits. memory

String

指定MEM内存的限制,单位为MIB、GiB

spec containers[]. resources. requests

Object

指定容器启动和调度时的限制设置

spec containers[]. resources. requests. cpu

String

CPU请求,单位为core数,容器启动时初始化可用数量

spec containers[]. resources. requests memory

String

内存请求,单位为MIB、GiB,容器启动的初始化可用数量

额外的参数项

参数名

字段类型

说明

spec. restartPolicy

String

定义Pod的重启策路,可选值为 Alays、 Onfailure,默认值为Always。1 Always:Pod-且终止运行,则无论容器是如何终止的, kubelet服务都将重启它。2. failure:只有Pod以非零退出码终止时, kubeletオ会重启该容器。如果容器正常结束(退出码为0),则 kubelet将不会重启它3. Never:Pod终止后, kubelet将退出码报告给 Master,不会重启该Pod

spec. nodeSelector

Object

定义Node的Labe过滤标签,以 key: value格式指定

spec. imagePullSecrets

Object

定义pu像时便用 secrets名称,以 name secretkey格式指定

spec.hostNetwork

Boolean

定义是否使用主机网络模式,默认值为 false。设置true表示使用宿主机网络,不使用 docker网桥,同时设置了tue将无法在同一台宿主机上启动第二个副本。

关键字:kubernetes yaml 资源清单

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: