W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
使用構(gòu)建在 kubectl 命令行工具中的指令式命令可以直接快速創(chuàng)建、更新和刪除 Kubernetes 對象。本文檔解釋這些命令的組織方式以及如何使用它們來管理現(xiàn)時對象。
安裝kubectl。
你必須擁有一個 Kubernetes 的集群,同時你的 Kubernetes 集群必須帶有 kubectl 命令行工具。 建議在至少有兩個節(jié)點的集群上運行本教程,且這些節(jié)點不作為控制平面主機。 如果你還沒有集群,你可以通過 Minikube 構(gòu)建一個你自己的集群,或者你可以使用下面任意一個 Kubernetes 工具構(gòu)建:
要檢查版本,請輸入 ?kubectl version
?。
?kubectl
?工具能夠支持三種對象管理方式:
?kubectl
?工具支持動詞驅(qū)動的命令,用來創(chuàng)建一些最常見的對象類別。 命令的名稱設計使得不熟悉 Kubernetes 對象類型的用戶也能做出判斷。
run
?:創(chuàng)建一個新的 Pod 來運行一個容器。expose
?:創(chuàng)建一個新的 Service 對象為若干 Pod 提供流量負載均衡。autoscale
?:創(chuàng)建一個新的 Autoscaler 對象來自動對某控制器(如 Deployment) 執(zhí)行水平擴縮。?kubectl
?命令也支持一些對象類型驅(qū)動的創(chuàng)建命令。 這些命令可以支持更多的對象類別,并且在其動機上體現(xiàn)得更為明顯,不過要求 用戶了解它們所要創(chuàng)建的對象的類別。
create <對象類別> [<子類別>] <實例名稱>
?某些對象類別擁有自己的子類別,可以在 ?create
?命令中設置。 例如,Service 對象有 ClusterIP、LoadBalancer 和 NodePort 三種子類別。 下面是一個創(chuàng)建 NodePort 子類別的 Service 的示例:
kubectl create service nodeport <服務名稱>
在前述示例中,?create service nodeport
? 命令也稱作 ?create service
? 命令的子命令。 可以使用 ?-h
? 標志找到一個子命令所支持的參數(shù)和標志。
kubectl create service nodeport -h
?kubectl
?命令也支持一些動詞驅(qū)動的命令,用來執(zhí)行一些常見的更新操作。 這些命令的設計是為了讓一些不了解 Kubernetes 對象的用戶也能執(zhí)行更新操作, 但不需要了解哪些字段必須設置:
scale
?:對某控制器進行水平擴縮以便通過更新控制器的副本個數(shù)來添加或刪除 Pod。annotate
?:為對象添加或刪除注解。label
?:為對象添加或刪除標簽。?kubectl
?命令也支持由對象的某一方面來驅(qū)動的更新命令。 設置對象的這一方面可能對不同類別的對象意味著不同的字段:
set <字段>
?:設置對象的某一方面。Note: 在 Kubernetes 1.5 版本中,并非所有動詞驅(qū)動的命令都有對應的方面驅(qū)動的命令。
?kubectl
?工具支持以下額外的方式用來直接更新現(xiàn)時對象,不過這些操作要求 用戶對 Kubernetes 對象的模式定義有很好的了解:
edit
?:通過在編輯器中打開現(xiàn)時對象的配置,直接編輯其原始配置。patch
?:通過使用補丁字符串(Patch String)直接更改某現(xiàn)時對象的的特定字段。 關于補丁字符串的更詳細信息,參見 API 約定 的 patch 節(jié)。你可以使用 ?delete
?命令從集群中刪除一個對象:
delete <類別>/<名稱>
?你可以使用 ?kubectl delete
? 來執(zhí)行指令式命令或者指令式對象配置。不同之處在于 傳遞給命令的參數(shù)。要將 ?kubectl delete
? 作為指令式命令使用,將要刪除的對象作為 參數(shù)傳遞給它。下面是一個刪除名為 ?nginx
?的 Deployment 對象的命令:
kubectl delete deployment/nginx
用來打印對象信息的命令有好幾個:
get
?:打印匹配到的對象的基本信息。使用 get -h 可以查看選項列表。describe
?:打印匹配到的對象的詳細信息的匯集版本。logs
?:打印 Pod 中運行的容器的 stdout 和 stderr 輸出。有些對象字段在 ?create
?命令中沒有對應的標志。在這些場景中, 你可以使用 ?set
?和 ?create
?命令的組合來在對象創(chuàng)建之前設置字段值。 這是通過將 ?create
?命令的輸出用管道方式傳遞給 ?set
?命令來實現(xiàn)的, 最后執(zhí)行 ?create
?命令來創(chuàng)建對象。下面是一個例子:
kubectl create service clusterip my-svc --clusterip="None" -o yaml --dry-run=client | kubectl set selector --local -f - 'environment=qa' -o yaml | kubectl create -f -
kubectl create service -o yaml --dry-run=client
? 創(chuàng)建 Service 的配置,但 將其以 YAML 格式在標準輸出上打印而不是發(fā)送給 API 服務器。kubectl set selector --local -f - -o yaml
? 從標準輸入讀入配置,并將更新后的 配置以 YAML 格式輸出到標準輸出。kubectl create -f -
? 使用標準輸入上獲得的配置創(chuàng)建對象。你可以用 ?kubectl create --edit
? 來在對象被創(chuàng)建之前執(zhí)行任意的變更。 下面是一個例子:
kubectl create service clusterip my-svc --clusterip="None" -o yaml --dry-run=client > /tmp/srv.yaml
kubectl create --edit -f /tmp/srv.yaml
kubectl create service
? 創(chuàng)建 Service 的配置并將其保存到 ?/tmp/srv.yaml
? 文件。kubectl create --edit
? 在創(chuàng)建 Service 對象打開其配置文件進行編輯。Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: