1. 程式人生 > >使用kubeadm建立生產就緒的Kubernetes叢集

使用kubeadm建立生產就緒的Kubernetes叢集

使用kubeadm建立生產就緒的Kubernetes叢集

作者:LucasKäldström(CNCF大使)和Luc Perkins(CNCF開發者倡導者)

kubeadm是一個工具,使Kubernetes管理員能夠快速,輕鬆地引導完全符合Certified Kubernetes指南的最小可行叢集。 自2016年以來,SIG Cluster Lifecycle一直在積極開發,我們很高興地宣佈它已經從測試階段逐步升級到穩定且普遍可用(GA)!

這個GA釋出的kubeadm是Kubernetes生態系統發展過程中的重要事件,為穩定性至關重要的地區帶來了穩定性。

kubeadm的目標是為Kubernetes叢集設定和管理提供基礎實現。kubeadm附帶最佳實踐預設值,但也可以自定義以支援其他生態系統要求或特定於供應商的方法。kubeadm旨在易於整合到更大的部署系統和工具中。

kubeadm的範圍

kubeadm專注於在現有基礎架構上引導Kubernetes叢集並執行一系列基本的維護任務。kubeadm介面的核心非常簡單:通過執行kubeadm init建立新的控制平面節點,並通過執行kubeadm join將工作節點連線到控制平面。還包括用於管理已經引導的叢集的實用程式,例如控制平面升級以及令牌和證書續訂。

為了保持kubeadm精益、專注和供應商/基礎架構中立(agnostic),以下工作超出了其範圍:

  • 基礎設施配置
  • 第三方網路
  • 非關鍵附加元件,例如用於監視、記錄和視覺化
  • 特定的雲提供商整合

例如,基礎架構配置留給其他SIG Cluster Lifecycle專案,例如

Cluster API。相反,kubeadm僅涵蓋每個Kubernetes叢集中的公分母:控制平面。使用者可以在建立群集後在Kubernetes上安裝其首選網路解決方案和其他附加元件。

kubeadm的GA釋出意味著什麼

一般可用性對於不同的專案意味著不同。對於kubeadm來說,GA不僅意味著建立一致的Kubernetes叢集的過程現在已經穩定,而且kubeadm足夠靈活,可以支援各種各樣的部署選項。

我們現在認為kubeadm在每個重要領域都達到了GA級別的成熟度:

  • 穩定的命令列使用體驗 - kubeadm CLI符合Kubernetes棄用策略#5a的GA規則
    ,該規則宣告GA版本中存在的命令或標誌必須在棄用後保留至少12個月。
  • 穩定的底層實現 - kubeadm現在使用不會很快改變的方法建立一個新的Kubernetes叢集。例如,控制平面作為一組靜態Pod執行,引導令牌用於kubeadm join連線流,ComponentConfig用於配置kubelet
  • 配置檔案模式 - 使用新的v1beta1 API版本,您現在可以宣告性地調整叢集的幾乎每個部分,從而圍繞kubeadm構建的叢集構建“GitOps”流。在未來的版本中,我們計劃將API升級到版本v1,只需進行最少的更改(也許沒有)。
  • kubeadm的“toolbox”介面 - 也稱為phase。如果您不想執行所有kubeadm init任務,則可以使用kubeadm init phase命令(例如生成證書或控制平面靜態Pod清單)來應用更細粒度的操作。
  • 次要版本之間的升級 - kubeadm upgrade命令現在完全是GA。它為您處理控制平面升級,包括升級到etcdAPI伺服器控制器管理器排程程式。您可以在次要版本或修補程式版本之間無縫升級群集(例如v1.12.2 - > v1.13.1或v1.13.1 - > v1.13.3)。
  • etcd setup - etcd現在以預設安全的方式設定,在任何地方都有TLS通訊,並允許在需要時擴充套件到高度可用的叢集。

誰將受益於穩定的kubeadm

SIG Cluster Lifecycle已經確定了一些可能的kubeadm使用者場景,儘管我們期望GA上的kubeadm也可以滿足許多其他場景。

這是我們的清單:

  • 你是一個想要儘快試用Kubernetes的新使用者。kubeadm是在Linux機器上啟動和執行的最快方法。如果你在Mac或Windows工作站上使用Minikube,你實際上已經在Minikube VM中運行了kubeadm!
  • 您是負責在裸機上設定Kubernetes的系統管理員,並且您希望快速建立安全且符合最佳實踐但高度可配置的Kubernetes叢集。
  • 您是雲供應商,希望將Kubernetes產品新增到您的雲服務套件中。 kubeadm是用於在較低級別建立叢集的首選工具。
  • 您是一個需要高度定製的Kubernetes叢集的組織。像Amazon EKSGoogle Kubernetes Engine這樣的現有公共雲產品不能滿足您;您需要根據您的硬體、安全性、策略和其他需求量身定製的Kubernetes叢集。
  • 您正在建立一個比kubeadm更高級別的叢集建立工具,從頭開始構建叢集體驗,但您不想重新發明輪子。您可以在kubeadm之上“rebase”並使用kubeadm為您提供的常用引導工具。一些社群工具採用了kubeadm,它與Cluster API實現完美匹配。

所有這些使用者都可以從kubeadm逐漸恢復到穩定的GA狀態中受益。

kubeadm調查

雖然kubeadm是GA,但SIG Cluster Lifecycle將繼續致力於改善管理Kubernetes叢集的使用者體驗。 我們正在開展一項調查,以收集社群對kubeadm的反饋,以便將來改進。

該調查在 https://bit.ly/2FPfRiZ 進行。您的參與將受到高度重視!

感謝社群!

如果沒有為SIG做出貢獻的偉大人物的幫助,這個版本是不可能實現的。SIG Cluster Lifecycle感謝一些關鍵的kubeadm貢獻者:

我們還要感謝所有公司讓他們的開發人員能夠在Kubernetes上工作,以及所有其他人以各種方式為kubeadm的穩定性做出貢獻!

關於作者

LucasKäldström

  • kubeadm子專案所有者和SIG Cluster Lifecycle聯合主席
  • Kubernetes上游承包商,最近兩年簽約Weaveworks
  • CNCF大使
  • GitHub:luxas

Luc Perkins

  • CNCF開發者倡導者
  • Kubernetes SIG Docs撰稿人和SIG Docs工具WG主席
  • GitHub:lucperkins