[譯] Kubernetes 兒童插圖指南

Kubernetes 兒童插圖指南

獻給全部試圖向孩子們解釋軟件工程的家長。前端

好久好久之前,有一個叫 Phippy 的應用程序。她是一個簡單的應用程序,由 PHP 編寫且只有一個頁面。她住在一個須要和其餘可怕的應用程序分享環境的主機中,她不認識這些應用程序而且不肯意和他們來往。她但願她能擁有一個屬於本身的環境:只有她本身和她能夠稱之爲家的 Web 服務器。android

每一個應用程序都有個運行所依賴的環境。對於 PHP 應用程序來講,這個環境可能包括 Web 服務器,一個可讀文件系統和 PHP 引擎自己。ios

有一天,一隻善良的鯨魚出現了。他建議小 Phippy 住在容器裏,這樣可能會更快樂。因此應用程序 Phippy 遷移到了容器中。這個容器很棒,可是……它有點像一個漂浮在大海中央的豪華起居室。git

容器提供了一個獨立的環境,應用程序能夠在這個環境中運行。可是這些孤立的容器經常須要被管理並與外面的世界鏈接。對於孤立的容器而言,共享文件系統、網絡通訊、調度、負載均衡和分發都是要面對的挑戰。github

鯨魚聳了聳肩。「對不起,孩子。」他說着,消失在海面下。就在 Phippy 甚至開始絕望時,一位駕駛着巨輪的船長出如今海平線上。這艘船由幾十個綁在一塊兒的木筏組成,但從外面來看,它就像一艘巨輪。後端

「你好呀,這位 PHP 應用程序朋友。我是 Kube 船長。」睿智的老船長說。服務器

「Kubernetes」 在希臘語中是船長的意思。咱們能夠從這個單詞中獲得 CyberneticGubernatorial 這兩個詞組。Kubernetes 項目專一於構建一個健壯的平臺,用於在生產環境中運行數千個容器。網絡

「我是 Phippy。」小應用程序說。負載均衡

「很高興認識你。」船長一邊說,一邊在她身上貼上了一張標有姓名的標籤。ide

Kubernetes 使用標籤做爲「名牌」來標識事物。它能夠根據這些標籤進行查詢。標籤是開放性的:你能夠用他們來表示角色、穩定性或其餘重要的屬性。

船長建議應用程序把她的容器搬到船上的一個船艙中。Phippy 很高興地把她的容器搬到 Kube 船長巨輪的船艙內。Phippy 以爲這裏像家同樣。

在 Kubernetes 中,Pod 表明一個可運行的工做單元。一般,你會在 Pod 中運行一個容器。可是對於一些容器緊密耦合的狀況,你能夠選擇在同一個 Pod 中運行多個容器。Kubernetes 負責將你的 Pod 和網絡以及 Kubernetes 的其他環境相連。

Phippy 有一些不一樣尋常的興趣,她很喜歡遺傳學和綿羊。因此她問船長:「若是我想克隆我本身,是否能夠根據需求克隆任意次數呢?」

「這很容易。」船長說。船長把 Phippy 介紹給了 Replication Controller。

Replication Controller 提供一種管理任意數量 Pod 的方法。一個 Replication Controller 包含一個 Pod 模板,該模板能夠被複制任意次數。經過 Replication Controller,Kubernetes 將管理 Pod 的生命週期,包括伸縮、滾動更新和監控。

無數個日夜,小應用程序在她的船艙中與她的複製品相處十分愉快。但與本身爲伍並無所說的那麼好……即便你擁有 N 個本身的克隆體。

Kube 船長慈祥地笑了笑:「我正好有同樣東西。」

他剛開口,在 Phippy 的 Replication Controller 和船的其餘部分之間打開了一條隧道。Kube 船長笑着說:「即便你的複製品來了又去,這條隧道始終會留在這裏,你能夠經過它發現其餘 Pod,其餘 Pod 也能夠發現你!」

服務告知 Kubernetes 環境的其他部分(包括其餘 Pod 和 Replication Controller)你的應用程序包含了哪些服務,當 Pod 來來每每,服務的 IP 地址和端口始終保持不變。其餘應用程序能夠經過 Kurbenetes 服務發現找到你的服務。

多虧了這些服務,Phippy 開始探索船的其餘部分。不久以後,Phippy 遇到了 Goldie。他們成了最好的朋友。有一天,Goldie 作了一件不一樣尋常的事。她送給 Phippy 一件禮物。Phippy 看了禮物一眼,悲傷的淚水奪眶而出。

「你爲何這麼傷心呢?」Goldie 問道。

「我喜歡這個禮物,但我沒有地方能夠放它!」Phippy 抽噎道。

但 Goldie 知道該怎麼作。「爲何不把它放入卷中呢?」

卷表示容器能夠訪問和存儲信息的位置。對於應用程序,卷顯示爲本地文件系統的一部分。但卷能夠由本地存儲、Ceph、Gluster、持久性塊存儲,以及其餘存儲後端支持。

Phippy 喜歡在 Kube 船長的船上生活,她很享受來自新朋友的陪伴(Goldie 的每一個克隆人都一樣使人愉悅)。可是,當她回想起在可怕的主機度過的日子,她想知道她是否也能夠擁有一點本身的隱私。

「這聽起來像是你所須要的,」Kube 船長說,「這是一個命名空間。」

命名空間是 Kubernetes 內部的分組機制。服務、Pod、Replication Controller 和卷能夠在命名空間內部輕鬆協做,但命名空間提供了與集羣其餘部分必定程度的隔離。

Phippy 與她的新朋友一塊兒乘坐 Kube 船長的巨輪航行於大海之上。她經歷了許多偉大的冒險,但最重要的是,Phippy 找到了本身的家。

因此 Phippy 今後過上了幸福的生活。

若是發現譯文存在錯誤或其餘須要改進的地方,歡迎到 掘金翻譯計劃 對譯文進行修改並 PR,也可得到相應獎勵積分。文章開頭的 本文永久連接 即爲本文在 GitHub 上的 MarkDown 連接。


掘金翻譯計劃 是一個翻譯優質互聯網技術文章的社區,文章來源爲 掘金 上的英文分享文章。內容覆蓋 AndroidiOS前端後端區塊鏈產品設計人工智能等領域,想要查看更多優質譯文請持續關注 掘金翻譯計劃官方微博知乎專欄

相關文章
相關標籤/搜索