Kubernetes之Pod 控制器

來源:互聯網
上載者:User

標籤:字元   預設   參考   comm   tle   dev   docke   express   get   

定義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-labelsNAME                     READY     STATUS    RESTARTS   AGE       LABELSjdk-94bcfc779-fs2cl      1/1       Running   0          8d        pod-template-hash=506797335,workload.user.cattle.io/workloadselector=deployment-default-jdkmysql-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 appNAMESPACE         NAME                                    READY     STATUS        RESTARTS   AGE       APPcattle-alerting   alertmanager-649c5fc4d7-4hp9q           2/2       Running       0          1d        alertmanagercattle-system     cattle-cluster-agent-6d7c847588-f6cmt   1/1       Running       2          28d       cattle-cluster-agentcattle-system     cattle-node-agent-9m2ls                 1/1       Running       2          28d       cattle-agentcattle-system     cattle-node-agent-9ngfh                 1/1       Running       0          12d       cattle-agentcattle-system     cattle-node-agent-j862c                 1/1       Running       1          12d       cattle-agentcattle-system     cattle-node-agent-s8s75                 1/1       Running       1          12d       cattle-agent#-l 過濾那些pod具有app標籤$ kubectl get pods --all-namespaces  -l appNAMESPACE         NAME                                    READY     STATUS    RESTARTS   AGEcattle-alerting   alertmanager-649c5fc4d7-4hp9q           2/2       Running   0          1dcattle-system     cattle-cluster-agent-6d7c847588-f6cmt   1/1       Running   2          28dcattle-system     cattle-node-agent-9m2ls                 1/1       Running   2          28dcattle-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

 

標籤選取器

  • 等值關係標籤選取器:=, == , !=  (kubectl get pods -l app=test,app=dev)
  • 集合關係標籤選取器: KEY in (v1,v2,v3), KEY notin (v1,v2,v3)   !KEY (kubectl get pods -l "app in (test,dev)")

許多資源支援內嵌欄位

  • matchLabels: 直接給定建值
  • matchExpressions: 基於給定的運算式來定義使用標籤選取器,{key:"KEY",operator:"OPERATOR",values:[V1,V2,....]}
  • 操作符: in notin:Values欄位的值必須是非空列表  Exists NotExists:  Values欄位的值必須是空列表

節點選取器

nodeSelector    <object>

 

中繼資料中的annotations 資源註解

annotations    <object>  與labels不同的是,他不能挑選資來源物件,僅用於為對象提供中繼資料

 

Kubernetes之Pod 控制器

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.