Kubernetes之Pod 控制器
阿新 • • 發佈:2018-08-23
object 調用 get 基本 contain 名稱 argument ring efault
定義Pod的常用資源
pods.spec.containers
- name <string> #containers 的名字
image <string> #鏡像地址
imagePullPolicy <string> #如果標簽是latest 就是Always(總是下載鏡像) IfNotPresent(先看本地是否有此鏡像,如果沒有就下載) Never (就是使用本地鏡像)
ports <[]Object> #是給對象列表 可以暴露多個端口 可以對每個端口的屬性定義 例如:(名稱(可後期調用)端口號 協議 暴露在的地址上) 暴露端口只是提供額外信息的,不能限制系統是否真的暴露
- containerPort 容器端口
hostIP 主機地址(基本不會使用)
hostPort 節點端口
name 名稱
protocol (默認是TCP)
args <[]string> 傳遞參數給command 相當於docker中的CMD
command <[]string> 相當於docker中的ENTRYPOINT (參考地址)
-
如果Pod不提供
command
或args
使用Container,則使用Docker鏡像中的cmd或者ENTRYPOINT。 -
如果Pod提供
command
提供
args
,則僅使用提供command
的。將忽略Docker鏡像中定義EntryPoint和Cmd。 - 如果Pod中僅提供
args
,則args
將作為參數提供給Docker鏡像中EntryPoint。
- 如果提供了
command
和args
,則Docker鏡像中的ENTRYPOINT和CMD都將不會生效,Pod中的args
將作為參數給command運行
。
標簽
key=value
- key:只能使用 字母 數字 _ - . (只能以字母數字開頭,不能超過63給字符)
- value: 可以為空 只能使用 字母 數字開頭
#顯示標簽 $ kubectl get pods --show-labels NAME READY STATUS RESTARTS AGE LABELS jdk-94bcfc779-fs2cl 1/1 Running 0 8d pod-template-hash=506797335,workload.user.cattle.io/workloadselector=deployment-default-jdk mysql-5ffdf958d9-7qdnv 1/1 Running 1 3d pod-template-hash=1998951485,workload.user.cattle.io/workloadselector=deployment-default-mysql #-L 顯示具有app標簽的pod 並打印app標簽下的值 $ kubectl get pods --all-namespaces -L app NAMESPACE NAME READY STATUS RESTARTS AGE APP cattle-alerting alertmanager-649c5fc4d7-4hp9q 2/2 Running 0 1d alertmanager cattle-system cattle-cluster-agent-6d7c847588-f6cmt 1/1 Running 2 28d cattle-cluster-agent cattle-system cattle-node-agent-9m2ls 1/1 Running 2 28d cattle-agent cattle-system cattle-node-agent-9ngfh 1/1 Running 0 12d cattle-agent cattle-system cattle-node-agent-j862c 1/1 Running 1 12d cattle-agent cattle-system cattle-node-agent-s8s75 1/1 Running 1 12d cattle-agent #-l 過濾那些pod具有app標簽 $ kubectl get pods --all-namespaces -l app NAMESPACE NAME READY STATUS RESTARTS AGE cattle-alerting alertmanager-649c5fc4d7-4hp9q 2/2 Running 0 1d cattle-system cattle-cluster-agent-6d7c847588-f6cmt 1/1 Running 2 28d cattle-system cattle-node-agent-9m2ls 1/1 Running 2 28d cattle-system cattle-node-agent-9ngfh 1/1 Running 0 12d #打標簽 $ kubectl label pod jdk-94bcfc779-fs2cl app=dev #修改標簽 --overwrite $ kubectl label pod jdk-94bcfc779-fs2cl app=test --overwrite