標籤:字元 預設 參考 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 (參考地址)
標籤
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 控制器