Linux中國

速查表:學習 Kubernetes 的基本命令

雲計算主要是在 Kubernetes 上運行,Kubernetes 主要是在 Linux 上運行,而 Linux 在有熟練的系統管理員控制時運行得最好。無論你認為自己是雲計算架構師還是只是一個保守的系統管理員,現代互聯網都需要了解如何在容器中創建應用和服務,按需擴展,按需擴展以及如何明智地進行監視和管理。

進入勇敢的容器世界的第一步是學習 Kubernetes 和它的基本命令:kubectl

安裝 kubectl

kubectl 命令允許你在 Kubernetes 集群上運行命令。你使用 kubectl 來部署應用、查看日誌、檢查和管理集群資源,並在出現問題時進行故障排除。kubectl(以及整個 Kubernetes)的典型「問題」是,要對集群運行命令,你首先需要一個集群。然而,有一些簡單的解決方案。

首先,你可以創建自己的 Kubernetes 集群,只需買三塊樹莓派板和相關外圍設備(主要是電源)。當你獲得了硬體,閱讀 Chris Collins 的 使用樹莓派構建 Kubernetes 集群,你就會擁有自己的安裝有 kubectl 的集群。

另一種獲得集群的方法是使用 Minikube,這是一個 Kubernetes 的實踐環境。在所有建立和運行集群的方法中,這是最簡單的。

還有更多的選擇;例如,你可以參加一個關於 Kubernetes 的課程,以獲得一個運行集群的實驗室,或者你可以在雲上購買時間。只要你有一個 Kubernetes 環境來練習,如何獲得集群並不重要。

當你你能訪問一個集群,你就可以開始探索 kubectl 命令。

了解吊艙和容器

容器是一個輕量級的、部分的 Linux 系統,專門用於運行一個應用或服務。容器受到 內核命名空間 的限制,這使它能夠訪問其主機(運行容器的計算機)上的重要系統組件,同時防止它向其主機發送數據。容器以容器鏡像(或簡稱 鏡像)的形式保存,並由稱為 ContainerfileDockerfile 的文本文件定義。

吊艙 Pod 是容器的正式集合,也是管理員擴展、監控和維護任何數量的容器的一種簡單方法。

這些一起就像 Kubernetes 的「應用程序」。創建或獲取容器鏡像是你在雲上運行服務的方式。

運行一個吊艙

容器鏡像的兩個可靠的倉庫是 Docker Hub 和 Quay。你可以在倉庫中搜索可用的鏡像列表。通常有由項目提供的大型項目的官方鏡像,也有專門的、定製的或特殊項目的社區鏡像。最簡單和最小的鏡像之一是 BusyBox 容器,它提供了一個最小的 shell 環境和一些常用命令。

無論你是從倉庫中拉取鏡像,還是自己編寫鏡像定義並從 Git 倉庫中拉取到集群中,其工作流程都是一樣的。當你想在 Kubernetes 中啟動一個吊艙時:

  1. Docker HubQuay 上找到一個你想使用的鏡像
  2. 拉取鏡像
  3. 創建一個吊艙
  4. 部署吊艙

以 BusyBox 容器為例子,你可以用一條命令完成最後三個步驟:

$ kubectl create deployment my-busybox --image=busybox

等待 kubectl 完成這個過程,最後你就有了一個正在運行的 BusyBox 實例。這個吊艙並沒有暴露給其他人。它只是在後台安靜地在你的集群上運行。

要看你的集群上有哪些吊艙在運行:

$ kubectl get pods --all-namespaces

你也可以獲得關於吊艙部署的信息:

$ kubectl describe deployment my-busybox

與吊艙互動

容器通常包含使其自動化的配置文件。例如,將 Nginx httpd 伺服器作為容器安裝,應該不需要你的互動。你開始運行容器,它就會工作。對於你添加到吊艙中的第一個容器和之後的每個容器都是如此。

Kubernetes 模型的優點之一是,你可以根據需要擴展你的服務。如果你的網路服務被意外的流量淹沒,你可以在你的雲中啟動一個相同的容器(使用 scaleautoscale 子命令),使你的服務處理傳入請求的能力增加一倍。

即便如此,有時還是很高興看到一些證明吊艙正在按預期運行的證據,或者能夠對似乎無法正常運行的某些問題進行故障排除。為此,你可以在一個容器中運行任意的命令:

$ kubectl exec my-busybox -- echo "hello cloud"

另外,你可以在你的容器中打開一個 shell,用管道將你的標準輸入輸入到其中,並將其輸出到終端的標準輸出:

$ kubectl exec --stdin --tty my-busybox -- /bin/sh

暴露服務

默認情況下,吊艙在創建時不會暴露給外界,這樣你就有時間在上線前進行測試和驗證。假設你想把 Nginx Web 伺服器作為一個吊艙安裝和部署在你的集群上,並使其可以訪問。與任何服務一樣,你必須將你的吊艙指向伺服器上的一個埠。kubectl 子命令 expose 可以為你做到這點:

$ kubectl create deployment 
  my-nginx --image=nginx
$ kubectl expose deployment 
  my-nginx --type=LoadBalancer --port=8080

只要你的集群可以從互聯網上訪問,你就可以通過打開瀏覽器並導航到你的公共 IP 地址來測試你的新 Web 伺服器的可訪問性。

不僅僅是吊艙

Kubernetes 提供了很多東西,而不僅僅是存儲普通服務的鏡像。除了作為一個 容器編排 系統,它還是一個雲開發的平台。你可以編寫和部署應用,管理和監控性能和流量,實施智能負載平衡策略等。

Kubernetes 是一個強大的系統,它已經迅速成為各種雲的基礎,最主要的是 開放混合雲。今天就開始學習 Kubernetes 吧。隨著你對 Kubernetes 的進一步了解,你會需要一些關於其主要概念和一般語法的快速提醒,所以 下載我們的 Kubernetes 速查表 並將它放在身邊。

via: https://opensource.com/article/21/5/kubernetes-cheat-sheet

作者:Seth Kenlon 選題:lujun9972 譯者:geekpi 校對:wxy

本文由 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中國