Linux中國

用 kubectl 管理 Kubernetes 的 5 種有用方法

Kubernetes 可以幫你編排運行有大量容器的軟體。Kubernetes 不僅提供工具來管理(或者說 編排)運行的容器,還幫助這些容器根據需要進行擴展。有了 Kubernetes 作為你的中央 控制面板 control panel (或稱 控制平面 control plane ),你需要一種方式來管理 Kubernetes,而這項工作的工具就是 kubectlkubectl 命令讓你控制、維護、分析和排查 Kubernetes 集群的故障。與許多使用 ctl(「控制」的縮寫)後綴的工具一樣,如 systemctlsysctlkubectl 擁有大量的功能和任務許可權,所以如果你正在運行 Kubernetes,你肯定會經常使用它。它是一個擁有眾多選項的命令,所以下面是 kubectl 中簡單易用的五個常見任務。

1、列出並描述資源

按照設計,容器往往會成倍增加。在某些條件下,它們可以快速增加。如果你只能通過 podman psdocker ps 來查看正在運行的容器,這可能會讓你不知所措。通過 kubectl getkubectl describe,你可以列出正在運行的 吊艙 pod 以及它們正在處理的容器信息。更重要的是,你可以通過使用 --namespacename--selector等選項,只列出所需信息。

get 子命令不僅僅對吊艙和容器有用。它也有關於節點、命名空間、發布、服務和副本的信息。

2、創建資源

如果你只通過類似 OpenShift、OKD 或 Kubernetes 提供的 Web 用戶界面(UI)創建過發布,但你想從 Linux 終端控制你的集群,那麼可以使用 kubectl createkubectl create 命令並不只是實例化一個新的應用發布。Kubernetes 中還有很多其他組件可以創建,比如服務、配額和 計劃任務

Kubernetes 中的計劃任務可以創建一個臨時的吊艙,用來在你選擇的時間表上執行一些任務。它們並不難設置。下面是一個計劃任務,讓一個 BusyBox 鏡像每分鐘列印 「hello world」。

$ kubectl create cronjob 
    hello-world 
    --image=busybox 
    --schedule="*/1 * * * *" -- echo "hello world"

3、編輯文件

Kubernetes 中的對象都有相應的配置文件,但在文件系統中查找相應的文件較為麻煩。有了 kubectl edit,你可以把注意力放在對象上,而不是定義文件上。你可以通過 kubectl 找到並打開文件(通過 KUBE_EDITOR 環境變數,你可以設置成你喜歡的編輯器)。

$ KUBE_EDITOR=emacs 
    kubectl edit cronjob/hello-world

4、容器之間的傳輸文件

初次接觸容器的人往往對無法直接訪問的共享系統的概念感到困惑。他們可能會在容器引擎或 kubectl 中了解到 exec 選項,但當他們不能從容器中提取文件或將文件放入容器中時,容器仍然會顯得不透明。使用 kubectl cp 命令,你可以把容器當做遠程伺服器,使主機和容器之間文件傳輸如 SSH 命令一樣簡單:

$ kubectl cp foo my-pod:/tmp

5、應用變更

對 Kubernetes 對象進行修改,可以通過 kubectl apply 命令完成。你所要做的就是將該命令指向一個配置文件:

$ kubectl apply -f ./mypod.json

類似於運行 Ansible 劇本或 Bash 腳本,apply 使得快速「導入」設置到運行中的 Kubernetes 實例很容易。例如,GitOps 工具 ArgoCD 由於 apply 子命令,安裝起來出奇地簡單:

$ kubectl create namespace argocd
$ kubectl apply -n argocd 
    -f https://raw.githubusercontent.com/argoproj/argo-cd/vx.y.z/manifests/install.yaml

使用 kubectl

Kubectl 是一個強大的工具,由於它是一個終端命令,它可以寫成腳本,並能實現用眾多 Web UI 無法實現的功能。學習 kubectl 是進一步了解 Kubernetes、容器、吊艙以及圍繞這些重要的雲計算創新技術的一個好方法。下載我們的 kubectl 速查表,以獲得快速參考,其中包括命令示例,以幫助你學習,並在為你提供注意細節。

via: https://opensource.com/article/21/7/kubectl

作者:Alan Smithee 選題:lujun9972 譯者:geekpi 校對:turbokernel

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國