什麼叫資源?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