速查表:學習 Kubernetes 的基本命令
雲計算主要是在 Kubernetes 上運行,Kubernetes 主要是在 Linux 上運行,而 Linux 在有熟練的系統管理員控制時運行得最好。無論你認為自己是雲計算架構師還是只是一個保守的系統管理員,現代互聯網都需要了解如何在容器中創建應用和服務,按需擴展,按需擴展以及如何明智地進行監視和管理。
進入勇敢的容器世界的第一步是學習 Kubernetes 和它的基本命令:kubectl
。
安裝 kubectl
kubectl
命令允許你在 Kubernetes 集群上運行命令。你使用 kubectl
來部署應用、查看日誌、檢查和管理集群資源,並在出現問題時進行故障排除。kubectl
(以及整個 Kubernetes)的典型「問題」是,要對集群運行命令,你首先需要一個集群。然而,有一些簡單的解決方案。
首先,你可以創建自己的 Kubernetes 集群,只需買三塊樹莓派板和相關外圍設備(主要是電源)。當你獲得了硬體,閱讀 Chris Collins 的 使用樹莓派構建 Kubernetes 集群,你就會擁有自己的安裝有 kubectl
的集群。
另一種獲得集群的方法是使用 Minikube,這是一個 Kubernetes 的實踐環境。在所有建立和運行集群的方法中,這是最簡單的。
還有更多的選擇;例如,你可以參加一個關於 Kubernetes 的課程,以獲得一個運行集群的實驗室,或者你可以在雲上購買時間。只要你有一個 Kubernetes 環境來練習,如何獲得集群並不重要。
當你你能訪問一個集群,你就可以開始探索 kubectl
命令。
了解吊艙和容器
容器是一個輕量級的、部分的 Linux 系統,專門用於運行一個應用或服務。容器受到 內核命名空間 的限制,這使它能夠訪問其主機(運行容器的計算機)上的重要系統組件,同時防止它向其主機發送數據。容器以容器鏡像(或簡稱 鏡像)的形式保存,並由稱為 Containerfile
或 Dockerfile
的文本文件定義。
吊艙 是容器的正式集合,也是管理員擴展、監控和維護任何數量的容器的一種簡單方法。
這些一起就像 Kubernetes 的「應用程序」。創建或獲取容器鏡像是你在雲上運行服務的方式。
運行一個吊艙
容器鏡像的兩個可靠的倉庫是 Docker Hub 和 Quay。你可以在倉庫中搜索可用的鏡像列表。通常有由項目提供的大型項目的官方鏡像,也有專門的、定製的或特殊項目的社區鏡像。最簡單和最小的鏡像之一是 BusyBox 容器,它提供了一個最小的 shell 環境和一些常用命令。
無論你是從倉庫中拉取鏡像,還是自己編寫鏡像定義並從 Git 倉庫中拉取到集群中,其工作流程都是一樣的。當你想在 Kubernetes 中啟動一個吊艙時:
- 在 Docker Hub 或 Quay 上找到一個你想使用的鏡像
- 拉取鏡像
- 創建一個吊艙
- 部署吊艙
以 BusyBox 容器為例子,你可以用一條命令完成最後三個步驟:
$ kubectl create deployment my-busybox --image=busybox
等待 kubectl
完成這個過程,最後你就有了一個正在運行的 BusyBox 實例。這個吊艙並沒有暴露給其他人。它只是在後台安靜地在你的集群上運行。
要看你的集群上有哪些吊艙在運行:
$ kubectl get pods --all-namespaces
你也可以獲得關於吊艙部署的信息:
$ kubectl describe deployment my-busybox
與吊艙互動
容器通常包含使其自動化的配置文件。例如,將 Nginx httpd 伺服器作為容器安裝,應該不需要你的互動。你開始運行容器,它就會工作。對於你添加到吊艙中的第一個容器和之後的每個容器都是如此。
Kubernetes 模型的優點之一是,你可以根據需要擴展你的服務。如果你的網路服務被意外的流量淹沒,你可以在你的雲中啟動一個相同的容器(使用 scale
或 autoscale
子命令),使你的服務處理傳入請求的能力增加一倍。
即便如此,有時還是很高興看到一些證明吊艙正在按預期運行的證據,或者能夠對似乎無法正常運行的某些問題進行故障排除。為此,你可以在一個容器中運行任意的命令:
$ 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
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive