pause pod 什么是pod_Kubernetes 自主式Pod清单 干货太多先马住慢慢看
生活随笔
收集整理的這篇文章主要介紹了
pause pod 什么是pod_Kubernetes 自主式Pod清单 干货太多先马住慢慢看
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在講資源清單之前,先給大家介紹一下究竟什么是Kubernetes資源?有幾種資源?
① · 資源分類:
① · 1 工作負載:pod、rs(ReplicasSet)、deploy(Deployment)、sts(StatefulSet)、ds(DaemonSet)、job、cronjob
① · 2 服務發現及負載均衡:svc(Service)、ing(Ingress)
① · 3 配置與存儲:cm(ConfigMap)、Secret、Volume、pv( persistentvolumes )、pvc、sc(StorageClasses)DownwardAPI
① · 4 集群級:ns(Namespace),Node,Role,ClusterRole,RoleBinding,ClusterRoleBinding
① · 5 元數據: HPA,PodTemplate,LimitRange
這么多種分類看完已經暈了,其實每種分類下面還有好多好多字段需要你自己定義 ,今天我們只介紹一種自主式清單 【pod自主式清單】 。
什么是自主式pod?和kubectl run的pod又有什么區別?
我們接觸的pod大多數是控制器控制的pod,那么今天講的是自主式pod(也就是由yaml文件來創建的pod),也就是pod自己去控制自己,防止pod被控制器殺死。(雖然這種pod應用的場景不是很多,但是只要熟悉了pod的清單,再理解其他幾種類型的資源就會非常好理解) ② · 1 看看pod清單里面都有哪些字段
想要查看詳細信息就使用kubectl explain pod 想要查看下面的子字段的話kubectl explain pod.apiVersion 即可~~ apiVersion kind metadata spec 這四個字段是必須有的,下面就看看一份簡單的pod清單應該長什么樣
apiVersion: v1 ##版本為v1 kind: Pod ##資源類型為Pod metadata: ## 元數據,下面是需要配置的子字段,這里縮進字符要保持一致name: pod-demo ## pod名namespace: default ##pod所在的名稱空間labels: ##標簽-- 下面全用KV格式書寫,這里我們給這個pod 打上兩個標簽 ↓app: pod-demo release: bata spec: containers: ##容器- name: app-container ##容器名image: ikubernetes/myapp:v1 ##鏡像地址現在我們就試試用這個文件創建第一個自主式pod 創建命令 kubectl create -f pod-demo.yaml 刪除命令 kubectl delete -f pod-demo.yaml
這樣一個自主式pod就創建好了,但是好像還不夠定制化,下面就詳細介紹一下自主式pod可以定義那些字段 可定義的字段太多了,這里我總結了大部分常用指標,大家當字典看吧~
spec.nodeSelector <map[string]string> pod.spec.nodeSelector: #指定對象的調度節點,節點必須存在 pod.spec.restartPolicy <string> pod.spec.restartPolicy:#容器的重啟策略。有三種Always(只有退出就重啟),OnFailure(失敗退出時不重啟),Never(只要退出就不重啟),kubelet重新啟動的已退出容器將以指數退避延遲(10秒,20秒,40秒......)重新啟動,上限為五分鐘,并在成功執行十分鐘后重置 spec.containers.image.imagePullPolicy <string> #鏡像的下載策略。有三種:Always(總是去倉庫下載) ,Never(從不去倉庫下載) , IfNotPresent(如果本地沒有就去倉庫下載) spec.containers.ports: #容器公開的端口列表。在這里公開端口可以為系統提供關于容器使用的網絡連接的額外信息,但主要是提供信息。在這里不指定端口不會阻止該端口被公開。任何監聽容器內默認的“0.0.0.0”地址的端口都可以從網絡訪問 spec.containers.ports.containerPort <integer> -required- #pod暴露的端口,此端口僅是額外的信息,對端口是否被暴露沒有影響 spec.containers.ports.hostPort <integer> #主機上公開的端口 spec.containers.ports.protocol <string> #端口的協議 spec.containers.ports.hostIP <string> #指定要綁定的主機 spec.containers.command <[]string> #運行的程序,類似于docker中的entrypiont,并且這里的命令不會運行在shell中,如果沒有這個字段docker鏡像會運行自己entrypiont中的指令 spec.containers.args <[]string> #向docker鏡像中傳遞參數 如果定義了這個字段,docker鏡像中cmd命令不會被執行,如果引用變量使用$(VAR_NAME)格式引用,如果想使用命令引用的的方式,需要使用$$(VAR_NAME)方式來引用 #關于args和command的官方文檔鏈接:https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/ spec.containers.volumeMounts spec.containers.volumeMounts.name spec.containers.volumeMounts.mountPath #可以被容器掛載的存儲卷的路徑,路徑不能包含':' 符號 spec.containers.volumeMounts.subPath #可以被容器掛載的存儲卷的路徑,并且不會覆蓋掛載點中的文件 spec.containers.volumeMounts.readOnly #是否只讀,默認為false spec.containers.resources spec.containers.resources.limits #資源限制 spec.containers.resources.limits.cpu #CPU 上限, 可以短暫超過, 容器也不會被停止 spec.containers.resources.limits.memory :# 內存上限, 不可以超過; 如果超過, 容器可能會被終止或調度到其他資源充足的機器上 spec.containers.resources.requests #資源需求 spec.containers.resources.requests.cpu :# CPU 請求, 也是調度 CPU 資源的依據, 可以超過 spec.containers.resources.requests.memory : #內存請求, 也是調度內存資源的依據, 可以超過; 但如果超過, 容器可能會在 Node 內存不足時清理總結
以上是生活随笔為你收集整理的pause pod 什么是pod_Kubernetes 自主式Pod清单 干货太多先马住慢慢看的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 欧氏空间内积定义_MP5:内积、外积、面
- 下一篇: debian php安装pdo扩展,在d