Linux中國

如何在樹莓派上部署 Kubernetes

當我開始對 ARM設備,特別是 Raspberry Pi 感興趣時,我的第一個項目是一個 OpenVPN 伺服器。

通過將 Raspberry Pi 作為家庭網路的安全網關,我可以使用我的手機來控制我的桌面,遠程播放 Spotify,打開文檔以及一些其他有趣的東西。我在第一個項目中使用了一個現有的教程,因為我害怕自己在命令行中拼砌。

幾個月後,這種恐懼消失了。我擴展了我的原始項目,並使用 Samba 伺服器從文件伺服器分離出了 OpenVPN 伺服器。這是我第一個沒有完全按照教程來的項目。不幸的是,在我的 Samba 項目結束後,我意識到我沒有記錄任何東西,所以我無法複製它。為了重新創建它,我不得不重新參考我曾經用過的那些單獨的教程,將項目拼回到一起。

我學到了關於開發人員工作流程的寶貴經驗 - 跟蹤你所有的更改。我在本地做了一個小的 git 倉庫,並記錄了我輸入的所有命令。

發現 Kubernetes

2015 年 5 月,我發現了 Linux 容器和 Kubernetes。我覺得 Kubernetes 很有魅力,我可以使用仍然處於技術發展的概念 - 並且我實際上可以用它。平台本身及其所呈現的可能性令人興奮。在此之前,我才剛剛在一塊 Raspberry Pi 上運行了一個程序。而有了 Kubernetes,我可以做出比以前更先進的配置。

那時候,Docker(v1.6 版本,如果我記得正確的話)在 ARM 上有一個 bug,這意味著在 Raspberry Pi 上運行 Kubernetes 實際上是不可能的。在早期的 0.x 版本中,Kubernetes 的變化很快。每次我在 AMD64 上找到一篇關於如何設置 Kubernetes 的指南時,它針對的還都是一個舊版本,與我當時使用的完全不兼容。

不管怎樣,我用自己的方法在 Raspberry Pi 上創建了一個 Kubernetes 節點,而在 Kubernetes v1.0.1 中,我使用 Docker v1.7.1 讓它工作了。這是第一個將 Kubernetes 全功能部署到 ARM 的方法。

在 Raspberry Pi 上運行 Kubernetes 的優勢在於,由於 ARM 設備非常小巧,因此不會產生大量的功耗。如果程序以正確的方式構建而成,那麼就可以在 AMD64 上用同樣的方法運行同一個程序。這樣的一塊小型 IoT 板為教育創造了巨大的機會。用它來做演示也很有用,比如你要出差參加一個會議。攜帶 Raspberry Pi (通常)比拖著大型英特爾機器要容易得多。

現在按照我建議的 ARM(32 位和 64 位)的支持已被合併到 Kubernetes 核心中。ARM 的二進位文件會自動與 Kubernetes 一起發布。雖然我們還沒有為 ARM 提供自動化的 CI(持續集成)系統,不過在 PR 合併之前會自動確定它可在 ARM 上工作,現在它運轉得不錯。

Raspberry Pi 上的分散式網路

我通過 kubeadm 發現了 Weave Net。Weave Mesh 是一個有趣的分散式網路解決方案,因此我開始了解更多關於它的內容。在 2016 年 12 月,我在 Weaveworks 收到了第一份合同工作,我成為了 Weave Net 中 ARM 支持團隊的一員。

我很高興可以在 Raspberry Pi 上運行 Weave Net 的工業案例,比如那些需要設備更加移動化的工廠。目前,將 Weave Scope 或 Weave Cloud 部署到 Raspberry Pi 可能不太現實(儘管可以考慮使用其他 ARM 設備),因為我猜這個軟體需要更多的內存才能運行良好。理想情況下,隨著 Raspberry Pi 升級到 2GB 內存,我想我可以在它上面運行 Weave Cloud 了。

在 Weave Net 1.9 中,Weave Net 支持了 ARM。Kubeadm(通常是 Kubernetes)在多個平台上工作。你可以使用 Weave 將 Kubernetes 部署到 ARM,就像在任何 AMD64 設備上一樣安裝 Docker、kubeadm、kubectl 和 kubelet。然後初始化控制面板組件運行的主機:

kubeadm init

接下來,用下面的命令安裝你的 pod 網路:

kubectl apply -f https://git.io/weave-kube

在此之前在 ARM 上,你只能用 Flannel 安裝 pod 網路,但是在 Weave Net 1.9 中已經改變了,它官方支持了 ARM。

最後,加入你的節點:

kubeadm join --token <token> <master-ip>

就是這樣了!Kubernetes 已經部署到了 Raspberry Pi 上了。相比在 Intel/AMD64 上運行,你不用做什麼特別的事情;Weave Net 在 ARM 上就能工作的很好。

Raspberry Pi 社區

我希望 Raspberry Pi 社區成長起來,他們的思想傳播到世界其他地方。他們在英國和其他國家已經取得了成功,但在芬蘭並不是很成功。我希望生態系統能夠繼續擴展,以讓更多的人學習如何部署 Kubernetes 或 Weave 到 ARM 設備上。畢竟,這些是我學到的。通過在 Raspberry Pi 設備上自學,我更好地了解了 ARM 及其上面部署的軟體。

最後的思考

我通過加入用戶社區、提出問題和不同程度的測試,在線學習了關於 Raspberry Pi 和 Kubernetes 的一切。

我是居住在芬蘭的說瑞典語的高中生,到目前為止,我還從來沒有參加過編程或計算機課程。但我仍然能夠加入開源社區,因為它對年齡或教育沒有限制:你的工作是根據其價值來評判的。

對於那些第一次要在開源項目中做出貢獻感到緊張的人,我想說:深入進去,因為這是完全值得的。你做什麼沒有任何限制,你將永遠不知道開源世界將為你提供哪些機會。這會很有趣,我保證!

作者簡介:

Lucas Käldström - 謝謝你發現我!我是一名來自芬蘭的說瑞典語的高中生。

via: https://opensource.com/article/17/3/kubernetes-raspberry-pi

作者:Lucas Käldström 譯者:geekpi 校對:jasminepeng

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國