[譯] Kubernetes 兒童插圖指南

原文連接:後端

https://juejin.im/post/5d1b2a656fb9a07edc0b7058服務器


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



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



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



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



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



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

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



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



「我是 Phippy。」小應用程序說。

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



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 今後過上了幸福的生活。



推薦閱讀



—————END—————



識別圖片二維碼,關注「無敵碼農」獲取精彩內容

本文分享自微信公衆號 - 無敵碼農(jiangqiaodege)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索