什么叫资源?api
k8s中全部的内容都抽象为资源, 资源实例化以后,叫作对象app
工做负载型资源(workload):负载均衡
服务发现及负载均衡型资源:frontend
配置与存储型资源:ui
特殊类型的存储卷:spa
以上这些资源都是配置在名称空间级别日志
集群级资源:对象
元数据型资源:blog
在k8s中,通常使用yaml格式的文件来建立符合咱们预期指望的pod,这样的yaml文件咱们通常称为资源清单接口
apiVersion: group/apiversion: 若是没有给定group名称,那么默认为croe,可使用kubectl api-versions 获取当前k8s版本上全部的apiVersion版本信息(每一个版本可能不一样)
kind: 资源类别
metadata: 资源元数据
name
namespace #k8s自身的namespace
lables
annotations #主要目的是方便用户阅读查找
spec:指望的状态(disired state)
status:当前状态,本字段有kubernetes自身维护,用户不能去定义
配置清单主要有五个一级字段,其中status用户不能定义,有k8s自身维护
1 获取apiVersion版本信息
[root@k8s-master01 ~]# kubectl api-versions admissionregistration.k8s.io/v1beta1 apiextensions.k8s.io/v1beta1 apiregistration.k8s.io/v1 apiregistration.k8s.io/v1beta1 apps/v1 apps/v1beta1 apps/v1beta2 authentication.k8s.io/v1 authentication.k8s.io/v1beta1 authorization.k8s.io/v1 authorization.k8s.io/v1beta1 autoscaling/v1 autoscaling/v2beta1 batch/v1 ......(如下省略)
2)获取资源的apiVersion版本信息
[root@k8s-master01 ~]# kubectl explain pod KIND: Pod VERSION: v1 .....(如下省略) [root@k8s-master01 ~]# kubectl explain Ingress KIND: Ingress VERSION: extensions/v1beta1
能够看到出来,不一样的资源可能属于不一样的apiVersion版本
字段配置的格式
帮助信息中常见格式以下:
pod-demo.yaml
apiVersion: v1 kind: Pod metadata: name: pod-demo namespace: default labels: app: myapp tier: frontend spec: containers: - name: myapp image: ikubernetes/myapp:v1 - name: busybox image: busybox:latest command: - "/bin/sh" - "-c" - "sleep 3600"
根据资源清单建立pod
kubectl create -f pod-demo.yaml
查看建立的 pod
kubectl get pod
获取刚建立pod-demo的详细信息:
kubectl describe pods pod-demo
查询 pods 中的一个容器的日志记录
kubectl logs pod-demo -c myapp
删除本身的建立:
kubectl delete -f pod-demo.yaml