1. 程式人生 > >如何在阿裏雲上構建一個合適的Kubernetes集群

如何在阿裏雲上構建一個合適的Kubernetes集群

12個 伸縮 弊端 收集 並且 服務 erl tel 介紹

摘要: 聲明 本文主要介紹如何在阿裏雲上構建一個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集群