你必定會用到的7條kubectl命令

kubectl在使用Kubernetes過程當中的重要性不言而喻,掌握其命令行也是許多IT人員的「必修課程」。node

而互聯網上關於kubectl的文章多如牛毛,本文秉持着「濃縮就是精華」的原則,精簡精簡再精簡,挑出你必定會用到的7條命令!同時還介紹了kubectl命令的基本語法,幫助你快速上手kubectl!bash


kubectl是Kubernetes的命令行工具,人們一般經過它與Kubernetes進行交互。經過kubectl可以對集羣自己進行管理,並可以在集羣上進行容器化應用的安裝部署。咱們在《使用Kubectl管理Kubernetes的全解教程》一文中詳細介紹了在不一樣的操做系統中如何安裝kubectl以及如何使用RKE和Rancher建立配置文件。在本文中,咱們將介紹kubectl中最常使用的命令。app

首先,讓咱們來看看kubectl是如何工做的:工具

  • 一個kubectl命令能夠執行一個行動,如getcreate或者describe操作系統

  • 一個行動能夠在一個資源上執行,如Deployment命令行

  • kubectl命令遵循這一語法格式:kubectl an_action a_resource a_resource_name –flagsdebug

在大部分狀況下,名稱和標誌並非必要的。例如,要得到關於現有pod的信息,你一般能夠直接運行這一命令:kubectl get pods日誌

這裏有一個小技巧:若是你不想每次都手動輸入kubectl,能夠製做一個Bash alias。設置alias k='kubectl',以後只需輸入「k」便可代替kubectl。code

接下來,咱們來看看最多見的kubectl資源類型及其縮寫(括號內爲縮寫)。對象

最多見的11種kubectl資源類型

  • pods (po)

  • nodes(no)

  • deployments (deploy)

  • replicasets(rs)

  • daemonsets(ds)

  • statefulsets(sts)

  • jobs

  • cronjobs(cj)

  • services(svc)

  • persistentvolumes(pv)

  • persistentvolumeclaim (pvc)

你還須要知道的名稱是alleventall是指全部已存在的資源,kubectl get all顯示運行中的Pod、Service、Deployment以及ReplicaSet的關鍵信息。這個命令十分方便。

相似地,kubectl get events顯示了event的歷史記錄。它像是Kubernetes級別的日誌,而不是容器級別的日誌。

若是你想要看到更多類型的kubectl資源,請查閱官方文檔:

https://kubernetes.io/docs/reference/kubectl/overview/

如今讓咱們來看看在資源上執行的常見行動。

最經常使用的kubectl命令

  • help—獲取幫助

  • get— 顯示有關一個或多個資源的信息

  • describe—顯示關於一個或多個資源的詳細信息

  • logs—顯示容器日誌

  • exec—進入容器中一個正在運行的進程

  • apply—建立或選擇一個資源

  • delete—刪除一個或多個資源

如今,讓咱們來簡單瞭解每一個命令。

help

在命令以後輸入--help以獲取該命令的幫助。如,kubectl get pods –help

get

kubectl get all顯示了關於運行中的pod、service、deployment以及Replicaset的關鍵信息。這是檢查事物狀態的首選命令,你能夠將get和單個對象一塊兒使用,並添加--watch標誌以實時觀察更新。

describe

kubectl describe all顯示大量與你的集羣相關的詳細信息,你也能夠將describe與單個對象一塊兒使用。這個命令在debug過程當中將大有用處。

logs

logs命令須要一個pod名稱。當在多個pod中時,使用-c my-container標誌來指定一個容器。使用--previous標誌來獲取再也不運行的容器信息。

exec

exec幫助你debug一個容器進程,它容許你經過帶-it的僞終端在容器內執行進程。例如,要在my_pod中進入容器並運行Bash,請輸入kubectl exec -it my_pod bash

apply

這一命令能夠經過文件名或控制檯輸入,對資源進行配置。而且apply可以對集羣資源進行聲明式管理:若是資源不存在,apply將建立它;若是它存在,apply將更改它。此外,apply還可以添加Service到適用的資源或者經過添加Pod自動化彈性伸縮的Deployment。

請注意,你可使用create來建立一個Deployment而且使用expose建立一個Service。但相對來講,不管對於文件自己仍是以後須要從新使用來講,使用帶有apply的YAML文件是更好選擇。apply是建立和更新資源的「瑞士軍刀」。

delete

kubectl delete pod my_pod這一命令可用於刪除名稱爲my_pod的Pod。

要刪除全部相同類型的資源,須要使用--all標誌。例如,使用kubectl delete rs –all能夠刪除全部ReplicaSet。請注意,若是你嘗試這一操做,那麼要先刪除Deployment,不然ReplicaSet將會從新啓動。

如今你已經瞭解K8s的關鍵命令了,若是你還想查看更多的kubectl命令,請參閱:

https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands

相關文章
相關標籤/搜索