Kubernetes:開始使用
了解如何開始部署和管理容器化應用程式。
容器入門
開始使用 Kubernetes 之前,請務必了解容器化的運作方式。
如同運輸業使用實體貨櫃來隔離不同的貨物,以透過船、火車、卡車和飛機運輸,有越來越多的軟體開發技術使用稱為容器化的概念。
單一軟體套件 (稱為容器) 會將應用程式的程式碼與相關的設定檔、程式庫及執行應用程式所需的相依性組合在一起。這可讓開發人員和 IT 專業人員更快速安全地建立和部署應用程式。
容器化提供隔離、可攜性、彈性、延展性,以及應用程式整個生命週期工作流程控制等優點。容器是從主機作業系統抽象化的概念,本身獨立,因此更容易移植 (能夠跨任何平台或雲端在任何基礎結構上一致地執行)。
Kubernetes 元件與概念
叢集
Kubernetes 在最高層級會組織成虛擬或內部部署機器的叢集。這些機器 (稱為節點) 會共用計算、網路和儲存體資源。每個叢集都有一個連線到一或多個背景工作節點的主要節點。背景工作節點會負責執行容器化應用程式和工作負載群組 (稱為 Pod),而主要節點則會管理哪些 Pod 在哪些背景工作節點上執行。
控制平面
為了讓主要節點與背景工作節點通訊,並讓人員與主要節點通訊,Kubernetes 包含一些共同組成控制平面的物件。
開發人員和操作員主要使用安裝在其本機 OS 上的命令列介面 kubectl,透過主要節點來與叢集互動。透過 kubectl 向叢集發出的命令會由 kube-apiserver 接收,這是位於主要節點上的 Kubernetes API。kube-apiserver 接著會將要求傳達給主要節點中的 kube-controller-manager,再由後者負責處理背景工作節點作業。來自主要節點的命令會由背景工作節點上的 kubelet 接收。
部署應用程式和工作負載
開始使用 Kubernetes 叢集的下一個步驟是部署應用程式和工作負載。主要節點會在索引鍵值存放區資料庫 etcd 中,隨時維護 Kubernetes 叢集和設定的目前狀態。為了執行具有容器化應用程式和工作負載的 Pod,您將以 YAML 檔案格式向叢集描述新的所需狀態。kube-controller-manager 會接受 YAML 檔案並指派工作給 kube-scheduler,以根據預先決定的條件約束,來決定應用程式或工作負載應該執行哪些背景工作節點。kube-scheduler 會搭配每個背景工作節點的 kubelet 啟動 Pod、監看機器的狀態,並全面負責資源管理。
在 Kubernetes 部署中,您所描述的所需狀態會成為 etcd 中的目前狀態,但先前的狀態不會遺失。Kubernetes 支援復原、輪流更新和暫停推出。此外,部署會在背景使用 ReplicaSets,以確保一致設定的指定 Pod 數目正在執行。如果一或多個 Pods 失敗,則 ReplicaSet 會予以取代。如此一來,Kubernetes 就能自我修復。
建構和保護 Kubernetes 環境
部署您的應用程式或工作負載之後,開始使用 Kubernetes 的最後一個步驟是進行組織,並判斷哪些人事物可加以存取。藉由建立命名空間 (Kubernetes 內的群組方法),即可讓服務、Pod、控制器和磁碟區輕鬆地搭配運作,同時與叢集的其他部分隔離。您也可以使用 Kubernetes 命名空間概念,將一致的設定套用至資源。
此外,每個背景工作節點還包含 kube-proxy,以決定如何從外部存取叢集的各個層面。儲存已編碼的敏感性非公用資訊,例如權杖、憑證和祕密中的密碼 (另一個 Kubernetes 物件),直到執行階段完成為止。
最後,藉由使用角色型存取控制 (RBAC),來指定誰可以觀看叢集的哪些部分並與其互動,以及允許的互動方式。
實作完全受控的 Kubernetes 解決方案
使用 Azure Kubernetes Service (AKS) 管理裝載的 Kubernetes 環境。部署和維護容器化應用程式,而不需要容器協調流程經驗。視需要佈建、升級資源及調整其規模,而不需要讓應用程式離線。
Kubernetes 快速入門:50 天內就能啟動並執行
使用此逐步指南來開始使用 Kubernetes,並取得 Kubernetes 元件、功能和解決方案的實際操作體驗。