天天看點

如何在阿裡雲上建構一個合适的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加密,可信計算環境,支援區塊鍊等應用

如何在阿裡雲上建構一個合适的Kubernetes叢集

建構叢集選項注意點

在建構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後添加進叢集裡。

本文轉自中文社群-

如何在阿裡雲上建構一個合适的Kubernetes叢集