史上最易懂的 Kubernetes 儿童插图指南
獻給所有試圖向孩子們解釋軟件工程的家長。
很久很久以前,有一個叫 Phippy 的應用程序。她是一個簡單的應用程序,由 PHP 編寫且只有一個頁面。她住在一個需要和其他可怕的應用程序分享環境的主機中,她不認識這些應用程序并且不愿意和他們來往。她希望她能擁有一個屬于自己的環境:只有她自己和她可以稱之為家的 Web 服務器。
每個應用程序都有個運行所依賴的環境。對于 PHP 應用程序來說,這個環境可能包括 Web 服務器,一個可讀文件系統和 PHP 引擎本身。
有一天,一只善良的鯨魚出現了。他建議小 Phippy 住在容器里,這樣可能會更快樂。所以應用程序 Phippy 遷移到了容器中。這個容器很棒,但是……它有點像一個漂浮在大海中央的豪華起居室。
容器提供了一個獨立的環境,應用程序可以在這個環境中運行。但是這些孤立的容器常常需要被管理并與外面的世界連接。對于孤立的容器而言,共享文件系統、網絡通信、調度、負載均衡和分發都是要面對的挑戰。
鯨魚聳了聳肩?!皩Σ黄?#xff0c;孩子?!彼f著,消失在海面下。就在 Phippy 甚至開始絕望時,一位駕駛著巨輪的船長出現在海平線上。這艘船由幾十個綁在一起的木筏組成,但從外面來看,它就像一艘巨輪。
“你好呀,這位 PHP 應用程序朋友。我是 Kube 船長?!鳖V堑睦洗L說。
“Kubernetes” 在希臘語中是船長的意思。我們可以從這個單詞中得到?Cybernetic?和?Gubernatorial?這兩個詞組。Kubernetes 項目專注于構建一個健壯的平臺,用于在生產環境中運行數千個容器。
“我是 Phippy?!毙贸绦蛘f。
“很高興認識你?!贝L一邊說,一邊在她身上貼上了一張標有姓名的標簽。
Kubernetes 使用標簽作為“名牌”來標識事物。它可以根據這些標簽進行查詢。標簽是開放性的:你可以用他們來表示角色、穩定性或其他重要的屬性。
船長建議應用程序把她的容器搬到船上的一個船艙中。Phippy 很高興地把她的容器搬到 Kube 船長巨輪的船艙內。Phippy 覺得這里像家一樣。
在 Kubernetes 中,Pod 代表一個可運行的工作單元。通常,你會在 Pod 中運行一個容器。但是對于一些容器緊密耦合的情況,你可以選擇在同一個 Pod 中運行多個容器。Kubernetes 負責將你的 Pod 和網絡以及 Kubernetes 的其余環境相連。
Phippy 有一些不同尋常的興趣,她很喜歡遺傳學和綿羊。所以她問船長:“如果我想克隆我自己,是否可以根據需求克隆任意次數呢?”
“這很容易?!贝L說。船長把 Phippy 介紹給了 Replication Controller。
Replication Controller 提供一種管理任意數量 Pod 的方法。一個 Replication Controller 包含一個 Pod 模板,該模板可以被復制任意次數。通過 Replication Controller,Kubernetes 將管理 Pod 的生命周期,包括伸縮、滾動更新和監控。
無數個日夜,小應用程序在她的船艙中與她的復制品相處十分愉快。但與自己為伍并沒有所說的那么好……即使你擁有 N 個自己的克隆體。
Kube 船長慈祥地笑了笑:“我正好有一樣東西?!?/p>
他剛開口,在 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 船長說,“這是一個命名空間?!?/p>
命名空間是 Kubernetes 內部的分組機制。服務、Pod、Replication Controller 和卷可以在命名空間內部輕松協作,但命名空間提供了與集群其他部分一定程度的隔離。
Phippy 與她的新朋友一起乘坐 Kube 船長的巨輪航行于大海之上。她經歷了許多偉大的冒險,但最重要的是,Phippy 找到了自己的家。
所以 Phippy 從此過上了幸福的生活。
總結
以上是生活随笔為你收集整理的史上最易懂的 Kubernetes 儿童插图指南的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 这一次彻底搞懂 Git Rebase
- 下一篇: 如何设计真正高性能高并发分布式系统(万字