摘要:如果我們還沒有完成應(yīng)用容器化,那么把應(yīng)用轉(zhuǎn)移到上會(huì)是一件高強(qiáng)度的工作,本文目的則是介紹應(yīng)用與集成的方法。采用一個(gè)多實(shí)例架構(gòu)在我們把應(yīng)用遷移到之前,需要確認(rèn)向最終用戶交付的方式。這需要我們反復(fù)的嘗試和驗(yàn)證,也有一些工具可以替我們達(dá)成這一目的。
Ben Sears
Kubernetes是時(shí)下最流行的管理和編排工具,它提供了一個(gè)配置驅(qū)動(dòng)的框架,讓我們可以通過定義和操作獲得整個(gè)網(wǎng)絡(luò)、磁盤和應(yīng)用,并以可伸縮且易于管理的方式進(jìn)行。
如果我們還沒有完成應(yīng)用容器化,那么把應(yīng)用轉(zhuǎn)移到Kubernetes上會(huì)是一件高強(qiáng)度的工作,本文目的則是介紹應(yīng)用與Kubernetes集成的方法。
Step 1?—?將應(yīng)用容器化容器是可以獨(dú)立運(yùn)行的基本操作單元,不同于傳統(tǒng)虛擬機(jī)依賴模擬操作系統(tǒng),容器利用各種內(nèi)核特性來提供與主機(jī)隔離的環(huán)境。
對(duì)于有經(jīng)驗(yàn)的技術(shù)人員來說,整個(gè)容器化過程不算復(fù)雜——使用docker,定義一個(gè)包含安裝步驟和配置(下載包、依賴等等)的dockerfile,最后構(gòu)建一個(gè)可以讓開發(fā)人員使用的鏡像即可。
Step 2?—?采用一個(gè)多實(shí)例架構(gòu)在我們把應(yīng)用遷移到Kubernetes之前,需要確認(rèn)向最終用戶交付的方式。
傳統(tǒng)web應(yīng)用的多租戶結(jié)構(gòu),是所有用戶共享單個(gè)數(shù)據(jù)庫實(shí)例和應(yīng)用實(shí)例,這種形式在Kubernetes中工作沒什么問題,但我們建議考慮把應(yīng)用改造成多實(shí)例架構(gòu),以充分利用Kubernetes和容器化應(yīng)用的優(yōu)勢特性。
采用多實(shí)例架構(gòu)的好處包括:
穩(wěn)定性——單點(diǎn)故障,不影響其他實(shí)例;
可伸縮——通過多實(shí)例架構(gòu),擴(kuò)展也就是增加計(jì)算資源的事;而對(duì)于多租戶架構(gòu),需要?jiǎng)?chuàng)建集群應(yīng)用體系結(jié)構(gòu)的部署可能會(huì)有些麻煩;
安全性——當(dāng)您使用單個(gè)數(shù)據(jù)庫時(shí),所有數(shù)據(jù)都在一起,一旦發(fā)生安全漏洞,所有用戶都會(huì)收到威脅,而采用多數(shù)據(jù)中心,只會(huì)有一個(gè)用戶的數(shù)據(jù)面臨風(fēng)險(xiǎn);
Step 3 — 確定應(yīng)用的資源消耗為了獲得成本效益,我們需要確定運(yùn)行單個(gè)應(yīng)用實(shí)例所需的CPU、內(nèi)存和存儲(chǔ)量。
我們可以通過設(shè)置限制,精確調(diào)整Kubernetes節(jié)點(diǎn)需要多少空間、確保節(jié)點(diǎn)過載或者不可用等等。
這需要我們反復(fù)的嘗試和驗(yàn)證,也有一些工具可以替我們達(dá)成這一目的。
在確定資源分配之后,我們可以計(jì)算Kubernetes節(jié)點(diǎn)的最佳資源大??;
將每個(gè)實(shí)例需要的內(nèi)存或CPU乘以100(節(jié)點(diǎn)可以容納的最大Pod數(shù)),我們可以大概估計(jì)你的節(jié)點(diǎn)應(yīng)該有多少內(nèi)存和CPU;
對(duì)應(yīng)用程序進(jìn)行壓力測試以確保它在滿節(jié)點(diǎn)時(shí)順利運(yùn)行。
Step 4 — 與Kubernetes集成Kubernetes集群運(yùn)行起來,我們會(huì)發(fā)現(xiàn)許多DevOps實(shí)踐水到渠成——
自動(dòng)縮放Kubernetes節(jié)點(diǎn)
節(jié)點(diǎn)用滿時(shí),通常需要配置更多的節(jié)點(diǎn)以便所有實(shí)力順暢運(yùn)行,自動(dòng)縮放的Kubernetes節(jié)點(diǎn)便派上了用場。
自動(dòng)縮放應(yīng)用程序
根據(jù)使用情況,某些應(yīng)用需要按比例縮放,Kubernetes使用可自動(dòng)縮放部署的觸發(fā)器來實(shí)現(xiàn),命令:
kubectl autoscale deployment myapp --cpu-percent = 50 --min = 1 --max = 10
如上,當(dāng)CPU百分比超過50時(shí),將設(shè)置myapp部署擴(kuò)展到10個(gè)容器。
在用戶操作時(shí)自動(dòng)配置實(shí)例
對(duì)于多實(shí)例架構(gòu),最終用戶在Kubernetes中部署應(yīng)用程序,而為了實(shí)現(xiàn)這一點(diǎn),我們應(yīng)該考慮將應(yīng)用與Kubernetes API集成,或者使用第三方解決方案來提供請求實(shí)例的入口。
通過用戶操作定義自定義主機(jī)名
最近越來越多的終端用戶將其域名附加到應(yīng)用程序中,而Kubernetes提供了一些工具來使這個(gè)過程變得更加簡單,甚至到達(dá)自助服務(wù)的地步(用戶按下一個(gè)按鈕來設(shè)置域指向),我們可以使用Nginx Ingress等系統(tǒng)來完成此操作。
最后打個(gè)廣告Kubernetes提出的一系列概念抽象,非常符合理想的分布式調(diào)度系統(tǒng)。但大量高難度技術(shù)概念,同時(shí)也形成了一條陡峭的學(xué)習(xí)曲線,直接拉高了Kubernetes的使用門檻。
好雨云開源PaaS Rainbond則將這些技術(shù)概念包裝成為“Production-Ready”的應(yīng)用,可以作為一個(gè)Kubernetes面板,開發(fā)者不需要特殊學(xué)習(xí)即可使用。
除此之外,Kubernetes本身是一個(gè)容器編排工具,并不提供管理流程,而Rainbond提供現(xiàn)成的管理流程,包括DevOps、自動(dòng)化運(yùn)維、微服務(wù)架構(gòu)和應(yīng)用市場等,可以開箱即用。
進(jìn)一步了解:https://www.goodrain.com/scen...
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/32656.html
摘要:目前正在運(yùn)行的應(yīng)用程序。內(nèi)置非配置負(fù)載均衡器如何設(shè)置運(yùn)行的集群在這里你有幾個(gè)選項(xiàng)。它跟其它的谷歌云組件也都整合得很好,比如負(fù)載均衡器和磁盤。它會(huì)告訴負(fù)載均衡器,流量可以被重新傳到特定的。元信息和谷歌云會(huì)以正確的方式展現(xiàn)出來。 Kubernetes實(shí)踐案例分享|在這次的 RisingStack 案例分享中,我們可以在 Kubernetes Tutorial 中學(xué)習(xí)到如何從 PaaS 供應(yīng)...
摘要:作者,谷歌將裸盤支持轉(zhuǎn)移到。對(duì)裸盤的支持目前是。將留空與指定相同,這會(huì)導(dǎo)致傳統(tǒng)行為。例如,實(shí)際上是磁盤的塊設(shè)備支持使用向設(shè)備發(fā)送命令。默認(rèn)情況下,不允許容器將命令從容器內(nèi)部發(fā)送到磁盤。 作者:Ben Swartzlander(NetApp),Saad Ali(谷歌) Kubernetes v1.13將裸盤(raw block volume)支持轉(zhuǎn)移到beta。此功能允許持久卷(pers...
摘要:作者,谷歌將裸盤支持轉(zhuǎn)移到。對(duì)裸盤的支持目前是。將留空與指定相同,這會(huì)導(dǎo)致傳統(tǒng)行為。例如,實(shí)際上是磁盤的塊設(shè)備支持使用向設(shè)備發(fā)送命令。默認(rèn)情況下,不允許容器將命令從容器內(nèi)部發(fā)送到磁盤。 作者:Ben Swartzlander(NetApp),Saad Ali(谷歌) Kubernetes v1.13將裸盤(raw block volume)支持轉(zhuǎn)移到beta。此功能允許持久卷(pers...
摘要:正在加速以容器技術(shù)運(yùn)行有狀態(tài)服務(wù)在生產(chǎn)環(huán)境中的采用,這時(shí)我們就更需要關(guān)心性能和易于部署。這些運(yùn)行有狀態(tài)服務(wù)的容器需要特殊處理就帶來了新的需求,包括更長的生命周期,配置依賴,有狀態(tài)的故障轉(zhuǎn)移以及對(duì)性能的要求。 編者按:本文作者是 Diamanti 的產(chǎn)品 VP Mark Balch,他將更多的分享他們向 Kubernetes做出的一些貢獻(xiàn)。這篇文章是關(guān)于 Kubernetes 1.3 新...
閱讀 1038·2021-11-23 09:51
閱讀 2366·2021-10-08 10:22
閱讀 2657·2021-09-29 09:35
閱讀 876·2021-09-22 15:20
閱讀 2873·2019-08-30 15:53
閱讀 2427·2019-08-30 13:55
閱讀 1114·2019-08-29 17:27
閱讀 2884·2019-08-29 17:26