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