yaml文件的生成

格式:kubectl run 自定义pod名称 --image=自定义镜像名称 --dry-run=client(这里还可以定义为server但是推荐client) -o yaml > 自定义名称.yaml
:kubectl run nginx --image=nginx --dry-run=client -o yaml > pod1.yaml
这样我们就定义好了一个yaml文件基础模板在当前目录下,剩下的工作就是在模板内修改部分参数并运行这个yaml文件即可。

查看yaml文件内各个参数的值
例:kubectl explain pods.spec.containers
kubectl explain pods
kubectl explain pods.metadata.labels.run

参数之imagePullPolicy

作用是指定镜像的下载位置(本地/网络)

此参数默认有三个值:(默认为Always)

docker生成core docker生成yaml文件_nginx


Always为总是从网络下载镜像
Never为总是从本地下载镜像
IfNotPresent优先从本地下载,本地没有则从网上下载
【建议用IfNotPresent】

此参数为containers的副参数

格式如下:

docker生成core docker生成yaml文件_docker生成core_02

参数之command(args)

作用是在运行这个容器时同时运行一条或多条shell命令

此参数为containers的副参数,两种写法,第一种写法格式如下:

docker生成core docker生成yaml文件_docker生成core_03


第二种格式如下:

docker生成core docker生成yaml文件_nginx_04


同时command可以换成args,同样作用,注意!

参数之env(变量)

作用就是在容器内插入变量,可以定义多个变量

此参数为containers的副参数

例如mysql容器创建定义root密码、wordpress等等

格式如下:

docker生成core docker生成yaml文件_kubernetes_05

参数之namespace(命名空间)

作用就是指定此yaml创建出来的所有容器运行在哪个命名空间(ns)内,不指定则运行在默认的ns内。

此参数为metadata的副参数

格式如下:

docker生成core docker生成yaml文件_自定义_06


**

pod状态

running:正常运行
completed:正常退出
Error:非正常错误
CrashLoopBackOff:创建的时候就出错,属于内部原因
imagePullerror :创建pod的时候,镜像下载失败
Pending:因为其他的原因导致pod准备开始创建,还没有创建(卡住了)

参数之restartPolicy(容器生命期)

作用是定义容器的生命期

此参数为spec下副参数

此参数默认有三个值分别为:(默认为Always,如果不设置)

Always:容器只要退出,就重新运行

Onfailure:容器非正常退出,才会重新运行(正常退不会运行)

Never:容器只要退出就不运行(正常/非正常退出都不运行)

格式如下:

docker生成core docker生成yaml文件_命名空间_07

**

参数之nodeSelector(容器标签)

作用是定义容器的标签,使得kubernetes能自由的选择将容器运行在哪台node(worker)上面
查看node/pod标签:kubectl get pods/nodes --show-labels
设置node的标签:kubectl label nodes node1 aa=xyz #aa=xyz等号前后均可以自定义
设置标签的第二种方法:kubectl edit nodes node1
取消node的标签:kubectl label nodes nodes1 aa- # “ - ” 是取消符号必不可少
设置所有node的标签:kubectl label nodes -all bb=fgh #bb=fgh等号前后均可以自定义

yaml文件内定义pod的标签:

docker生成core docker生成yaml文件_自定义_08

参数之volumes(存储)

volumes参数下面可以定义很多副参数

emptyDir:物理存储目录(一般不指定存储目录)

属性是当删除容器时,会删除对应物理机上的目录

没有定义物理机存储路径的格式为:

docker生成core docker生成yaml文件_nginx_09


hostPath:物理存储目录(一般指定存储目录)

属性是当删除容器时,保留物理存储目录

定义了物理机存储路径的格式为:

docker生成core docker生成yaml文件_nginx_10