1. Yet Another Markup Language
  2. 可以使用-o yaml 选项,指定结果以yaml格式显示。
    注意,输出的结果不能直接作为模板,后面还需要跟上–export
  3. yaml文件可以作为陈述式对象配置或者声明式对象配置
  4. eg: kubectl create -f a.yaml #陈述式,无法重复执行,仅能新增
  5. eg: kubectl apply -f b.yaml #声明式,可以重复使用完成增、改操作
  6. 注意:一般删除操作还是使用陈述式命令
  7. 区分大小写,注意缩进, 类型object的对象前必须加上-
  8. 可以使用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 查看详细信息。

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