亚洲综合伊人,成人欧美一区二区三区视频不卡,欧美日韩在线高清,日韩国产午夜一区二区三区,大胆美女艺术,一级毛片毛片**毛片毛片,你瞅啥图片

您當(dāng)前的位置是:  首頁 > 新聞 > 文章精選 >
 首頁 > 新聞 > 文章精選 >

寫給 VMware 用戶看的 Kubernetes 掃盲貼

2018-02-07 09:40:54   作者:   來源:CTI論壇   評論:0  點(diǎn)擊:


  容器技術(shù)是最近幾年非常熱門的技術(shù),它似乎就是為云端的應(yīng)用量身定制的,所以它也被貼上了云原生應(yīng)用 (Cloud Native Application) 技術(shù)的標(biāo)簽。目前最為流行的容器管理調(diào)度平臺是 Kubernetes (縮寫為 K8s),是 Google 為支持大批量容器而開發(fā)的企業(yè)級運(yùn)行平臺,可以支持負(fù)載均衡、高可靠等生產(chǎn)級功能。VMware 在 VMworld 2017 上也宣布了跟 Pivotal、Google 合作開發(fā)的 VMware Pivotal Container Service,這是一個商用的 K8s 平臺,簡稱 PKS (中間的 K 代表 Kubernetes)。
  我們專門為 VMware 用戶寫了這篇文章,利用你所熟悉的 vSphere 平臺來跟 K8s 作一個類比,從而幫助你快速了解 K8s。
  Kubernetes 和 vSphere 的總體架構(gòu)對比
  VSPHERE 平臺和 KUBERNETES 的總體對比
  那么到底什么是 Kubernetes 呢? 簡單來說,K8s 和容器的關(guān)系就相當(dāng)于vSphere和虛機(jī)的關(guān)系。在 VMware 發(fā)展早期的時候,那時候只有 VMware Workstation,后來出現(xiàn)了基于vCenter 和ESXi 的VI/vSphere 體系架構(gòu),從而使虛擬化步入了數(shù)據(jù)中心。同樣的,容器一開始的時候只有一個簡單的容器引擎 Docker,K8s 的出現(xiàn)為容器提供了一個生產(chǎn)級的運(yùn)行環(huán)境。把 vSphere 和 K8s 平臺肩并肩放在一起比較的話,你會發(fā)現(xiàn)它們的概念有很多類似之處,這可以幫助我們很快地理解 K8s 技術(shù)的各種細(xì)節(jié)。
  虛擬化技術(shù)和容器技術(shù)演進(jìn)的對比
  系統(tǒng)架構(gòu)
  就像 vSphere 平臺上的 vCenter 和 ESXi 主機(jī), K8s 平臺上也有對應(yīng)的概念:Master 和節(jié)點(diǎn) (node), Master 起到的作用就跟 vCenter 一樣,對整個 K8s 集群進(jìn)行管理,它也是工作負(fù)載管理 API 的訪問入口。跟 ESXi 主機(jī)對應(yīng)的就是K8s節(jié)點(diǎn),節(jié)點(diǎn)是 K8s 集群中的計算資源,容器就是運(yùn)行在節(jié)點(diǎn)上,節(jié)點(diǎn)可以是虛機(jī)或者物理服務(wù)器。K8s 也有一個類似于 vCenter DB 的數(shù)據(jù)庫 “etcd”,它以的“鍵-值”方式存儲了整個集群的配置和狀態(tài)。
  跟 vSphere 不同的是,K8s Master上也能運(yùn)行容器負(fù)載,當(dāng)然 vCenter Server 上是不運(yùn)行虛機(jī)的。雖然 K8s Master 也是一種計算資源,但是一般只在上面運(yùn)行系統(tǒng)管理相關(guān)的容器應(yīng)用,普通的應(yīng)用負(fù)載不應(yīng)該放在 Master 上。
  vSphere 有GUI 管理界面 Web Client 和命令行管理接口 vCLI 和 Power CLI,K8s 也提供了GUI 界面或命令行來管理 K8s 集群。下面截屏是使用命令 “kubectl.exe” 來管理K8s 集群的例子,我們可以看到這個集群有一個 Master (vkubemaster007) 和4個節(jié)點(diǎn) (vkubemode017~18),K8s 的版本是v1.6.5,節(jié)點(diǎn)上的操作系統(tǒng)是Ubuntu 16.04。
  截屏:K8s 的命令行管理界面
  工作負(fù)載
  vSphere 中的工作負(fù)載調(diào)度單位是虛機(jī), K8s 中的調(diào)度單位是 Pod;一臺 ESXi 主機(jī)上可以運(yùn)行多個虛機(jī),一個 K8s 節(jié)點(diǎn)上也可以運(yùn)行多個 Pod,每個 Pod 都有一個獨(dú)立的 IP 地址來跟其他的 Pod 相通訊。在 vSphere 環(huán)境中,應(yīng)用運(yùn)行在虛機(jī)的操作系統(tǒng)中,K8s 平臺上應(yīng)用運(yùn)行在容器里;一個虛機(jī)中只能運(yùn)行一個操作系統(tǒng)實(shí)例,而一個 Pod 中可以運(yùn)行多個容器實(shí)例。K8s 會考慮到 Pod 的關(guān)聯(lián)性而把 Pod 中的容器實(shí)例運(yùn)行在同一個節(jié)點(diǎn)上,從而讓他們共享同一個運(yùn)行環(huán)境;一般是把一個應(yīng)用和它相關(guān)的輔助模塊設(shè)計在同一個 Pod 中,然后作為一個整體來進(jìn)行調(diào)度運(yùn)行。
  系統(tǒng)管理
  我們使用 Web Client 來管理 vSphere 集群,K8s 也有一個圖形化的管理界面Dashboard,同 Web Client 一樣,這也是一個基于 Web 的應(yīng)用。Dashboard 的功能也變得越來越強(qiáng)大,它可以實(shí)現(xiàn)大部分的 K8s 集群管理功能,而不用輸入很長的 kubectl 命令。
  系統(tǒng)配置
  K8s 可以通過一個YAML (Yet Another Markup Language) 文件來定義和描述 K8s 集群的配置和狀態(tài),然后就可以基于該文件創(chuàng)建整個 K8s 集群,K8s 會盡力地保持集群運(yùn)行在指定的狀態(tài)。例如,如果你指定了某一個 Pod 要有4個副本,K8s 就會監(jiān)控所有這些 Pod 的運(yùn)行,如果有任何一個 Pod 工作異常的話,它就會設(shè)法修復(fù)這個狀態(tài),實(shí)在不行的話就另啟一個 Pod 副本。
  要理解 YAML 配置文件的話,你可以把它對應(yīng)為虛機(jī)的 .VMX 文件,或是 Virtual Appliance 的OVF 文件。當(dāng)然,YAML 配置文件在 K8s 中不僅用于定義集群,也用于定義其他的組件,如: 副本集合、服務(wù)、部署等。
  虛擬集群
  vSphere 中為了管理資源的分配專門有一個“資源池 (Resource Pool)”的概念,就像是在物理集群中劃分出了一些小的虛擬集群,vSphere 利用資源池來控制資源的分配。K8s 也有類似的概念叫“namespaces”,namespace 的主要用途是創(chuàng)建多租戶環(huán)境,也可以在上面指定資源配額 (Resource Quota) 。
  資源管理
  vSphere 需要指定每一個 Resource Pool 的資源分配限額,K8s 可以在 namespace 上設(shè)置資源配額 (Resource Quotas) 來控制資源分配,這是在 YAML 配置文件中定義的。
  工作負(fù)載標(biāo)記
  這在 vSphere 和 K8s 中幾乎是完全一致的,vSphere 使用 tag 標(biāo)簽來標(biāo)識虛機(jī),而 K8s 使用標(biāo)簽 (label) 來標(biāo)識容器。所不同的是,K8s 中標(biāo)簽是必須的,而不是可選的。
  計算冗余
  vSphere 中有 Fault Tolerance 技術(shù)來提供計算資源的冗余,受保護(hù)的虛機(jī)運(yùn)行在一臺服務(wù)器上,另一臺服務(wù)器上有一個從被保護(hù)虛機(jī)復(fù)制而來的影子 (Shadow),F(xiàn)T 技術(shù)通過 Lockstep 來同步主虛機(jī)和影子虛機(jī)之間的數(shù)據(jù)和狀態(tài)。正常情況下影子虛機(jī)是不工作的,當(dāng)主服務(wù)器宕機(jī)時,影子虛機(jī)立刻被激活成主虛機(jī),并繼續(xù)主虛機(jī)工作;這時 vSphere 會設(shè)法在集群中找到另一臺合適的服務(wù)器,在上面從新的主虛機(jī)復(fù)制出新的影子虛機(jī),以繼續(xù)對主虛機(jī)進(jìn)行保護(hù)。
  K8s 中也有相應(yīng)的資源冗余機(jī)制,ReplicaSets 用于指定一個 Pod 需要運(yùn)行的實(shí)例數(shù)量,K8s 會自動維持實(shí)例的數(shù)量,任何一個實(shí)例由于故障原因宕掉了,K8s 馬上會自動啟動一個新的實(shí)例補(bǔ)上。當(dāng)然兩者基本的工作原理是不一樣的,K8s 中的所有實(shí)例正常情況都是在工作的,在多個實(shí)例間均衡工作負(fù)載,而不存在主備的概念,這是由云原生應(yīng)用的本質(zhì)所決定的。
  負(fù)載均衡
  vSphere 并不內(nèi)置有負(fù)載均衡功能,一般是通過虛擬的 (如 NSX) 或物理的 (如 F5) 負(fù)載均衡器來把服務(wù)請求平均分配給多臺虛機(jī)。負(fù)載均衡也有多種配置模式,以單肩模式 (one-armed) 為例,我們把網(wǎng)絡(luò)流量東西向地均衡分配給虛機(jī)。
  K8s 中也有類似的概念“Service”,是一組一起協(xié)作的 Pod,每個 Pod 都被定義了一個標(biāo)簽選擇器 (label selector)。K8s Service 也有多種配置模式,例如“ClusterIP“模式,每個 Service 都被分配了一個外部可見的靜態(tài) IP 地址和 DNS 域名以便于被訪問到,負(fù)載流量以輪循 (round-robin) 的方式分配給每一個 Pod。其他的模式如 “NodePort” ,以不同端口訪問節(jié)點(diǎn)的流量會被映射到不同的 Pod;當(dāng)然也可以配成 “LoadBalancer” 模式來使用外部的負(fù)載均衡器。
  K8s 還有另外一種非常重要的負(fù)載均衡機(jī)制 “Ingress Controller”,一個 ingress-controller 以 Pod 的形式存在,并且分配有一個外部可見的 IP 地址,該 IP 地址對應(yīng)著一個含有通配符的 DNS 記錄,ingress-controller 根據(jù)預(yù)先設(shè)定的規(guī)則來把流量分配給不同的 Pod。例如下圖中的 IP 地址 192.168.100.244 對應(yīng) DNS 域名 sphinx-v*.esxcloud.net,訪問sphinx-v1.esxcloud.net 的流量會被重定向給 “sphinx-svc-1”,而訪問sphinx-v2.esxcloud.net 的流量被重定向給 “sphinx-svc2”。
【免責(zé)聲明】本文僅代表作者本人觀點(diǎn),與CTI論壇無關(guān)。CTI論壇對文中陳述、觀點(diǎn)判斷保持中立,不對所包含內(nèi)容的準(zhǔn)確性、可靠性或完整性提供任何明示或暗示的保證。請讀者僅作參考,并請自行承擔(dān)全部責(zé)任。

專題

黄平县| 宜兰县| 新乡县| 惠东县| 莫力| 台中县| 禹城市| 陆河县| 武川县| 东宁县| 封丘县| 尼玛县| 古浪县| 栾城县| 施甸县| 宿松县| 九寨沟县| 麻阳| 独山县| 铁岭县| 永定县| 沿河| 微山县| 依兰县| 曲靖市| 缙云县| 郴州市| 德清县| 嫩江县| 喀喇| 万载县| 马关县| 翁牛特旗| 江源县| 会昌县| 施秉县| 兴化市| 紫金县| 英山县| 清徐县| 博湖县|