您好,登錄后才能下訂單哦!
如何把應用轉移到Kubernetes,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
Ben Sears
Kubernetes是時下最流行的管理和編排工具,它提供了一個配置驅動的框架,讓我們可以通過定義和操作獲得整個網絡、磁盤和應用,并以可伸縮且易于管理的方式進行。
如果我們還沒有完成應用容器化,那么把應用轉移到Kubernetes上會是一件高強度的工作,目的則是介紹應用與Kubernetes集成的方法。
容器是可以獨立運行的基本操作單元,不同于傳統虛擬機依賴模擬操作系統,容器利用各種內核特性來提供與主機隔離的環境。
對于有經驗的技術人員來說,整個容器化過程不算復雜——使用docker,定義一個包含安裝步驟和配置(下載包、依賴等等)的dockerfile,最后構建一個可以讓開發人員使用的鏡像即可。
在我們把應用遷移到Kubernetes之前,需要確認向最終用戶交付的方式。
傳統web應用的多租戶結構,是所有用戶共享單個數據庫實例和應用實例,這種形式在Kubernetes中工作沒什么問題,但我們建議考慮把應用改造成多實例架構,以充分利用Kubernetes和容器化應用的優勢特性。
采用多實例架構的好處包括:
穩定性——單點故障,不影響其他實例;
可伸縮——通過多實例架構,擴展也就是增加計算資源的事;而對于多租戶架構,需要創建集群應用體系結構的部署可能會有些麻煩;
安全性——當您使用單個數據庫時,所有數據都在一起,一旦發生安全漏洞,所有用戶都會收到威脅,而采用多數據中心,只會有一個用戶的數據面臨風險;
為了獲得成本效益,我們需要確定運行單個應用實例所需的CPU、內存和存儲量。
我們可以通過設置限制,精確調整Kubernetes節點需要多少空間、確保節點過載或者不可用等等。
這需要我們反復的嘗試和驗證,也有一些工具可以替我們達成這一目的。
在確定資源分配之后,我們可以計算Kubernetes節點的最佳資源大小;
將每個實例需要的內存或CPU乘以100(節點可以容納的最大Pod數),我們可以大概估計你的節點應該有多少內存和CPU;
對應用程序進行壓力測試以確保它在滿節點時順利運行。
Kubernetes集群運行起來,我們會發現許多DevOps實踐水到渠成——
自動縮放Kubernetes節點
節點用滿時,通常需要配置更多的節點以便所有實力順暢運行,自動縮放的Kubernetes節點便派上了用場。
自動縮放應用程序
根據使用情況,某些應用需要按比例縮放,Kubernetes使用可自動縮放部署的觸發器來實現,命令:
kubectl autoscale deployment myapp --cpu-percent = 50 --min = 1 --max = 10
如上,當CPU百分比超過50時,將設置myapp部署擴展到10個容器。
在用戶操作時自動配置實例
對于多實例架構,最終用戶在Kubernetes中部署應用程序,而為了實現這一點,我們應該考慮將應用與Kubernetes API集成,或者使用第三方解決方案來提供請求實例的入口。
通過用戶操作定義自定義主機名
最近越來越多的終端用戶將其域名附加到應用程序中,而Kubernetes提供了一些工具來使這個過程變得更加簡單,甚至到達自助服務的地步(用戶按下一個按鈕來設置域指向),我們可以使用Nginx Ingress等系統來完成此操作。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。