1. 程式人生 > >Kubernetes之Pod 控制器

Kubernetes之Pod 控制器

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不提供commandargs使用Container,則使用Docker鏡像中的cmd或者ENTRYPOINT。

  • 如果Pod提供command

    但不提供args,則僅使用提供 command的。將忽略Docker鏡像中定義EntryPoint和Cmd。

  • 如果Pod中僅提供args,則args將作為參數提供給Docker鏡像中EntryPoint
  • 如果提供了commandargs,則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