Kubernetes中的Pod一般都是采用yaml编写
1apiVersion: group/apiversion # 如果没有给定 group 名称,那么默认为 core,可以使用 kubectl api-versions # 获取当前 k8s 版本上所有的 apiVersion 版本信息( 每个版本可能不同 ) 2kind: #资源类别 3metadata: #资源元数据 4 name 5 namespace 6 lables 7 annotations # 主要目的是方便用户阅读查找 8spec: # 期望的状态(disired state) 9status:# 当前状态,本字段有 Kubernetes 自身维护,用户不能去定义
资源清单的常用命令
获取 apiversion 版本信息
1[root@k8s-master01 ~]# kubectl api-versions 2admissionregistration.k8s.io/v1beta1 3apiextensions.k8s.io/v1beta1 4apiregistration.k8s.io/v1 5apiregistration.k8s.io/v1beta1 6apps/v1 7......(以下省略)
获取资源的 apiVersion 版本信息
1[root@k8s-master01 ~]# kubectl explain pod 2KIND: Pod 3VERSION: v1 4.....(以下省略) 5[root@k8s-master01 ~]# kubectl explain Ingress 6KIND: Ingress 7VERSION: extensions/v1beta1
获取字段设置帮助文档
1[root@k8s-master01 ~]# kubectl explain pod 2KIND: Pod 3VERSION: v1 4DESCRIPTION: 5 Pod is a collection of containers that can run on a host. This resource is 6 created by clients and scheduled onto hosts. 7FIELDS: 8 apiVersion <string> 9 ........ 10 ........
字段配置格式
1apiVersion <string> #表示字符串类型 2metadata <Object> #表示需要嵌套多层字段 3labels <map[string]string> #表示由k:v组成的映射 4finalizers <[]string> #表示字串列表 5ownerReferences <[]Object> #表示对象列表 6hostPID <boolean> #布尔类型 7priority <integer> #整型 8name <string> -required- #如果类型后面接 -required-,表示为必填字段
通过定义清单文件创建 Pod【myapp这个是nginx镜像】(这地方有个错误哦,下面讲)
1apiVersion: v1 2kind: Pod 3metadata: 4 name: myapp-pod 5 labels: 6 app: myapp 7 version: v1 8spec: 9 containers: 10 - name: app 11 image: wangyanglinux/myapp:v1 12 - name: test 13 image: wangyanglinux/myapp:v1
错误:因为这回事nginx容器,在同一Pod中,只用一个80端口可以,所以,一个会一直报错。看下面截图
【一个在运行,一个在一直报错重启。】
运行Pod.yaml文件
kubectl apply -f pod.yaml
下面看详细步骤解析

查看Pod的详细信息
kubectl describe pod myapp-pod

查看Pod的日志
kubectl log myapp-pod -c test

删除Pod
kubectl delete pod myapp-pod

重新编写yaml文件
1apiVersion: v1 2kind: Pod 3metadata: 4 name: myapp-pod 5 labels: 6 app: myapp 7 version: v1 8spec: 9 containers: 10 - name: app 11 image: wangyanglinux/myapp:v1

测速访问
