k8s集群搭建好后,各個node的狀態變成了ready,就可以創建pod,創建完成后,就會默認的運行其中的container。
使用一個簡單yaml文件描述pod:
apiVersion: v1 #必選,版本號,例如v1,版本號必須可以用 kubectl api-versions 查詢到 . kind: Pod #必選,Pod metadata: #必選,元數據 name: string #必選,Pod名稱 namespace: string #必選,Pod所屬的命名空間,默認為"default" labels: #自定義標簽 - name: string #自定義標簽名字 annotations: #自定義注釋列表 - name: string spec: #必選,Pod中容器的詳細定義 containers: #必選,Pod中容器列表 - name: string #必選,容器名稱,需符合RFC 1035規范 image: string
運行kubectl create -f demo.yaml,就完成了創建pod
但是使用kubectl get pods,發現其轉態不是completed,使用kubectl describe pod demo,報錯:
FailedCreatedPodSandBox k8s.gcr.io/pause:3.1
查閱資料,發現k8s中的鏡像都依賴於這個基礎鏡像。現在有兩個辦法,外網下載鏡像或者更改k8s的遠程倉庫地址,還是手動下載最方便,參考文章k8s.gcr.io鏡像無法下載的問題.這其中要求對docker操作比較熟悉,比如docker save,docker load
這樣pod的狀態就為complete了。
參考博客: