本文發表於一年多前。舊文章可能包含過時內容。請檢查頁面中的資訊自發布以來是否已變得不正確。
我們如何讓 Kubernetes 的安裝變得異常簡單
在SIG-cluster-lifecycle,我們過去幾個月一直在努力開發 kubeadm,這是一個讓 Kubernetes 安裝變得極其簡單的工具。我們聽使用者反映,安裝 Kubernetes 比它應有的難度要大,我們希望大家能專注於編寫出色的分散式應用程式,而不是與基礎設施糾纏不清!
設定 Kubernetes 叢集有三個階段,我們決定(首先)關注後兩個階段
- 資源調配:獲取一些機器
- 引導:在機器上安裝 Kubernetes 並配置證書
- 附加元件:安裝必要的叢集附加元件,例如 DNS 和監控服務、Pod 網路等。我們很早就意識到,使用者在資源調配機器的方式上存在巨大差異。
他們使用許多不同的雲提供商、私有云、裸機,甚至樹莓派,並且幾乎總是擁有自己首選的自動化資源調配工具:Terraform 或 CloudFormation、Chef、Puppet 或 Ansible,甚至 PXE 引導裸機。因此我們做出了一個重要決定:kubeadm 不會調配機器。相反,它唯一的前提是使用者有一些執行 Linux 的計算機。
另一個重要的限制是,我們不希望僅僅構建另一個“透過將所有部件逐一到位來從外部配置 Kubernetes”的工具。有許多外部專案可以做到這一點,但我們希望目標更高。我們選擇實際改進 Kubernetes 核心本身,使其更易於安裝。幸運的是,實現這一目標的許多基礎工作已經開始。
我們意識到,如果我們能讓 Kubernetes 極其易於手動安裝,那麼使用者就應該清楚如何使用任何工具自動完成該過程。
因此,引入了 kubeadm。它沒有基礎設施依賴,並滿足上述要求。它易於使用,並且應該易於自動化。它仍處於 alpha 階段,但其工作原理如下:
- 您安裝 Docker 和您的發行版的官方 Kubernetes 包。
- 選擇一個主節點主機,執行 `kubeadm init`。
- 這將設定控制平面並輸出一個包含安全令牌的 `kubeadm join [...]` 命令。
- 在每個選作工作節點的宿主機上,執行上述 `kubeadm join [...]` 命令。
- 安裝 Pod 網路。Weave Net 是一個很好的起點。只需使用 `kubectl apply -f https://git.io/weave-kube` 安裝它。瞧!您就擁有了一個可用的 Kubernetes 叢集!立即嘗試 kubeadm。
如需影片教程,請檢視此內容:
按照kubeadm 入門指南親自嘗試,並請在 GitHub 上給我們反饋,提及 @kubernetes/sig-cluster-lifecycle!
最後,我要向 SIG-cluster-lifecycle 中的許多人致以崇高的敬意,沒有他們,這一切都不可能實現。我在此只提及其中幾位:
- Joe Beda 讓我們專注於為使用者保持簡單。
- Google 的 Mike Danese 是一位傑出的技術主管,總是瞭解最新動態。Mike 也孜孜不倦地完成了許多必要的程式碼審查。
- 我的 Weaveworks 同事 Ilya Dmitrichenko 編寫了大部分 kubeadm 程式碼,並樂於幫助其他同事貢獻。
- 來自芬蘭的 Lucas Käldström 肯定是團隊中最年輕的貢獻者,他在學校數學考試前的週日晚上還在合併最後一刻的拉取請求。
- Brandon Philips 和他的 CoreOS 團隊領導了 TLS 引導的開發,這是一個必不可少的核心元件,沒有它我們寸步難行。
- Red Hat 的 Devan Goodwin 建立了 Joe 設想的 JWS 發現服務,並整理了我們的 RPM 包。
- 來自葡萄牙的 Paulo Pires 積極參與,協助支援外部 etcd 並承擔了許多其他工作。
- 以及許多其他貢獻者!
這確實是一個卓越的跨公司、跨時區的成就,由一群可愛的人共同完成。SIG-cluster-lifecycle 還有很多工作要做,如果您對這些挑戰感興趣,請加入我們的 SIG。期待與大家合作!
- 立即嘗試使用 kubeadm 安裝 Kubernetes
- 在 GitHub 上參與 Kubernetes 專案
- 在 Stack Overflow 上提問(或回答問題)
- 在 Slack 上與社群聯絡
- 在 Twitter 上關注我們 @Kubernetesio 獲取最新更新