- Yet Another Markup Language
- 可以使用-o yaml 选项,指定结果以yaml格式显示。
注意,输出的结果不能直接作为模板,后面还需要跟上–export - yaml文件可以作为陈述式对象配置或者声明式对象配置
- eg: kubectl create -f a.yaml #陈述式,无法重复执行,仅能新增
- eg: kubectl apply -f b.yaml #声明式,可以重复使用完成增、改操作
- 注意:一般删除操作还是使用陈述式命令
- 区分大小写,注意缩进, 类型object的对象前必须加上-
- 可以使用kubectl explain pod.metadata来查看详细字段解释
kind: Namespace
参考链接:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#namespace-v1-core
必备字段
apiVersion: v1 #属于core组,版本为v1 ,一般就写v1
kind: Namespace #一般类型的搜字母需要大写
metadata:
name: develop #名称空间的名字
spec: #期望状态,namespace几乎没有,可以留空,甚至不写
finalizers: #谁来回收
- kubernetes
kind:pod.单镜像
apiVersion: v1
kind: Pod
metadata:
createionTimestamp: null #生成后会自动改
generateName: app-sllkfjvno #自定义时不需要这个字段,请用name
name: pod-demo #Pod名称
namespace: develop # pod属于哪个名称空间
spec: #期望状态
containers:
- image: ngx #定义容器要运行的镜像
imagePullPolicy: IfNotPresent # 3个值,always 总是拉镜像,never, IfNotPresent 不存在就拉去镜像 One of Always, Never, IfNotPresent. Defaults to Always
name: myapp #当前容器的名字
resources: {} #容器要使用的物理资源,几核cpu,内存, 设上下限
dnsPolicy: ClusterFirst #默认有优先使用k8s集群上的dns服务器
enableServiceLinks: true #<boolean> Defaults to true. 是否允许service引用它
nodeName: node03 #pod 将在哪个节点上运行
priority: 0 # <integer>
restartPolicy: Always #重启策略 One of Always, OnFailure, Never
schedulerName: default-scheduler # 所属的调度器名称,不指定则为默认调度器
kind:pod.多镜像
apiVersion: v1
kind: Pod
metadata:
name: pod-demo
namespace: default
spec:
containers:
- name: myapp #第一个容器
image: ikubernetes/myapp:v1
imagePullPolicy: IfNotPresent
- name: bbox #第二个容器
image: busybox:latest
imagePullPolicy: IfNotPresent
command: #注意这里有两种命令的书写格式
- /bin/sh #默认运行路径
- -c #不太清楚,知道的盆友麻烦评论告诉我哦,谢谢~
- "sleep 86400" #睡一天
#第二种
command: ["/bin/sh",“-c”,"sleep 86400"]
apply以后查看pod状态,一些未设定的字段系统会在运行后自动补上。
NAME READY STATUS RESTARTS AGE
pod-demo 2/2 Running 0 14h
#第一个2表示一个容器正在运行,第二个2 表示一共有几个容器
异常状态时,可以看到1/2
[root@test basic]# kubectl get pods
NAME READY STATUS RESTARTS AGE
pod-demo 0/2 ContainerCreating 0 12s
[root@test basic]# kubectl get pods
NAME READY STATUS RESTARTS AGE
pod-demo 1/2 ImagePullBackOff 0 14s
[root@test basic]# kubectl get pods
NAME READY STATUS RESTARTS AGE
pod-demo 1/2 ErrImagePull 0 55s
当出现ErrImagePull或ImagePullBackOff时,请注意使用kubectl logs 查看详细信息。