Kubernetes 概念
本頁面解釋與 Kubernetes 相關的概念,這些概念對於了解 Rancher 的運作方式很重要。以下描述提供了 Kubernetes 元件的簡化概述。有關更多詳細資訊,請參閱 Kubernetes 元件的官方文件。
關於 Docker
Docker 是容器打包和執行時標準。開發人員可以從 Dockerfile 建立容器映像,並從 Docker 登錄分發容器映像。Docker Hub 是一個受歡迎的公共登錄。許多組織也設定私有 Docker 登錄。Docker 主要用於管理個別節點上的容器。
關於 Kubernetes
Kubernetes 是容器叢集管理標準。YAML 檔案指定構成應用程式的容器和其他資源。Kubernetes 執行排程、擴展、服務發現、健康檢查、秘密管理和配置管理等功能。
什麼是 Kubernetes 叢集?
叢集是一組作為單一系統協同工作的電腦。
_Kubernetes 叢集_是使用 Kubernetes 容器編排系統來部署、維護和擴展容器的叢集,允許你的組織自動化應用程式操作。
Kubernetes 叢集中節點的角色
Kubernetes 叢集中的每個計算資源稱為_節點_。節點可以是裸機伺服器或虛擬機器。Kubernetes 將節點分為三種類型:etcd 節點、control plane 節點和 worker 節點。
Kubernetes 叢集至少由一個 etcd、controlplane 和 worker 節點組成。
etcd 節點
Rancher 在單節點和高可用性安裝中都使用 etcd 作為資料存放區。在 Kubernetes 中,etcd 也是儲存叢集狀態的節點角色。
Kubernetes 叢集的狀態維護在 etcd 中。etcd 節點執行 etcd 資料庫。
etcd 資料庫元件是一個分散式鍵值存放區,用作 Kubernetes 儲存所有叢集資料,例如叢集協調和狀態管理。建議在多個節點上執行 etcd,以便始終有備份可用於故障轉移。
雖然你可以在單個節點上執行 etcd,但 etcd 需要大多數節點(仲裁)同意對叢集狀態的更新。叢集應始終包含足夠的健康 etcd 節點以形成仲裁。對於具有 n 個成員的叢集,仲裁為 (n/2)+1。對於任何奇數大小的叢集,增加一個節點將始終增加仲裁所需的節點數。
三個 etcd 節點通常足以用於較小的叢集,五個 etcd 節點用於大型叢集。
Controlplane 節點
Controlplane 節點執行 Kubernetes API 伺服器、排程器和控制器管理器。這些節點負責例行任務,以確保你的叢集維持你的配置。由於所有叢集資料都儲存在你的 etcd 節點上,因此 control plane 節點是無狀態的。你可以在單個節點上執行 control plane,但建議使用三個或更多節點以實現冗餘。此外,單個節點可以共享 control plane 和 etcd 角色。
Worker 節點
每個 worker 節點執行以下內容:
- Kubelets: 監視節點狀態的代理,確保你的容器健康。
- Workloads: 承載你的應用程式的容器和 Pod,以及其他類型的部署。
Worker 節點還會在需要時執行儲存和網路驅動程式,以及 Ingress 控制器。你可以根據需要建立盡可能多的 worker 節點來執行你的工作負載。
關於 Helm
對於 Rancher 的高可用性安裝,Helm 是用於在 Kubernetes 叢集上安裝 Rancher 的工具。
Helm 是 Kubernetes 的首選套件管理工具。Helm Charts 為 Kubernetes YAML 宣告文件提供模板語法。使用 Helm,我們可以建立可配置的部署,而不僅僅是使用靜態檔案。有關建立你自己的部署目錄的更多資訊,請查看 https://helm.sh/ 上的文件。
有關服務帳戶和叢集角色綁定的更多資訊,請參閱 Kubernetes 文件。