2019-08-31

## 1 kubectl命令介紹

### 1.1 基本命令

    Kubectl是kubernetes的命令行工具。職責(zé)是對(duì)集群中資源對(duì)象進(jìn)行操作击你,這些操作包括對(duì)資源對(duì)象的增玉组、刪谎柄、改、查以及高級(jí)操作(滾動(dòng)升級(jí))等惯雳。下表中顯示了kubectl支持的所有操作命令谷誓,以及這些命令的語(yǔ)法和描述信息。

    Kubernetes中所有組件都是資源吨凑,以下命令適用于所有組件。

|?**操作**?|?**語(yǔ)法**?|?**描述**?|

:----|:----|:----|

| **annotate** |? kubectl annotate (-f FILENAME \\\| TYPE NAME \\\| TYPE/NAME) KEY_1=VAL_1 … KEY_N=VAL_N [–overwrite] [–all] [–resource-version=version] [flags] | 添加或更新一個(gè)或多個(gè)資源的注釋

| **api-versions**| kubectl api-versions [flags]?| 列出可用的API版本

|**apply**| kubectl apply -f FILENAME [flags]???| 將來(lái)自于文件或stdin的配置變更應(yīng)用到主要對(duì)象中户辱。

| **attach**?| kubectl attach POD -c CONTAINER [-i] [-t][flags]??| 連接到正在運(yùn)行的容器上鸵钝,以查看輸出流或與容器交互(stdin)。

| **autoscale**?| kubectl autoscale (-f FILENAME \\\| TYPE NAME \\\| TYPE/NAME) [–min=MINPODS] –max=MAXPODS [–cpu-percent=CPU] [flags]?|自動(dòng)擴(kuò)宿容由副本控制器管理的Pod庐镐。

|**cluster-info**| kubectl cluster-info [flags]??| 顯示群集中的主節(jié)點(diǎn)和服務(wù)的的端點(diǎn)信息恩商。

|**config**| kubectl config SUBCOMMAND [flags]?| 修改kubeconfig文件。

|**create**| kubectl create -f FILENAME [flags]?| 從文件或stdin中創(chuàng)建一個(gè)或多個(gè)資源對(duì)象必逆。

|**delete**| kubectl delete (-f FILENAME \\\| TYPE [NAME \\\| /NAME \\\| -l label \\\| –all]) [flags]?|刪除資源對(duì)象怠堪。

|**describe**| kubectl describe (-f FILENAME \\\| TYPE [NAME_PREFIX \\\| /NAME \\\| -l label]) [flags]??| 顯示一個(gè)或者多個(gè)資源對(duì)象的詳細(xì)信息。

|**edit**| kubectl edit (-f FILENAME \\\| TYPE NAME \\\| TYPE/NAME) [flags]??| 通過(guò)默認(rèn)編輯器編輯和更新服務(wù)器上的一個(gè)或多個(gè)資源對(duì)象名眉。

|**exec**| kubectl exec POD [-c CONTAINER] [-i] [-t] [flags] [– COMMAND [args…]]?| 在Pod的容器中執(zhí)行一個(gè)命令粟矿。

|**explain**| kubectl explain [–include-extended-apis=true] [–recursive=false] [flags]?| 獲取Pod、Node和服務(wù)等資源對(duì)象的文檔损拢。

|**expose**| kubectl expose (-f FILENAME \\\| TYPE NAME \\\| TYPE/NAME) [–port=port] [–protocol=TCP\\\|UDP] [–target-port=number-or-name] [–name=name] [—-external-ip=external-ip-of-service] [–type=type] [flags] | 為副本控制器陌粹、服務(wù)或Pod等暴露一個(gè)新的服務(wù)。

|**get**| kubectl get (-f FILENAME \\\| TYPE [NAME \\\| /NAME \\\| -l label]) [–watch] [–sort-by=FIELD] [[-o \\\| –output]=OUTPUT_FORMAT] [flags]| 列出一個(gè)或多個(gè)資源福压。

|**label**| kubectl label (-f FILENAME \\\| TYPE NAME \\\| TYPE/NAME) KEY_1=VAL_1 … KEY_N=VAL_N [–overwrite] [–all] [–resource-version=version] [flags]??| 添加或更新一個(gè)或者多個(gè)資源對(duì)象的標(biāo)簽掏秩。

|**logs**| kubectl logs POD [-c CONTAINER] [–follow] [flags]??| 顯示Pod中一個(gè)容器的日志。

|**patch**| kubectl patch (-f FILENAME \\\| TYPE NAME \\\| TYPE/NAME) –patch PATCH [flags]?| 使用策略合并補(bǔ)丁過(guò)程更新資源對(duì)象中的一個(gè)或多個(gè)字段荆姆。

|**port-forward**| kubectl port-forward POD [LOCAL_PORT:]REMOTE_PORT […[LOCAL_PORT_N:]REMOTE_PORT_N] [flags]??| 將一個(gè)或多個(gè)本地端口轉(zhuǎn)發(fā)到Pod蒙幻。

|**proxy**|kubectl proxy [–port=PORT] [–www=static-dir] [–www-prefix=prefix] [–api-prefix=prefix] [flags]| 為kubernetes API服務(wù)器運(yùn)行一個(gè)代理。

