Kubernetes(k8s)Pod的YAML基礎編寫


Kubernetes中的Pod一般都是采用yaml編寫

apiVersion: group/apiversion  # 如果沒有給定 group 名稱,那么默認為 core,可以使用 kubectl api-versions # 獲取當前 k8s 版本上所有的 apiVersion 版本信息( 每個版本可能不同 )
kind:       #資源類別
metadata:  #資源元數據
   name
   namespace
   lables
   annotations   # 主要目的是方便用戶閱讀查找
spec: # 期望的狀態(disired state)
status:# 當前狀態,本字段有 Kubernetes 自身維護,用戶不能去定義

資源清單的常用命令

獲取 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
......(以下省略)

獲取資源的 apiVersion 版本信息

[root@k8s-master01 ~]# kubectl explain pod
KIND:     Pod
VERSION:  v1
.....(以下省略)
[root@k8s-master01 ~]# kubectl explain Ingress
KIND:     Ingress
VERSION:  extensions/v1beta1

獲取字段設置幫助文檔 

[root@k8s-master01 ~]# kubectl explain pod
KIND:     Pod
VERSION:  v1
DESCRIPTION:
     Pod is a collection of containers that can run on a host. This resource is
     created by clients and scheduled onto hosts.
FIELDS:
   apiVersion    <string>
     ........
     ........

字段配置格式

apiVersion <string>          #表示字符串類型
metadata <Object>            #表示需要嵌套多層字段
labels <map[string]string>   #表示由k:v組成的映射
finalizers <[]string>        #表示字串列表
ownerReferences <[]Object>   #表示對象列表
hostPID <boolean>            #布爾類型
priority <integer>           #整型
name <string> -required-     #如果類型后面接 -required-,表示為必填字段

通過定義清單文件創建 Pod【myapp這個是nginx鏡像】(這地方有個錯誤哦,下面講)

apiVersion: v1
kind: Pod
metadata:
  name: myapp-pod
  labels:
    app: myapp
    version: v1
spec:
  containers:
  - name: app
    image: wangyanglinux/myapp:v1
  - name: test
    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文件

apiVersion: v1
kind: Pod
metadata:
  name: myapp-pod
  labels:
    app: myapp
    version: v1
spec:
  containers:
  - name: app
    image: wangyanglinux/myapp:v1

測速訪問


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM