自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

不會Docker和K8S,同事被移出公司群聊

云計算 開發(fā)工具
Docker 是容器的代名詞,K8S 是容器編排的代名詞,這倆近幾年在云計算領(lǐng)域非常的火。今天我們通過此文讓你10分鐘看懂 Docker 和 K8S。

 Docker 是容器的代名詞,K8S 是容器編排的代名詞,這倆近幾年在云計算領(lǐng)域非常的火。今天我們通過此文讓你10分鐘看懂 Docker 和 K8S。

[[334547]]

 

圖片來自 Pexels

2010 年,幾個搞 IT 的年輕人,在美國舊金山成立了一家名叫“dotCloud”的公司。

[[334548]]

 

這家公司主要提供基于 PaaS 的云計算技術(shù)服務(wù)。具體來說,是和 LXC 有關(guān)的容器技術(shù)。

[[334549]]

 

LXC,就是Linux容器虛擬技術(shù)(Linux container)

后來,dotCloud 公司將自己的容器技術(shù)進行了簡化和標準化,并命名為——Docker。

 

Docker 技術(shù)誕生之后,并沒有引起行業(yè)的關(guān)注。而 dotCloud 公司,作為一家小型創(chuàng)業(yè)企業(yè),在激烈的競爭之下,也步履維艱。

正當他們快要堅持不下去的時候,腦子里蹦出了“開源”的想法。

什么是“開源”?開源,就是開放源代碼。也就是將原來內(nèi)部保密的程序源代碼開放給所有人,然后讓大家一起參與進來,貢獻代碼和意見。

 

Open Source,開源

有的軟件是一開始就開源的。也有的軟件,是混不下去,創(chuàng)造者又不想放棄,所以選擇開源。自己養(yǎng)不活,就吃“百家飯”嘛。

2013 年 3 月,dotCloud 公司的創(chuàng)始人之一,Docker 之父,28 歲的 Solomon Hykes 正式?jīng)Q定,將 Docker 項目開源。

[[334551]]

 

Solomon Hykes(今年剛從Docker離職)

不開則已,一開驚人。

越來越多的 IT 工程師發(fā)現(xiàn)了 Docker 的優(yōu)點,然后蜂擁而至,加入 Docker 開源社區(qū)。

Docker 的人氣迅速攀升,速度之快,令人瞠目結(jié)舌。

開源當月,Docker 0.1 版本發(fā)布。此后的每一個月,Docker 都會發(fā)布一個版本。到 2014 年 6 月 9 日,Docker 1.0 版本正式發(fā)布。

此時的 Docker,已經(jīng)成為行業(yè)里人氣最火爆的開源技術(shù),沒有之一。甚至像 Google、微軟、Amazon、VMware 這樣的巨頭,都對它青睞有加,表示將全力支持。

Docker 火了之后,dotCloud 公司干脆把公司名字也改成了 Docker Inc. 。

Docker 和容器技術(shù)為什么會這么火爆?說白了,就是因為它“輕”。

在容器技術(shù)之前,業(yè)界的網(wǎng)紅是虛擬機。虛擬機技術(shù)的代表,是 VMWare 和 OpenStack。

[[334552]]

 

相信很多人都用過虛擬機。虛擬機,就是在你的操作系統(tǒng)里面,裝一個軟件,然后通過這個軟件,再模擬一臺甚至多臺“子電腦”出來。

 

虛擬機,類似于“子電腦”

在“子電腦”里,你可以和正常電腦一樣運行程序,例如開 QQ。如果你愿意,你可以變出好幾個“子電腦”,里面都開上 QQ。“子電腦”和“子電腦”之間,是相互隔離的,互不影響。

虛擬機屬于虛擬化技術(shù)。而 Docker 這樣的容器技術(shù),也是虛擬化技術(shù),屬于輕量級的虛擬化。

虛擬機雖然可以隔離出很多“子電腦”,但占用空間更大,啟動更慢,虛擬機軟件可能還要花錢(例如 VMWare)。

而容器技術(shù)恰好沒有這些缺點。它不需要虛擬出整個操作系統(tǒng),只需要虛擬一個小規(guī)模的環(huán)境(類似“沙箱”)。

[[334554]]

 

沙箱

它啟動時間很快,幾秒鐘就能完成。而且,它對資源的利用率很高(一臺主機可以同時運行幾千個 Docker 容器)。

此外,它占的空間很小,虛擬機一般要幾 GB 到幾十 GB 的空間,而容器只需要 MB 級甚至 KB 級。

 

容器和虛擬機的對比

正因為如此,容器技術(shù)受到了熱烈的歡迎和追捧,發(fā)展迅速。

我們具體來看看 Docker。

大家需要注意,Docker 本身并不是容器,它是創(chuàng)建容器的工具,是應(yīng)用容器引擎。

想要搞懂 Docker,其實看它的兩句口號就行。

第一句,是“Build, Ship and Run”。

 

也就是,“搭建、發(fā)送、運行”,三板斧。

舉個例子:我來到一片空地,想建個房子,于是我搬石頭、砍木頭、畫圖紙,一頓操作,終于把這個房子蓋好了。

 

結(jié)果,我住了一段時間,想搬到另一片空地去。這時候,按以往的辦法,我只能再次搬石頭、砍木頭、畫圖紙、蓋房子。

但是,跑來一個老巫婆,教會我一種魔法。

這種魔法,可以把我蓋好的房子復(fù)制一份,做成“鏡像”,放在我的背包里。

 

等我到了另一片空地,就用這個“鏡像”,復(fù)制一套房子,擺在那邊,拎包入住。

 

怎么樣?是不是很神奇?

所以,Docker 的第二句口號就是:“Build once,Run anywhere(搭建一次,到處能用)”。

Docker 技術(shù)的三大核心概念,分別是:

  • 鏡像(Image)
  • 容器(Container)
  • 倉庫(Repository)

我剛才例子里面,那個放在包里的“鏡像”,就是 Docker 鏡像。而我的背包,就是 Docker 倉庫。我在空地上,用魔法造好的房子,就是一個 Docker 容器。

說白了,這個 Docker 鏡像,是一個特殊的文件系統(tǒng)。它除了提供容器運行時所需的程序、庫、資源、配置等文件外,還包含了一些為運行時準備的一些配置參數(shù)(例如環(huán)境變量)。

鏡像不包含任何動態(tài)數(shù)據(jù),其內(nèi)容在構(gòu)建之后也不會被改變。

也就是說,每次變出房子,房子是一樣的,但生活用品之類的,都是不管的。誰住誰負責添置。

每一個鏡像可以變出一種房子。那么,我可以有多個鏡像呀!

也就是說,我蓋了一個歐式別墅,生成了鏡像。另一個哥們可能蓋了一個中國四合院,也生成了鏡像。還有哥們,蓋了一個非洲茅草屋,也生成了鏡像。。。

這么一來,我們可以交換鏡像,你用我的,我用你的,豈不是很爽?

 

于是乎,就變成了一個大的公共倉庫。

負責對 Docker 鏡像進行管理的,是 Docker Registry 服務(wù)(類似倉庫管理員)。

不是任何人建的任何鏡像都是合法的。萬一有人蓋了一個有問題的房子呢?

所以,Docker Registry 服務(wù)對鏡像的管理是非常嚴格的。

最常使用的 Registry 公開服務(wù),是官方的 Docker Hub,這也是默認的 Registry,并擁有大量的高質(zhì)量的官方鏡像。

好了,說完了 Docker,我們再把目光轉(zhuǎn)向 K8S。

就在 Docker 容器技術(shù)被炒得熱火朝天之時,大家發(fā)現(xiàn),如果想要將 Docker 應(yīng)用于具體的業(yè)務(wù)實現(xiàn),是存在困難的——編排、管理和調(diào)度等各個方面,都不容易。

于是,人們迫切需要一套管理系統(tǒng),對 Docker 及容器進行更高級更靈活的管理。

就在這個時候,K8S 出現(xiàn)了。

K8S,就是基于容器的集群管理平臺,它的全稱,是 kubernetes。

 

Kubernetes 這個單詞來自于希臘語,含義是舵手或領(lǐng)航員。K8S 是它的縮寫,用“8”字替代了“ubernete”這 8 個字符。

和 Docker 不同,K8S 的創(chuàng)造者,是眾人皆知的行業(yè)巨頭——Google。

然而,K8S 并不是一件全新的發(fā)明。它的前身,是 Google 自己搗鼓了十多年的 Borg 系統(tǒng)。

K8S 是 2014 年 6 月由 Google 公司正式公布出來并宣布開源的。

同年 7 月,微軟、Red Hat、IBM、Docker、CoreOS、 Mesosphere 和 Saltstack 等公司,相繼加入 K8S。

之后的一年內(nèi),VMware、HP、Intel 等公司,也陸續(xù)加入。

2015 年 7 月,Google 正式加入 OpenStack 基金會。與此同時,Kuberentes v1.0 正式發(fā)布。

目前,kubernetes 的版本已經(jīng)發(fā)展到 V1.13。

K8S 的架構(gòu),略微有一點復(fù)雜,我們簡單來看一下。

一個 K8S 系統(tǒng),通常稱為一個 K8S 集群(Cluster)。

這個集群主要包括兩個部分:

  • 一個 Master 節(jié)點(主節(jié)點)
  • 一群 Node 節(jié)點(計算節(jié)點)

 

一看就明白:Master 節(jié)點主要還是負責管理和控制。Node 節(jié)點是工作負載節(jié)點,里面是具體的容器。

深入來看這兩種節(jié)點。

首先是 Master 節(jié)點。

 

Master 節(jié)點包括 API Server、Scheduler、Controller manager、etcd。

API Server 是整個系統(tǒng)的對外接口,供客戶端和其它組件調(diào)用,相當于“營業(yè)廳”。

Scheduler 負責對集群內(nèi)部的資源進行調(diào)度,相當于“調(diào)度室”。

Controller manager 負責管理控制器,相當于“大總管”。

然后是 Node 節(jié)點。

 

Node 節(jié)點包括 Docker、kubelet、kube-proxy、Fluentd、kube-dns(可選),還有就是 Pod。

Pod 是 Kubernetes 最基本的操作單元。一個 Pod 代表著集群中運行的一個進程,它內(nèi)部封裝了一個或多個緊密相關(guān)的容器。

除了 Pod 之外,K8S 還有一個 Service 的概念,一個 Service 可以看作一組提供相同服務(wù)的 Pod 的對外訪問接口。這段不太好理解,跳過吧。

Docker,不用說了,創(chuàng)建容器的。

Kubelet,主要負責監(jiān)視指派到它所在 Node 上的 Pod,包括創(chuàng)建、修改、監(jiān)控、刪除等。

Kube-proxy,主要負責為 Pod 對象提供代理。

Fluentd,主要負責日志收集、存儲與查詢。

是不是有點懵?唉,三言兩語真的很難講清楚,繼續(xù)跳過吧。

Docker 和 K8S 都介紹完了,然而文章并沒有結(jié)束。

接下來的部分,是寫給核心網(wǎng)工程師甚至所有通信工程師看的。

從幾十年前的 1G,到現(xiàn)在的 4G,再到將來的 5G,移動通信發(fā)生了翻天覆地的變化,核心網(wǎng)亦是如此。

但是,如果你仔細洞察這些變化,會發(fā)現(xiàn),所謂的核心網(wǎng),其實本質(zhì)上并沒有發(fā)生改變,無非就是很多的服務(wù)器而已。不同的核心網(wǎng)網(wǎng)元,就是不同的服務(wù)器,不同的計算節(jié)點。

變化的,是這些“服務(wù)器”的形態(tài)和接口:形態(tài),從機柜單板,變成機柜刀片,從機柜刀片,變成 X86 通用刀片服務(wù)器;接口,從中繼線纜,變成網(wǎng)線,從網(wǎng)線,變成光纖。

就算變來變?nèi)?,還是服務(wù)器,是計算節(jié)點,是 CPU。

既然是服務(wù)器,那么就勢必會和 IT 云計算一樣,走上虛擬化的道路。畢竟,虛擬化有太多的優(yōu)勢,例如前文所說的低成本、高利用率、充分靈活、動態(tài)調(diào)度,等等。

前幾年,大家以為虛擬機是核心網(wǎng)的終極形態(tài)。目前看來,更有可能是容器化。這幾年經(jīng)常說的 NFV(網(wǎng)元功能虛擬化),也有可能改口為 NFC(網(wǎng)元功能容器化)。

以 VoLTE 為例,如果按以前 2G/3G 的方式,那需要大量的專用設(shè)備,分別充當 EPC 和 IMS 的不同網(wǎng)元。

 

VoLTE 相關(guān)的網(wǎng)元

而采用容器之后,很可能只需要一臺服務(wù)器,創(chuàng)建十幾個容器,用不同的容器,來分別運行不同網(wǎng)元的服務(wù)程序。

 

這些容器,隨時可以創(chuàng)建,也可以隨時銷毀。還能夠在不停機的情況下,隨意變大,隨意變小,隨意變強,隨意變?nèi)?,在性能和功耗之間動態(tài)平衡。

簡直完美!

5G 時代,核心網(wǎng)采用微服務(wù)架構(gòu),也是和容器完美搭配——單體式架構(gòu)(Monolithic)變成微服務(wù)架構(gòu)(Microservices),相當于一個全能型變成 N 個專能型。

每個專能型,分配給一個隔離的容器,賦予了最大程度的靈活。

 

精細化分工

按照這樣的發(fā)展趨勢,在移動通信系統(tǒng)中,除了天線,剩下的部分都有可能虛擬化。核心網(wǎng)是第一個,但不是最后一個。

虛擬化之后的核心網(wǎng),與其說屬于通信,實際上更應(yīng)該歸為 IT。核心網(wǎng)的功能,只是容器中普通一個軟件功能而已。

至于說在座的各位核心網(wǎng)工程師,恭喜你們,馬上就要成功轉(zhuǎn)型啦!

[[334564]]

作者:小棗君

編輯:陶家龍

 

出處:轉(zhuǎn)載自微信公眾號鮮棗課堂(ID:xzclasscom)

責任編輯:武曉燕 來源: 51CTO技術(shù)棧
相關(guān)推薦

2021-01-27 09:04:34

Redis集群數(shù)據(jù)

2021-02-05 08:10:28

Redis集群數(shù)據(jù)

2022-04-22 13:32:01

K8s容器引擎架構(gòu)

2023-11-06 07:16:22

WasmK8s模塊

2021-07-14 14:20:22

root命令Linux

2020-11-10 07:05:41

DockerK8S云計算

2023-07-04 07:30:03

容器Pod組件

2024-04-02 08:02:11

Dockerk8s容器

2024-11-27 16:37:57

2020-07-30 09:10:21

DockerK8s容器

2023-09-06 08:12:04

k8s云原生

2024-09-26 09:50:07

2020-05-12 10:20:39

K8s kubernetes中間件

2022-09-05 08:26:29

Kubernetes標簽

2017-11-21 10:11:19

陌陌K8sDocker

2024-10-06 12:40:26

2020-09-01 10:40:11

K8SDocker開源

2022-02-07 08:42:28

k8sdocker命令

2024-09-26 18:04:02

2024-04-19 14:44:43

模型K8s人工智能
點贊
收藏

51CTO技術(shù)棧公眾號