|**replace**| kubectl replace -f FILENAME?| 從文件或stdin中替換資源對(duì)象胆筒。

|**rolling-update**| kubectl rolling-update OLD_CONTROLLER_NAME ([NEW_CONTROLLER_NAME] –image=NEW_CONTAINER_IMAGE \\\| -f NEW_CONTROLLER_SPEC) [flags]?| 通過(guò)逐步替換指定的副本控制器和Pod來(lái)執(zhí)行滾動(dòng)更新

| **run**| kubectl run NAME –image=image [–env=”key=value”] [–port=port] [–replicas=replicas] [–dry-run=bool] [–overrides=inline-json] [flags]??| 在集群上運(yùn)行一個(gè)指定的鏡像邮破。

| **scale**| kubectl scale (-f FILENAME \\\| TYPE NAME \\\| TYPE/NAME) –replicas=COUNT [–resource-version=version] [–current-replicas=count] [flags]| 擴(kuò)宿容副本集的數(shù)量。

| **version**|kubectl version [–client] [flags]|顯示運(yùn)行在客戶端和服務(wù)器端的Kubernetes版本

## 1.2 資源對(duì)象

    kubernetes提供了很多資源對(duì)象腐泻,開(kāi)發(fā)和運(yùn)維人員可以通過(guò)這些對(duì)象對(duì)容器進(jìn)行編排操作决乎。在下表中,是kubectl所支持的資源對(duì)象類型派桩,以及它們的縮略別名构诚。

|?**資源對(duì)象類型**?|?**縮略別名**?|

|:----:|:----:|

|apiservices||

|certificatesigningrequests|csr|

|clusters||

|clusterrolebindings||

|clusterroles||

|componentstatuses|cs|

|configmaps|cm|

|controllerrevisions||

|cronjobs||

|customresourcedefinition|crd|

|daemonsets|ds|

|deployments|deploy|

|endpoints|ep|

|events|ev|

|horizontalpodautoscalers|hpa|

|ingresses|ing|

|jobs||

|limitranges|limits|

|namespaces|ns|

|networkpolicies|netpol|

|nodes|no|

|persistentvolumeclaims|pvc|

|persistentvolumes|pv|

|poddisruptionbudget|pdb|

|podpreset||

|pods|po|

|podsecuritypolicies|psp|

|podtemplates||

|replicasets|rs|

|replicationcontrollers|rc|

|resourcequotas|quota|

|rolebindings||

|roles||

|secrets||

|serviceaccounts|sa|

|services|svc|

|statefulsets||

|storageclasses||

### 1.3 輸出選項(xiàng)

    kubectl默認(rèn)執(zhí)行完命令后的輸出格式為純文本格式,可以通過(guò)-o或者–output字段指定命令的輸出格式铆惑。

kubectl [COMMAND] [TYPE] [NAME] -o=\<output_format\>

|?**輸出格式**?|?**描述**|

|:----|:----|

|\-o=custom-columns=\<spec\>|使用以逗號(hào)分隔的自定義列打印表格范嘱。|

|\-o=custom-columns-file=\<filename\>|使用文件中自定義列打印表格送膳。|

|\-o=json|輸出JSON格式的API對(duì)象|

|\-o=jsonpath=\<template\>|打印在jsonpath表達(dá)式中定義的字段|

|\-o=jsonpath-file=\<filename\>|打印文件中以jsonpath表達(dá)式定義的字段|

|\-o=name|僅僅輸出資源對(duì)象的名稱。|

|\-o=wide|輸出帶有附加信息的純文本格式丑蛤。對(duì)于Pod對(duì)象叠聋,將會(huì)包含Node名稱。|

|\-o=yaml|輸出YAML格式的API對(duì)象|

## 2.1 kubectl常用命令

### 2.1 集群相關(guān)

* 查看集群組件狀態(tài)

? `kubectl get componentstatuses`

* 查看kubelet日志

? `journalctl -xeu kubelet`

? `journalctl -f -u kubelet`

* 獲取集群信息

kubectl cluster-info

kubectl get cs-???**新建/刪除namespace**

kubectl create namespace {namespace-name}

kubectl delete namespace {namespace-name}1.??Pod相關(guān)????1.??pod-???**查看pod列表**

\#指定命名空間的pod列表

kubectl get pods -n {namespace-name} -o wide

\#所有命名空間的pod列表

kubectl get pods --all-namespaces -o wide-???**查看pod日志**

kubectl logs {pod-name} -n {namespace-name}-???**查看pod詳情**

kubectl describe pod {pod-name} -n {namespace-name}-???**將容器鏡像運(yùn)行在pod中**

kubectl run {pod-name} --image={repository:tag} --replicas=1 --port=900-???**在pod中運(yùn)行命令**

kubectl exec {pod-name} {cmd-name}-???**進(jìn)入pod**

kubectl exec {pod-name} -it bash-???**查看deploy列表**

kubectl get deployments -n {namespace-name} -o wide-???**刪除單個(gè)pod**

