中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
WordPress:如何應(yīng)用Kubernetes和Portworx實(shí)現(xiàn)高可用和可擴(kuò)展性

背景

據(jù)統(tǒng)計(jì),全球28%的網(wǎng)站都運(yùn)行在WordPress上,這是一個(gè)驚人的數(shù)字,以此計(jì)算的話,大約有7500萬個(gè)站點(diǎn)。WordPress是14年前出現(xiàn)的,在此期間,互聯(lián)網(wǎng)用戶數(shù)量從6億已增加到了37億。WordPress擁有兩個(gè)狀態(tài)的組件: MySQL數(shù)據(jù)庫;及文件系統(tǒng)目錄(用來保存上傳的媒體文件和插件)。

WordPress發(fā)布之初,最常見的部署策略在服務(wù)器上安裝WordPress PHP應(yīng)用程序,MySQL數(shù)據(jù)庫以及文件存儲(chǔ)目錄。我們希望能夠進(jìn)行備份,但事實(shí)上,我們并不需要考慮“存儲(chǔ)”問題,因?yàn)槭聦?shí)上已經(jīng)超出了本地磁盤容量。

在這14年時(shí)間里,以及包括新增的31億用戶,我們都明白現(xiàn)如今的互聯(lián)網(wǎng)環(huán)境與WordPress發(fā)布時(shí)完全不一樣。在這7500萬個(gè)WordPress網(wǎng)站中,總有一部分網(wǎng)站的流量大的驚人,所以單個(gè)服務(wù)器上的流量訪問對于開發(fā)者來說是一大頭疼的事。

不得不說,總有那么一群人一直在研發(fā)很棒的工具來幫助解決這些問題。本文講述其中的兩個(gè):

lKubernetes

lPortworx

Kubernetes允許WordPress和MySQL容器在許多計(jì)算機(jī)上運(yùn)行。這意味著可以橫向擴(kuò)展,同時(shí)有足夠的能力來應(yīng)對快速增長的用戶群。

Portworx則提供了一個(gè)“數(shù)據(jù)管理層”,這表示能在一個(gè)節(jié)點(diǎn)上安全地運(yùn)行MySQL服務(wù)器,不用擔(dān)心節(jié)點(diǎn)是否中斷。其block layer復(fù)制意味著數(shù)據(jù)已存在另一臺(tái)機(jī)器上,這樣便大大減少了故障時(shí)轉(zhuǎn)移的時(shí)間。

Portworx同時(shí)還提供“共享卷”,這是WordPress的一大利器?!肮蚕砭怼笔筗ordPress在文件夾中上傳文件時(shí)擁有“多作者”。,這意味著可以橫向擴(kuò)展WordPress PHP容器,而不用擔(dān)心在集群中的多個(gè)磁盤上分割上傳。

將 Portworx的這兩個(gè)功能與Kubernetes集群相結(jié)合,我們得到WordPress實(shí)例,它具備以下能力:

l在block層自動(dòng)復(fù)制MySQL數(shù)據(jù)

l橫向擴(kuò)展WordPress PHP容器,并對文件上傳目錄使用“多作者”語義

l節(jié)點(diǎn)發(fā)生故障時(shí)自動(dòng)修復(fù)

然而,以上所有這些都使用單個(gè)數(shù)據(jù)管理層!

WordPress架構(gòu)

首先,我們來看看沒有Kubernetes或Portworx的WordPress的單個(gè)節(jié)點(diǎn)安裝是如何運(yùn)行的:

可以看到,PHP應(yīng)用的服務(wù)器會(huì)處理HTTP請求,處理包含讀、寫、上傳文件及查詢后臺(tái)MySQL數(shù)據(jù)庫。

文件上傳

在單個(gè)節(jié)點(diǎn)設(shè)置中,文件上傳目錄和MySQL數(shù)據(jù)目錄都是本地磁盤上的文件夾,一個(gè)塊設(shè)備上有一個(gè)文件系統(tǒng)。如果要擴(kuò)展WordPress容器,就要在它前面用代理來平衡流量。這樣設(shè)置的問題是,文件的上傳是跨多個(gè)服務(wù)器分離的。

