如何在阿里云上构建一个合适的Kubernetes集群
摘要:?聲明 本文主要介紹如何在阿里云上構建一個K8S集群的實踐,只是作為參考,大家可以根據實際情況做出調整。 集群規劃 在實際案例中發現,有不少同學使用了很多的小規格的ECS來構建K8S集群,這樣其實即沒有達到省錢的目的,也沒有很好的發揮K8S集群的優勢。
聲明
本文主要介紹如何在阿里云上構建一個K8S集群的實踐,只是作為參考,大家可以根據實際情況做出調整。
集群規劃
在實際案例中發現,有不少同學使用了很多的小規格的ECS來構建K8S集群,這樣其實即沒有達到省錢的目的,也沒有很好的發揮K8S集群的優勢。因為通過大量的小型ECS構建集群有幾個弊端:
- 小規格Woker ECS的網絡資源受限
- 如果一個容器基本能占用掉一個小規格ECS,那么這個的機器的剩余資源就無法利用(構建新的容器或者是恢復失敗的容器),在ECS數量多的情況,反而是一種浪費。
那么如何選擇Worker ECS的規格呢?
- 確定整個集群的日常使用的總核數以及可用度的容忍度。例如總的核數有160核,同時容忍10%的錯誤。那么最小選擇10臺ECS為16核的機器,并且高峰運行的負荷不要超過16090%=144核。如果容忍度是20%,那么最小選擇5臺32核的機器,并且高峰運行的負荷不要超過16080%=128核。這樣確保,就算有一臺機器整體crash都可以支持得住業務運行。
- 但是上面這個計算只是理論值,因為規格小的機器,很可能剩余不可利用的資源的比例就高。所以不是越小的機器越好。
- 選擇好CPU:Memory的比例。對于使用內存比較多的應用例如java類應用,建議考慮使用1:8的機型。
高規格ECS的一些好處:
- 高規格的好處是,網絡帶寬大,對于大帶寬類的應用,資源利用率也高。
- 在一臺機器內容器建通信的比例增大,減少網絡的傳輸
- 拉取鏡像的效率更好。因為鏡像只需要拉取一次就可以被多個容器使用。而對于小規格的ECS拉取鏡像的此時就增多。在需要聯動ECS做伸縮的場景,則需要花費的時間更長,反而達不到立即響應的目的
選用神龍服務器
阿里云已經推出了裸金屬服務器:神龍,選用神龍服務比較典型的兩個場景:
- 如果在集群日常規模能夠到1000個核的情況下,建議全部選擇神龍服務器。(神龍服務器96核起)這樣可以通過10~11臺神龍服務器構建一個集群。
- 需要快速擴大比較多的容器的時候,特別是電商類大促的時候,應對流量尖峰,可以考慮使用神龍服務來作為新增的節點,這樣增加一臺神龍就可以支持很多個容器運行了。
神龍服務作為容器集群的構建基礎,還有以下好處:
- 超強網絡: 配備RDMA技術。通過Terway容器網絡,充分發揮硬件性能跨宿主機容器帶寬超過9Gbit/s
- 計算性能零抖動:自研芯片取代Hypervisor,無虛擬化開銷,無資源搶占
- 安全:物理級別加密,支持Intel SGX加密,可信計算環境,支持區塊鏈等應用
構建集群選項注意點
在構建k8s集群是,有很多選項需要注意:
網絡選擇
- 如果需要連接外部的一有服務,如 rds等,則需要考慮復用原有的VPC,而不是取創建一個新的VPC。因為VPC間是隔離的。但是可以通過創建一個新的交換機,把k8s的機器都放在這個交換機,便于管理。
- 網絡插件的選擇:目前支持兩種插件,一種是flannel,直通VPC,性能最高。一種是Terway,提供k8s的網絡策略管理。
- POD CIDR,整個集群的POD的網絡。這個不能設置太小。因為設置太小,能支持的節點數量就受限了。這個與高級選項中“每個節點POD的數量有關”。例如POD CIDR是/16的網段,那么就有256*256個地址,如果每個幾點POD數量是128,則最多可以支持512個節點。
磁盤的選擇
- 盡量選擇SSD盤
- 對于Worker節點,盡量選擇“掛在數據盤”。因為這個盤是專門提供給/var/lib/docker,使用來存放本地鏡像的。避免后續如果鏡像太多撐爆根磁盤。在運行一段時間后,本地會存在很多無用的鏡像。比較快捷的方式就是,先下線這臺機器,重新構建這個磁盤,然后再上線。
日常運維設置
- 對于ECS的監控,日常運維一定設置CPU, Memory,磁盤的告警。再次說明一下,盡量將/var/lib/docker放在獨立一個盤上
- 一定配置日志收集
是否需要立即構建Worker節點
目前集群的創建方式使用的ECS是按照量計費的模式。如果需要包年包月,則可以考慮先不創建Worker節點,然后創建k8s集群完后,再單獨購買ECS后添加進集群里。
K8S穩定性的考慮
參考?https://yq.aliyun.com/articles/599169?spm=a2c4e.11153959.0.0.4eebd55aSdySUm
Serverless Kubernetes
如果管理和維護Kuberntes集群太過于麻煩,為什么不試試我們的Serverless Kubernetes呢?
原文鏈接
本文為云棲社區原創內容,未經允許不得轉載。
總結
以上是生活随笔為你收集整理的如何在阿里云上构建一个合适的Kubernetes集群的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Lucene解析 - 基本概念
- 下一篇: 实现Chrome Devtools调试J