kubectl delete pods {pod-name}### deployment-???**使用命令直接創(chuàng)建創(chuàng)建deployment**

kubectl run {deployment-name} --image={repository:tag} --replicas={replicas-num}-???**使用yaml創(chuàng)建deployment**

kubectl create -f {yaml-name}.yaml-???**刪除deployment**

kubectl delete deployment {deployment-name}-???**查看所有deployment**

kubectl get deployment-???**查看deployment詳細(xì)信息**

kubectl describe deployment {deployment-name}-???**查看replicaset**

kubectl get rs-???**查看replicaset詳細(xì)信息**

kubectl describe rs {replicaset-name}-???**deployment擴(kuò)容/縮容**

kubectl scale deployment nginx --replicas={replicas-num}-???**deployment升級(jí)/回滾**

kubectl set image deploy {deployment-name} {deployment-name}={repository:tag}-???**查看升級(jí)狀態(tài)**

kubectl rollout status deployment {deployment-name}-???**查看升級(jí)歷史**

kubectl rollout history deployment {deployment-name}-???**查看歷史版本詳情**

kubectl rollout history deployment {deployment-name} --revision=2### 2.2.3 service-???**使用yaml創(chuàng)建service**

kubectl create -f {yaml-name}.yaml-???**使用yarm刪除service**

kubectl delete -f {yaml-name}.yaml-???**直接刪除某個(gè)service**

kubectl delete svc nginx### 2.2.4 其它-???**編輯**

kubectl edit {resource-type}/{resource-name}

或者

kubectl edit –f {yaml-name}-???**查看endpoint**

kubectl get endpoints-???**在線查看Yaml語(yǔ)法**

kubectl explain pod

kubectl explain pod.spec \| grep -i "containers" -5-???**檢驗(yàn)Yarm語(yǔ)法**

kubectl create -f flask.yaml --validate-???**使用Yaml文件刪除pod**

kubectl delete -f flask.yaml

Docker相關(guān)

----------### 容器命令-???**查看容器進(jìn)程**

docker ps\|grep {container-name}-???**查看容器日志**

docker logs --tail=500 {container-id}-???**進(jìn)入容器內(nèi)部**

docker exec -it {container} /bin/bash### 鏡像命令-???**鏡像列表**

docker images-???**導(dǎo)出鏡像**

docker save -o {output-path} {repository:tag}

【說(shuō)明】

output-path:導(dǎo)出到的本地目錄-???**導(dǎo)入鏡像**

docker load --input {image-tar}-???**修改cgroupdriver**

vi /etc/docker/daemon.json

\#添加如下內(nèi)容

{

"exec-opts": ["native.cgroupdriver=systemd"]

}

其它參考

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末受裹,一起剝皮案震驚了整個(gè)濱河市碌补,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌棉饶,老刑警劉巖厦章,帶你破解...
    沈念sama閱讀 219,110評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異照藻,居然都是意外死亡袜啃,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門幸缕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)群发,“玉大人,你說(shuō)我怎么就攤上這事发乔∈旒耍” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,474評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵栏尚,是天一觀的道長(zhǎng)滑蚯。 經(jīng)常有香客問(wèn)我,道長(zhǎng)抵栈,這世上最難降的妖魔是什么告材? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,881評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮古劲,結(jié)果婚禮上斥赋,老公的妹妹穿的比我還像新娘。我一直安慰自己产艾,他們只是感情好疤剑,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,902評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著闷堡,像睡著了一般隘膘。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上杠览,一...
    開(kāi)封第一講書(shū)人閱讀 51,698評(píng)論 1 305
  • 那天弯菊,我揣著相機(jī)與錄音,去河邊找鬼踱阿。 笑死管钳,一個(gè)胖子當(dāng)著我的面吹牛钦铁,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播才漆,決...
    沈念sama閱讀 40,418評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼牛曹,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了醇滥?” 一聲冷哼從身側(cè)響起黎比,我...
    開(kāi)封第一講書(shū)人閱讀 39,332評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎鸳玩,沒(méi)想到半個(gè)月后焰手,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,796評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡怀喉,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,968評(píng)論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了船响。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片躬拢。...
    茶點(diǎn)故事閱讀 40,110評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖见间,靈堂內(nèi)的尸體忽然破棺而出聊闯,到底是詐尸還是另有隱情,我是刑警寧澤米诉,帶...
    沈念sama閱讀 35,792評(píng)論 5 346
  • 正文 年R本政府宣布菱蔬,位于F島的核電站,受9級(jí)特大地震影響史侣,放射性物質(zhì)發(fā)生泄漏拴泌。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,455評(píng)論 3 331
  • 文/蒙蒙 一惊橱、第九天 我趴在偏房一處隱蔽的房頂上張望蚪腐。 院中可真熱鬧,春花似錦税朴、人聲如沸回季。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,003評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)泡一。三九已至,卻和暖如春觅廓,著一層夾襖步出監(jiān)牢的瞬間鼻忠,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,130評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工杈绸, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留粥烁,地道東北人贤笆。 一個(gè)月前我還...
    沈念sama閱讀 48,348評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像讨阻,于是被迫代替她去往敵國(guó)和親芥永。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,047評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容