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















































評論