來看看在兩個(gè)節(jié)點(diǎn)上運(yùn)行WordPress手動(dòng)安裝的2節(jié)點(diǎn)集群:

你可以看到,文件上傳的整個(gè)卷現(xiàn)在跨多個(gè)磁盤分離。WordPress對這個(gè)并沒有一個(gè)原生的理解,所以用戶能用這個(gè)設(shè)置來查看定期丟失的文件。

理想情況下,我們需要共享的文件系統(tǒng);無論從哪里讀取或?qū)懭胧裁矗只蚴谴鎯?chǔ),對于每個(gè)WordPress容器來說都是一樣的。

MySQL數(shù)據(jù)

數(shù)據(jù)庫存儲(chǔ)有一個(gè)不同的問題:我們需要確保數(shù)據(jù)在節(jié)點(diǎn)發(fā)生故障時(shí)是安全的。第一步是確保在另一臺(tái)電腦上有一個(gè)數(shù)據(jù)副本,以便在出現(xiàn)故障時(shí)能重新構(gòu)建服務(wù)器。

MySQL服務(wù)器失敗的設(shè)置:

我們通過在另一臺(tái)計(jì)算機(jī)上自動(dòng)更新數(shù)據(jù)副本來降低節(jié)點(diǎn)故障的風(fēng)險(xiǎn)。然而,這意味著我們必須以某種方式來進(jìn)行故障自動(dòng)轉(zhuǎn)移,這樣做對用戶并不友好。此時(shí),我們可以使用MySQL主從設(shè)置,但這并不是最快的轉(zhuǎn)移方式,而且當(dāng)我們重新同步新舊之間的更改時(shí),性能可能會(huì)受到影響。

上面提到的文件上傳卷也因?yàn)橥瑯拥脑蛐枰撤N類型的復(fù)制(比如,磁盤中斷)。

Kubernetes

使用Kubernetes,可以解決故障自動(dòng)轉(zhuǎn)移的問題。如果一個(gè)節(jié)點(diǎn)死機(jī),它將自動(dòng)將MySQL容器重新安排到另一個(gè)節(jié)點(diǎn)。

但我們也需要數(shù)據(jù),所以這個(gè)解決方案還不夠完整。如果在AWS上,可以用EBS作為解決方案(Kubernetes也有一個(gè)EBS插件),但這會(huì)導(dǎo)致諸如如EBS 卷卡住的問題。

同樣,當(dāng)橫向擴(kuò)展WordPress PHP容器時(shí),問題并不是由Kubernetes單獨(dú)解決,而是一個(gè)容器管理層。可用NFS 卷,但這增加了一定的復(fù)雜性,因?yàn)槲覀冋跒轫?xiàng)目使用多個(gè)存儲(chǔ)后端。

我們需要一個(gè)數(shù)據(jù)管理層提供以下功能:

l用于故障轉(zhuǎn)移的塊層復(fù)制

l用于橫向擴(kuò)展的“多作者”語義

這個(gè)解決方案需要原生的Kubernetes集成,一起來具體看看吧。

kubernetes上的Portworx

Portworx是這個(gè)例子的完美解決方案,因?yàn)樗峁┝藘煞N類型的存儲(chǔ)(復(fù)制和多作者),同時(shí),還具備原生的Kubernetes集成。

以下方式解決了我們的用例:

l運(yùn)行MySQL的節(jié)點(diǎn)可能會(huì)死,Kubernetes將使用副本數(shù)據(jù)集重新安排一個(gè)新的MySQL pod到節(jié)點(diǎn) (使用HyperConvergence)。

l橫向擴(kuò)展的WordPress PHP容器都具有單個(gè)文件上傳磁盤的相同視圖(即“多作者”)

l文件上傳卷及多作者也會(huì)復(fù)制,以防止任何節(jié)點(diǎn)出現(xiàn)故障

文件上傳

因?yàn)镻ortworx可以創(chuàng)建使用“多作者”語義的“共享”卷,我們可以為多個(gè)WordPress容器使用相同的Portworx 卷。

由于Portworx知道文件所處在實(shí)際節(jié)點(diǎn),并能可視化地代理將該文件加載到節(jié)點(diǎn)上的請求,所以寫入的每個(gè)文件都可用于其他卷。這在塊層發(fā)生,因此,任何可寫入文件系統(tǒng)的都不知道卷的大小,實(shí)際上,共享的數(shù)據(jù)并不是本地的數(shù)據(jù)。

通過下圖可以看到這一點(diǎn):

此外,共享卷可以被復(fù)制(以防節(jié)點(diǎn)故障),它為我們提供了一個(gè)解決方案,能解決文件被寫入到多個(gè)主機(jī)的問題。

MySQL數(shù)據(jù)

這是節(jié)點(diǎn)故障前的集群。注意Portworx是如何進(jìn)行MySQL卷的塊層復(fù)制的。

然后,如果節(jié)點(diǎn)出現(xiàn)故障,Kubernetes將把這個(gè)pod重新安排到Node B,在那里,MySQL副本準(zhǔn)備就緒并等待開始。這樣就減少了故障轉(zhuǎn)移的時(shí)間,通過將容器和數(shù)據(jù)遷移到新主機(jī)來自動(dòng)處理故障。

MySQL主從

為了簡單起見,我們使用單個(gè)MySQL pod。在生產(chǎn)中,將使用StatefulSet,因?yàn)樗试SMySQL在主/從配置中運(yùn)行。

當(dāng)然,Portworx 能很好地與StatefulSets 進(jìn)行集成,在其應(yīng)用層復(fù)制之下MySQL能利用塊層更快復(fù)制。

額外功能

此外,Portworx不僅僅是一個(gè)存儲(chǔ)連接器,也是一個(gè)數(shù)據(jù)管理層,以下有用的特性都是免費(fèi)的:

l能安全地進(jìn)行生產(chǎn)數(shù)據(jù)集的快照,而不會(huì)停機(jī)(這一點(diǎn)對于CI非常有用)

l將底層塊設(shè)備池存儲(chǔ)到一個(gè)統(tǒng)一的存儲(chǔ)結(jié)構(gòu)中,以此來將存儲(chǔ)從計(jì)算中分離出來

l用于加密數(shù)據(jù)的各種選項(xiàng)

l自動(dòng)將備份的快照發(fā)送到各種云存儲(chǔ)提供商

l為各種物理后端存儲(chǔ)設(shè)備提供統(tǒng)一的存儲(chǔ)管理層

舉例

下面是使用kops工具在AWS的Kubernetes上運(yùn)行的安裝程序的簡短介紹。

創(chuàng)建集群

首先使用kops AWS在AWS上創(chuàng)建一個(gè)Kubernetes集群。

安裝etcd

安裝一個(gè)etcd服務(wù)器(Portworx將使用它來保持集群協(xié)調(diào))。使用CoreOS etcd來安裝etcd。

模板卷

然后,創(chuàng)建一個(gè)模板卷?!?kops’使用AWS的Auto Scaling Groups,Portworx與之能很好地集成在一起。

Portworx Deamonset

這一步,我們將Portworx作為Deamonset運(yùn)行,這表示一個(gè)Portworx容器將在集群中的每個(gè)節(jié)點(diǎn)上運(yùn)行。

創(chuàng)建卷

安裝好了Portworx,我們可以在集群中的任何節(jié)點(diǎn)上進(jìn)行SSH,使用'pxctl' cli并創(chuàng)建卷。

為MySQL數(shù)據(jù)創(chuàng)建一個(gè)復(fù)制卷:

上面的卷名稱為“mysql-disk”,大小為“5GB”,格式為“ext4”,在集群中有2個(gè)副本(故障轉(zhuǎn)移時(shí)我們需要復(fù)制)。

然后為WordPress PHP容器創(chuàng)建“multi-writer”磁盤。它將有和MySQL磁盤相同的屬性,并帶有額外的共享標(biāo)志。它允許卷連接到多個(gè)容器,這便是我們需要的橫向擴(kuò)展WordPress容器:

