Kubernetes Container 容器管理 K8S 容器

K8S雲端快速試玩 動手打造容器叢集

2018-08-13
Google K8S(Kubernetes)目前已經成為最多人採用容器管理調度平台,為了協助IT人員跟上腳步,本文將透過說明及實作,練習建構Kubernetes叢集運作環境,然後示範其中幾項重要的操作技巧,例如線上擴充或縮減容器的運作規模、使用Kubernetes儀表板等等,以便降低資料中心維運人員的管理負擔。

舉例來說,在本文的實作環境中,Kubernetes叢集內有「3台」Node節點主機,管理人員可以透過「az aks scale --resource-group RG-USEast --name K8SCluster --node-count 8」指令,將Kubernetes叢集內原有的Node節點主機,擴充為「8 台」節點主機的運作規模,完成後再次執行「kubectl get nodes」指令查詢Kubernetes叢集中Node節點主機資訊,如圖15所示。


▲ 圖15 擴充Kubernetes叢集Node節點主機的運作規模。


除了擴充及縮小Kubernetes叢集中Node節點主機運作規模之外,也支援擴充和縮小運作容器和應用程式的Pod。舉例來說,剛才所部署的azure-vote-front前端和azure-vote-back後端,都只有「1個Pod」而已,管理人員可以透過「kubectl scale --replicas=5 deployment/azure-vote-front」指令,將Pod數量由原本的1個擴充為「5個 Pod」。完成後,再次執行「kubectl get pods」指令查詢Kubernetes叢集中Pod資訊,如圖16所示。


▲ 圖16 擴充Kubernetes叢集Pod的運作規模。


除了管理人員手動調整Pod的運作規模外,Kubernetes叢集還支援根據資源使用量,例如CPU使用率達到指定的門檻值後「自動」擴充Pod的運作規模。

舉例來說,管理人員可以透過「kubectl autoscale deployment azure-vote-front --cpu-percent=50 --min=3 --max=10」指令,指定當CPU使用率「超過50%」時,Kubernetes叢集便自動擴充Pod的運作規模最多新增至「10個Pod」,倘若沒什麼工作負載時Kubernetes叢集便縮小Pod的運作規模最小至「3個Pod」。如圖17所示,可以看到剛才手動擴充Pod的運作規模至「5個Pod」,然而組態設定自動調整Pod運作規模機制後,透過「kubectl get hpa」指令可以發現,因為CPU工作負載低於50%的門檻值,所以Kubernetes叢集便自動縮小Pod運作規模至最小的「3個Pod」。


▲ 圖17 組態設定Kubernetes叢集自動調整Pod的運作規模。

使用Kubernetes儀表板

至此,已經成功建構Kubernetes叢集運作環境,並且部署容器及範例用途的投票應用程式。最後,管理人員可以透過Kubernetes叢集內建提供的儀表板功能,輕鬆監控Kubernetes叢集各項運作元件及容器的健康情況。

執行「az aks browse --resource-group RG-USEast --name K8SCluster」指令,那麼系統便會在CLI主機與Kubernetes API之間建立Proxy,如圖18所示。系統將自動開啟CLI主機的瀏覽器,然後透過與Kubernetes API之間建立的Proxy連結至Kubernetes儀表板,如圖19所示。除了透過Kubernetes儀表板監看Kubernetes叢集工作負載,例如Kubernetes部署、Kubernetes服務、Pods、Replica Sets等等之外,也可以使用Kubernetes儀表板部署容器和應用程式。


▲ 圖18 執行CLI主機與Kubernetes API之間建立Proxy的動作。


▲ 圖19 透過Kubernetes儀表板監看Kubernetes叢集工作負載。

刪除Kubernetes叢集環境

如果管理人員不再測試Kubernetes叢集環境功能,希望能夠刪除Kubernetes時,只要執行「az group delete --name RG-USEast --yes --no-wait」指令,便可以一次刪除整個Kubernetes叢集環境,包含Kubernetes部署、Kubernetes服務、Pods等等。

結語

透過實作練習,管理人員應該能夠感受到建構Kubernetes叢集運作環境後,能夠很容易地線上擴充或縮減容器的運作規模,同時在容器因為任何因素而停止運作時,Kubernetes叢集也會自動產生新的容器,確保容器所提供服務具備高可用性。

<本文作者:王偉任,Microsoft MVP及VMware vExpert。早期主要研究Linux/FreeBSD各項整合應用,目前則專注於Microsoft及VMware虛擬化技術及混合雲運作架構,部落格weithenn.org。>


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!