Google和Nutanix的混合云布局
目前主要的公有云廠商都已經(jīng)布局了混合云戰(zhàn)略,混合云戰(zhàn)略是一種是實(shí)實(shí)在在的客戶需求,是在Gartner發(fā)布了關(guān)于雙態(tài)IT之后的一個(gè)比較熱的話題?;旌显萍矗核接性?公有云的布局。私有云跑穩(wěn)態(tài)的Type1的傳統(tǒng)應(yīng)用,公有云跑敏態(tài)的Type2的互聯(lián)網(wǎng)應(yīng)用。
大多數(shù)企業(yè),并不是所有企業(yè)都需要一個(gè)混合云的布局,當(dāng)然某些特定的需求下,一種云也就足夠了,而且混合云的布局也并不是必然的結(jié)果。只是目前階段大多數(shù)傳統(tǒng)企業(yè)要面臨的問(wèn)題。這里不在重復(fù)描述敏態(tài)應(yīng)用為何需要使用公有云。
我們先分享一下其它廠商的混合云戰(zhàn)略是什么,現(xiàn)在來(lái)說(shuō)谷歌的混合云布局。
AWS+VMWAre的混合云
AWS的混合云并不高調(diào),由于它是市場(chǎng)的老大,它的目標(biāo)是所有人都All in的上它的公有云,這個(gè)往往是不現(xiàn)實(shí)而艱巨的,因此混合云是一種從公有云向私有云侵蝕的做法。這里合作的最主要的私有云廠商對(duì)象是VMWare,這兩個(gè)廠商最近一兩年來(lái)的各種大會(huì)上都已經(jīng)頻繁的發(fā)布了這種合作關(guān)系。在技術(shù)實(shí)現(xiàn)上主要是以把VMWare的虛擬機(jī)遷移的AWS公有云里去的做法。詳細(xì)講AWS發(fā)布了一些虛擬機(jī)轉(zhuǎn)換的服務(wù)和工具,方便目前大量的VMWare虛擬機(jī)和模板遷移到AWS的公有云里。具體做法見(jiàn):
Azure + Azure Stack的混合云
這種方式是純粹微軟的方案,微軟開(kāi)發(fā)并推出了Azure Stack私有云平臺(tái)是他們向私有云數(shù)據(jù)中心IaaS發(fā)展的一個(gè)工具。當(dāng)然如果一個(gè)企業(yè)已經(jīng)使用的是微軟的虛擬化技術(shù)的話,所有hyper-v的虛擬機(jī)遷移到Azure應(yīng)該是很平滑的,由于和公有云Azure里的虛擬機(jī)格式都一樣的,連類似于VMWare到AWS EC2的虛擬機(jī)的格式轉(zhuǎn)換都不需要做。除了Hyper-v虛擬機(jī)的平滑上Azure的公有云之外。Azure Stack可以說(shuō)是類似于OpenStack, CloudStack的一種在私有云里擴(kuò)張的技術(shù),它是提高微軟在私有云里的控制力和影響力的一種方式。Azure Stack和Azure公有云的互動(dòng)也是基于虛擬機(jī)的,用Docker方式的混合云另說(shuō)。
Red Hat的混合云
由于我曾經(jīng)在紅帽工作過(guò),所以這個(gè)方案更了解。對(duì)于紅帽來(lái)說(shuō),他更多的生意和關(guān)注力還是在私有云上,這是他從操作系統(tǒng),到IaaS,到PaaS,到XPaaS等等技術(shù)堆棧的主要戰(zhàn)場(chǎng)。由于客戶的workload的分布已經(jīng)到達(dá)了云端,在云端不光大家會(huì)使用Red Hat Enterprise Linux的鏡像開(kāi)啟虛擬機(jī),而且對(duì)所有虛擬機(jī)的統(tǒng)一管理也是一個(gè)實(shí)實(shí)在在的管理需求。也就是說(shuō)紅帽的混合云更多的是混合云管理的概念?;旌显乒芾淼漠a(chǎn)品主要是通過(guò)CloudForms,這個(gè)產(chǎn)品的開(kāi)源社區(qū)項(xiàng)目是http://www.manageiq.org/,這個(gè)產(chǎn)品最初是管理異構(gòu)的虛擬機(jī)資源池,也就是統(tǒng)一管理各種服務(wù)器虛擬化的群集(exsi、ovirt)和OpenStack,后來(lái)有增加了對(duì)公有云的支持AWS,Azure等,在紅帽發(fā)布了Docker技術(shù)的新版本OpenShift之后,CloudForms產(chǎn)品也加入了對(duì)OpenShift的支持。CloudForms更多是一個(gè)云管理平臺(tái)的概念,試圖為用戶提供一個(gè)一站式的、支持異構(gòu)資源池的,統(tǒng)一的管理平面,來(lái)管理客戶混合云里的各種工作負(fù)載。
Google和Nutanix的混合云
這兩家公司在2017年中宣布了合作伙伴關(guān)系。從Google的角度看,這個(gè)合作伙伴關(guān)系有益于:1)在私有云的基礎(chǔ)架構(gòu)端找到幫手和替身。Nutanix在全球范圍內(nèi)積累的幾千家既有客戶自然的就加深了谷歌的聯(lián)系。成為了GCP潛在的用戶。簡(jiǎn)單說(shuō)有利于它的公有云業(yè)務(wù);2)提高已有數(shù)據(jù)中心的利用率和價(jià)值,通過(guò)Nutanix的Xi服務(wù)兌現(xiàn),這個(gè)技術(shù)稍后簡(jiǎn)單描述。
以下部分內(nèi)容截取于:https://cloudplatform.googleblog.com/2017/07/going-Hybrid-with-Kubernetes-on-Google-Cloud-Platform-and-Nutanix.html
1. 混合云的優(yōu)勢(shì)
企業(yè)用戶用混合云可以達(dá)到的一下優(yōu)勢(shì):
- 速遞提升 Increase the speed at which they’re releasing products and features
- 擴(kuò)展能力 Scale applications to meet customer demand
- 應(yīng)用的移動(dòng)性 Move applications to the public cloud at their own pace
- 減少運(yùn)維基礎(chǔ)架構(gòu)的運(yùn)維時(shí)間成本 Reduce time spent on infrastructure and increase time spent on writing code
- 降低由于資源利用率不足導(dǎo)致的金錢(qián)成本 Reduce cost by improving resource utilization and compute efficiency。
2. 混合云架構(gòu)方式
這種混合云也是兩個(gè)不同廠商的之間的合作,類似于AWS和VMWare的合作,下面簡(jiǎn)單描述技術(shù)層面的融合方式。
- 私有云 On-premise: Nutanix infrastructure 私有云使用Nutnaix的基礎(chǔ)架構(gòu),Nutanix的虛擬機(jī)是可以有多種虛擬化類型支持的,包括KVM、EXSi、XenServer、Hyper-v。這些類型的虛擬機(jī)上跑客戶穩(wěn)態(tài)的應(yīng)用的虛擬機(jī)。這里并不是虛擬機(jī)的遷移和轉(zhuǎn)換,詳見(jiàn)第三條。
- 公有云 Public cloud: Google Cloud Platform (GCP) 公有云使用谷歌的GCP公有云平臺(tái),在這里跑敏態(tài)的應(yīng)用
- 容器混合技術(shù) Open source: Kubernetes and Containers 混合的亮點(diǎn)是容器技術(shù),而容器的亮點(diǎn)是K8s管理平面,也就是說(shuō)既然公有云和私有云兩邊的虛擬機(jī)本來(lái)就有差異性,那就在往上走一層,走到容器這一層,這樣整個(gè)世界都相同了,都統(tǒng)一到容器的標(biāo)準(zhǔn)交付格式上了,例如Docker鏡像;只要Docker鏡像是一樣的,在任何云的Linux OS上都可以運(yùn)行了,這里潛臺(tái)詞是,同一個(gè)業(yè)務(wù)應(yīng)用的Docker容器鏡像,一部分跑在Nutanix私有里,一部分跑在GCP里,而兩邊只要使用相同版本的Docker鏡像,那么他們的業(yè)務(wù)應(yīng)用的版本和配置是完全一樣的。
這個(gè)混合技術(shù)只是雙方合作的第一步,在這里Nutanix為已有和未來(lái)用戶的私有云布局指明了方向,谷歌的GCP作為全球公有云市場(chǎng)的老三,他也借此增加了影響力。當(dāng)然K8s也使這個(gè)組合更加的完善,而且很更好的迎合了所有追捧K8s技術(shù)的群體。
GCP+Nutanix+K8s混合云的工作方式
下面是來(lái)自谷歌網(wǎng)站的描述:
- Provision an on premise 4-node Kubernetes cluster using a Nutanix Calm blueprint
- Provision a Google Compute Engine 4-node Kubernetes cluster using the same Nutanix Calm Kubernetes blueprint, configured for Google Cloud
- Use Kubectl to manage both on premise and Google Cloud Kubernetes clusters
- Using Helm, we’ll deploy the same Wordpress chart on both on premise and Google Cloud Kubernetes clusters
以下用小標(biāo)題詳細(xì)描述一下。
1. 在Nutnaix群集里部署K8s群集
第一步當(dāng)然還是先要有Nutanix的基礎(chǔ)設(shè)施了,你可能有三個(gè)物理節(jié)點(diǎn)以上的Nutnaix群集運(yùn)行在你的數(shù)據(jù)中心里,這個(gè)群集是你私有的IaaS層,以運(yùn)行任何一種你需要的虛擬化技術(shù)。以這個(gè)IaaS的資源池為基礎(chǔ),使用Nutanix提供的Nutanix Calm應(yīng)用自動(dòng)化部署/編排工具部署4節(jié)點(diǎn)的K8s群集(一個(gè)Master+4個(gè)Worker),也就是說(shuō)從無(wú)到有的創(chuàng)建4個(gè)空白的虛擬機(jī),然后在上面自動(dòng)化的一鍵式部署K8s軟件群集。也就是在Nutnaix的管理界面里,用Nutanix Calm這個(gè)功能,一鍵式的安裝了k8s群集,安裝過(guò)程很快地在幾十分鐘左右完成。工作原理如下圖所示。
Nutanix Calm為用戶提供了一個(gè)應(yīng)用商店,方便用戶一鍵式的在IaaS資源池里啟動(dòng)任何業(yè)務(wù)應(yīng)用,包括k8s,Nutanix Calm應(yīng)用商店里的每一個(gè)軟件應(yīng)用都對(duì)應(yīng)的一個(gè)藍(lán)圖(blueprint),舉例說(shuō)k8s的藍(lán)圖是一份k8s一鍵式部署的代碼文檔,里面詳細(xì)說(shuō)明了虛擬機(jī)的規(guī)格,軟件安裝部署的細(xì)節(jié)和k8s服務(wù)啟動(dòng)和管理的命令。Nutanix Calm的藍(lán)圖類似于AWS CloudFormation的技術(shù),是一種IaC的基礎(chǔ)設(shè)計(jì)即代碼的方式。Nutanix應(yīng)用商店如下所示。
點(diǎn)擊了上面的k8s圖標(biāo)之后,很快就可以完成k8s群集的搭建了,搭建成功之后,如下圖所示。
這個(gè)Nutnaix Calm的k8s和AWS CloudFormation的不同之處在于,它支持混合云管理,它要部署的4節(jié)點(diǎn)群集,可以選擇公有云的資源池,如AWS,GCP和Azure。甚至于對(duì)于一個(gè)業(yè)務(wù)服務(wù)來(lái)說(shuō),它可以把一個(gè)子服務(wù)一部分部署在私有云,一部分部署在公有云;或者把一個(gè)業(yè)務(wù)服務(wù)里的子服務(wù)A部署在私有云,子服務(wù)B部署在GCP共有云中,并且實(shí)現(xiàn)統(tǒng)一管理。
通過(guò)這個(gè)藍(lán)圖部署的k8s群集實(shí)現(xiàn)了Nutanix k8s卷插件的部署和配置,也就是說(shuō)這個(gè)部署在Nutanix虛擬化平臺(tái)上的容器群集實(shí)現(xiàn)了持久化存儲(chǔ)的配置,也就說(shuō)k8s里的應(yīng)用如果需要持久化存儲(chǔ)的話,就可以用現(xiàn)成的里,這樣也讓容器享受到了Nutanix存儲(chǔ)的福利。
2. 用Nutanix Calm Kubernetes藍(lán)圖在GCE上部署k8s群集
要實(shí)現(xiàn)更加一致的混合云體驗(yàn),我們需要在公有云這一側(cè)也部署相同的容器編排管理框架,也就是在GCP的GCE虛擬機(jī)上部署一套k8s群集。
簡(jiǎn)單說(shuō)還是在Nutanix的Nutanix Calm界面里,再次選擇Kubernetes藍(lán)圖,點(diǎn)擊部署,這次選擇的部署目標(biāo)是GCP公有云平臺(tái)。同樣的也會(huì)在GCP里面啟動(dòng)四個(gè)節(jié)點(diǎn)的k8s群集。啟動(dòng)之后的效果如下
3. 用Kubectl管理兩個(gè)群集
Kubectl是一個(gè)k8s的群集管理客戶端程序,可以運(yùn)行在任何一個(gè)和群集有網(wǎng)絡(luò)連接的地方,也可以在群集所在的虛擬機(jī)上使用,如在群集的mater節(jié)點(diǎn)上使用。當(dāng)然也可以配置在管理員的筆記本電腦上。k8s的聯(lián)邦管理功能,我還沒(méi)有測(cè)試過(guò),應(yīng)該對(duì)這個(gè)混合場(chǎng)景也會(huì)有幫助。
Kubectl的管理方法和細(xì)節(jié)這里做描述。
4. 用Helm在兩邊部署WordPress應(yīng)用
Helm是一個(gè)k8s群集上的應(yīng)用管理器,它測(cè)試和打包了很多應(yīng)用,用于一鍵式的在k8s群集里部署應(yīng)用。當(dāng)然你也可以用自己的定義文件,用kubectl部署。Helm也不是完美的工具,只是它被用到了這個(gè)例子中??梢詫?shí)現(xiàn)的部署效果如下。Helm這個(gè)工具的部署和安裝也可以打包在Nutanix Calm 的k8s藍(lán)圖里。
用helm部署WordPress。
- # Deploy wordpress
- $ helm install wordpress-0.6.4.tgz
- NAME: quaffing-crab
- LAST DEPLOYED: Sun Jul 2 03:32:21 2017
- NAMESPACE: default
- STATUS: DEPLOYED
- RESOURCES:
- ==> v1/Secret
- NAME TYPE DATA AGE
- quaffing-crab-mariadb Opaque 2 1s
- quaffing-crab-wordpress Opaque 3 1s
- ==> v1/ConfigMap
- NAME DATA AGE
- quaffing-crab-mariadb 1 1s
- ==> v1/PersistentVolumeClaim
- NAME STATUS VOLUME CAPACITY ACCESSMODES STORAGECLASS AGE
- quaffing-crab-wordpress Pending silver 1s
- quaffing-crab-mariadb Pending silver 1s
- ==> v1/Service
- NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
- quaffing-crab-mariadb 10.21.150.254 3306/TCP 1s
- quaffing-crab-wordpress 10.21.150.73 80:32376/TCP,443:30998/TCP 1s
- ==> v1beta1/Deployment
- NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
- quaffing-crab-wordpress 1 1 1 0 1s
- quaffing-crab-mariadb
運(yùn)行kubectl命令查看部署結(jié)果。
- # Take a look at the persistent volume claims
- $ kubectl get pvc
- NAME STATUS VOLUME CAPACITY ACCESSMODES AGE
- quaffing-crab-mariadb Bound 94d90daca29eaafa7439b33cc26187536e2fcdfc20d78deddda6606db506a646-nutanix-k8-volume 8Gi RWO 1m
- quaffing-crab-wordpress Bound 764e5462d809a82165863af8423a3e0a52b546dd97211dfdec5e24b1e448b63c-nutanix-k8-volume 10Gi RWO 1m
- # Take a look at the running pods
- $ kubectl get po
- NAME READY STATUS RESTARTS AGE
- quaffing-crab-mariadb-3339155510-428wb 1/1 Running 0 3m
- quaffing-crab-wordpress-713434103-5j613 1/1 Running 0 3m
- # Take a look at the services exposed
- $ kubectl get svc
- NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
- kubernetes 10.254.0.1 443/TCP 16d
- quaffing-crab-mariadb 10.21.150.254 3306/TCP 4m
- quaffing-crab-wordpress 10.21.150.73 #.#.#.# 80:32376/TCP,443:30998/TCP
以上是在Nutnaix私有云資源池里的部署結(jié)果,我們可以看到創(chuàng)建了兩個(gè)持久化的卷存儲(chǔ)PVC,兩個(gè)容器等資源。
Nutanix的云戰(zhàn)略
Nutanix可以使用Nutnaix Calm的藍(lán)圖能力一鍵式的部署k8s群集,消除手工部署k8s群集的復(fù)雜性和工作量。
Nutnaix為k8s群集提供了持久化的卷存儲(chǔ),這個(gè)存儲(chǔ)能夠服務(wù)于所有容器應(yīng)用,為容器解決應(yīng)用的數(shù)據(jù)持久化問(wèn)題,當(dāng)然容器應(yīng)用也直接享受到了Nutnaix存儲(chǔ)的無(wú)限容量、高性能、去重壓縮等等所有福利。
與GCP的合作優(yōu)化和完善了Nutanix的混合云策略,為客戶布局混合云鋪平了道路。
Nutanix Xi Cloud Service 是和谷歌更深的合作。它為企業(yè)提供了更加簡(jiǎn)便易用的容災(zāi)服務(wù),DR只是這種合作的一種使用場(chǎng)景,還有其它使用案例。
下面解讀一下上圖:
- Primary Site:是私有云測(cè)的數(shù)據(jù)中心,是部署Nutnaix基礎(chǔ)架構(gòu)的私有云。
- Xi Cloud:是公有云的谷歌GCP的數(shù)據(jù)中,在GCP的數(shù)據(jù)中心里部署和配置了一鍵開(kāi)啟的Nutnaix基礎(chǔ)架構(gòu)(硬件節(jié)點(diǎn),并且內(nèi)部運(yùn)行的AHV虛擬機(jī),也是用Prisum管理),這一部分基礎(chǔ)設(shè)施是托管在GCP數(shù)據(jù)中心里的Nutanix基礎(chǔ)架構(gòu)平臺(tái);而不是GCP已有的基礎(chǔ)架構(gòu)硬件系統(tǒng)。
- Prism:兩邊的云化資源池都是用的是相同的管理控制平面,這就是Nutanix提出的企業(yè)云操作系統(tǒng)(Enterprise Cloud OS)的架構(gòu)。
- Xi DR:的功能是基于以上三點(diǎn)的,它可以把私有云和公有云里的虛擬機(jī)雙向的備份和恢復(fù),實(shí)現(xiàn)了容災(zāi)和備份的功能。
如果一個(gè)企業(yè)已經(jīng)部署了若干節(jié)點(diǎn)的Nutanix平臺(tái),已經(jīng)運(yùn)行了一系列業(yè)務(wù)虛擬機(jī);這時(shí)候?yàn)榱藵M足業(yè)務(wù)持續(xù)性管理的需求,就需要有一個(gè)容災(zāi)的站點(diǎn)。登錄Nutianix的Xi服務(wù),可以在谷歌的GCP云平臺(tái)的數(shù)據(jù)中心里,或者Nutanix建立的Xi數(shù)據(jù)中心里選擇一鍵式開(kāi)啟一個(gè)DR群集。也就是說(shuō)這個(gè)企業(yè)不需要再?gòu)腄R機(jī)房的選址開(kāi)始,完全不需要做傳統(tǒng)方式的DR站點(diǎn)構(gòu)建了。這個(gè)企業(yè)可以在幾分鐘里內(nèi)實(shí)現(xiàn)一個(gè)目標(biāo)的DR站點(diǎn),然后就可以配置私有云和DR站點(diǎn)的DR策略了,在幾分鐘之后,他們的業(yè)務(wù)應(yīng)用就在DR策略的保護(hù)之下了。
【本文為51CTO專欄作者“劉征”的原創(chuàng)稿件,轉(zhuǎn)載請(qǐng)通過(guò)作者微信公眾號(hào)“DevOps教練”(MyDevOps)獲取授權(quán)】