插画版 Kubernetes 指南
生活随笔
收集整理的這篇文章主要介紹了
插画版 Kubernetes 指南
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
編者按:Matt Butcher 是 Deis 的平臺(tái)架構(gòu)師,熱愛哲學(xué),咖啡和精雕細(xì)琢的代碼。有一天女兒走進(jìn)書房問他什么是 Kubernetes,于是就有了這本插畫版的 Kubernetes 指南,講述了勇敢的 Phippy(一個(gè) PHP 應(yīng)用),在 Kubernetes 的冒險(xiǎn)故事,滿滿的父愛有木有!
某一天
有一天,女兒走進(jìn)書房問我:『親愛的爸爸,什么是 Kubernetes 呢?』我回答她:『Kubernetes 是一個(gè)開源的 Docker 容器編排系統(tǒng),它可以調(diào)度計(jì)算集群的節(jié)點(diǎn),動(dòng)態(tài)管理上面的作業(yè),保證它們按用戶期望的狀態(tài)運(yùn)行。通過使用「labels」和「pods」的概念,Kubernetes 將應(yīng)用按邏輯單元進(jìn)行分組,方便管理和服務(wù)發(fā)現(xiàn)?!慌畠焊苫罅恕谑蔷陀辛诉@個(gè)故事。給孩子的插畫版 Kubernetes 指南
????
很久很久以前,有一個(gè)叫 Phippy 的 PHP 應(yīng)用,她很單純,只有一個(gè)頁面。她住在一個(gè)托管服務(wù)里,周圍還有很多可怕的應(yīng)用,她都不認(rèn)識(shí),也不想去認(rèn)識(shí),但是他們卻要共享這里的環(huán)境。所以,她一直都希能有一個(gè)屬于自己的環(huán)境:一個(gè)可以稱作 home 的 webserver。每個(gè)應(yīng)用的運(yùn)行都要依賴一個(gè)環(huán)境,對(duì)于一個(gè) PHP 應(yīng)用來說,這個(gè)環(huán)境包括了一個(gè) webserver,一個(gè)可讀的文件系統(tǒng)和 PHP 的 engine。有一天,一只可愛的鯨魚拜訪了 Phippy,他建議 Phippy 住在容器里。Phippy 聽從了鯨魚的建議搬家了,雖然這個(gè)容器看起來很好,但是……怎么說呢,就像是漂浮在海上的一個(gè)小房間一樣,還是沒有家的感覺。
不過容器倒是為應(yīng)用提供了隔離的環(huán)境,在這個(gè)環(huán)境里應(yīng)用就能運(yùn)行起來。但是這些相互隔離的容器需要管理,也需要跟外面的世界溝通。共享的文件系統(tǒng),網(wǎng)絡(luò),調(diào)度,負(fù)載均衡和資源分配都是挑戰(zhàn)。
『抱歉……孩子……』鯨魚聳聳肩,一搖尾消失在了海平面下…… Phippy 還沒有來得及失望,就看到遠(yuǎn)方駛來一艘巨輪,掌舵的老船長非常威風(fēng)。這艘船乍一看就是大了點(diǎn),等到船走近了,Phippy 才發(fā)現(xiàn)船體兩邊掛滿了皮筏。老船長用充滿智慧的語氣對(duì) Phippy 說:『你好,我是 Kube 船長』。
『Kubernetes』是希臘語中的船長,后來的『Cybernetic』和『Gubernatorial』這兩個(gè)詞就是從 Kubernetes 衍生來的。Kubernetes 項(xiàng)目由 Google 發(fā)起,旨在為生產(chǎn)環(huán)境中成千上萬的容器,構(gòu)建一個(gè)健壯的平臺(tái)。
『您好,我是 Phippy。』『很高興認(rèn)識(shí)你?!淮L邊說,邊在 Phippy 身上放了一個(gè) name tag。
Kubernetes 使用 label 作為『nametag』來區(qū)分事物,還可以根據(jù) label 來查詢。label 是開放式的:可以根據(jù)角色,穩(wěn)定性或其它重要的特性來指定。
Kube 船長建議 Phippy 可以把她的容器搬到船上的 pod 里,Phippy 很高興地接受了這個(gè)提議,把容器搬到了 Kube 的大船上。Phippy 感覺自己終于有家了。
在 Kubernetes 中,pod 代表著一個(gè)運(yùn)行著的工作單元。通常,每個(gè) pod 中只有一個(gè)容器,但有些情況下,如果幾個(gè)容器是緊耦合的,這幾個(gè)容器就會(huì)運(yùn)行在同一個(gè) pod 中。Kubernetes 承擔(dān)了 pod 與外界環(huán)境通信的工作。
Phippy 對(duì)這一切都感到很新奇,同時(shí)她也有很多與眾不同的關(guān)注點(diǎn):『如果我想要復(fù)制自己該怎么做呢?按需的……任意次數(shù)的可以嗎?』『很簡單。』船長說道,接著就給 Phippy 介紹起了 replication controller。
????
Replication controller 提供了一種管理任意數(shù)量 pod 的方式。一個(gè) replication controller 包含了一個(gè) pod 模板,這個(gè)模板可以被不限次數(shù)地復(fù)制。通過 replication controller,Kubernetes 可以管理 pod 的生命周期,包括擴(kuò)/縮容,滾動(dòng)部署和監(jiān)控等功能。Phippy 就這樣在船上和自己的副本愉快地生活了好多天。但是每天只能面對(duì)自己的副本,這樣的生活也太孤單了。Kube 船長慷慨地笑道:『我有好東西給你。』說著,Kube 船長就在 Phippy 的 replication controller 和船上其它地方之間建了一個(gè)隧道:『就算你們四處移動(dòng),這個(gè)隧道也會(huì)一直待在這里,它可以幫你找到其它 pod,其它 pod 也可以找到你。』
service 可以和 Kubernetes 環(huán)境中其它部分(包括其它 pod 和 replication controller)進(jìn)行通信,告訴它們你的應(yīng)用提供什么服務(wù)。Pod 可以四處移動(dòng),但是 service 的 IP 地址和端口號(hào)是不變的。而且其它應(yīng)用可以通過 Kubernetes 的服務(wù)發(fā)現(xiàn)找到你的 service。
有了 service,Phippy 終于敢去船上其它地方去玩了,她很快就有了新朋友 Goldie。有一天,Goldie 送了 Phippy 一件禮物,沒想到 Phippy 只看了一眼就哭了?!耗阍趺纯蘖?#xff1f;』Goldie 問道。『我太喜歡這個(gè)禮物了,可惜沒地兒放……』Phippy 都開始抽泣了。Goldie 一聽原來是這么回事,馬上就告訴 Phippy:『為什么不放在一個(gè) volume 里呢?』
Volume 代表了一塊容器可以訪問和存儲(chǔ)信息的空間,對(duì)于應(yīng)用來說,volume 是一個(gè)本地的文件系統(tǒng)。實(shí)際上,除了本地存儲(chǔ),Ceph、Gluster、Elastic Block Storage 和很多其它后端存儲(chǔ)都可以作為 volume。
Phippy 漸漸地愛上了船上的生活,她很享受和新朋友的相處(Goldie 的每個(gè) pod 副本也都很 nice)。但是回想起以前的生活,她又在想是不是可以有一點(diǎn)點(diǎn)私人空間呢?Kube 船長很理解:『看起來你需要 namespace?!?p>
Namespace 是 Kubernetes 內(nèi)的分組機(jī)制。Service,pod,replication controller 和 volume 可以很容易地和 namespace 配合工作,但是 namespace 為集群中的組件間提供了一定程度的隔離。于是,在 Kube 船長的船上,Phippy 和她的朋友們開始了海上的歷險(xiǎn),最重要的是,Phippy 找到了自己的家。從此,Phippy 過上了幸福的生活。
推薦閱讀
喜歡就點(diǎn)個(gè)"在看"唄
總結(jié)
以上是生活随笔為你收集整理的插画版 Kubernetes 指南的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: RK3399 Android7.1 RT
- 下一篇: 版本控制报告