卷通過`pxctl`的`list`命令創(chuàng)建:

啟動(dòng)MySQL

有一個(gè)磁盤ID,用它來運(yùn)行MySQL pod:

以下是YAML的內(nèi)容,使用`envsubst`來替換新創(chuàng)建的磁盤的ID:

啟動(dòng)WordPress

最后運(yùn)行WordPress PHP pod:

與MySQL pod一樣,用`envsubst`替換新創(chuàng)建的磁盤的ID:

發(fā)散

注意我們是如何在Kubernetes“部署”中實(shí)際部署WordPress和MySQL的。這就表示我們可以輕松地縮放每個(gè)部署運(yùn)行的容器數(shù)量。

單純地增加MySQL部署的規(guī)模是沒有意義的。如前所述,我們將為其使用狀態(tài)設(shè)置和主/從概念。

但我們可使用“kubectl規(guī)模部署”來增加WordPress容器的數(shù)量,因?yàn)樗鼈冋谑褂肞ortworx的“共享”卷。

以下是將WordPress容器增加到10個(gè)的命令行:

總結(jié)

本文展示了如何在AWS Kubernetes集群上安裝和操作WordPress和Portworx。如其他文章所示的一樣,使用Portworx還有許多優(yōu)點(diǎn),如EBS 卷被卡在附加狀態(tài)時(shí)。

一起使用Kops和Portworx的另一個(gè)好處是能與AWS的Auto Scaling Groups集成。這預(yù)示著Portworx能管理底層EBS池,并且能在升級/縮小/升級操作之后重用以前的EBS卷。

譯者簡介

Ghostcloud(中文名:精靈云)坐落于成都天府軟件園,是成都高新區(qū)重點(diǎn)扶持企業(yè),國內(nèi)首批從事容器虛擬化研發(fā)的企業(yè),是西南地區(qū)唯一一家基于Docker的云計(jì)算服務(wù)商,為企業(yè)級行業(yè)客戶提供針對互聯(lián)網(wǎng)化、私有云管理平臺(tái)、大數(shù)據(jù)業(yè)務(wù)基礎(chǔ)架構(gòu)的平臺(tái)服務(wù)。

Ghostcloud因容器技術(shù)而生,以最新容器技術(shù)Docker為基礎(chǔ),為適應(yīng)不同行業(yè)客戶需求,全自主研發(fā)了一套調(diào)度引擎框架Newben,且全方位適配Kubernetes主流開源調(diào)度引擎,也是國內(nèi)率先實(shí)現(xiàn)雙調(diào)度引擎的企業(yè),是一流的企業(yè)級容器云服務(wù)專家。Ghostcloud推出了企業(yè)級容器云PaaS/CaaS平臺(tái),命名為EcOS(EnterpriseContainer Operation System)。Ghostcloud將EcOS平臺(tái)與微服務(wù)/DevOps相融合,運(yùn)用至企業(yè)IT系統(tǒng)的全生命周期的開發(fā)、測試、運(yùn)維及發(fā)布流程中,致力于為多個(gè)領(lǐng)域企業(yè)向“互聯(lián)網(wǎng)+”轉(zhuǎn)型提供針對互聯(lián)網(wǎng)化、私有云管理平臺(tái)、大數(shù)據(jù)業(yè)務(wù)基礎(chǔ)架構(gòu)的平臺(tái)服務(wù),幫助企業(yè)級客戶降低成本、提升效率、簡化運(yùn)維及產(chǎn)品部署,并提升系統(tǒng)的可靠性和安全性。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
打算用容器跑生產(chǎn)系統(tǒng)?備份怎么做才靠譜?
Kubernetes VS Docker:了解2021年的容器
扣動(dòng)容器運(yùn)維的扳機(jī),淺談 Yaml 的百般武藝
當(dāng) Docker 1.12 Swarm Mode 與持久化存儲(chǔ)遇到 EMC REX
Kubernetes之路 3
Kubernetes最常見的面試題盤點(diǎn)!
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服