如何在阿里云上构建一个合适的Kubernetes集群

摘要: 声明 本文主要介绍如何在阿里云上构建一个K8S集群的实践,只是做为参考,你们能够根据实际状况作出调整。 集群规划 在实际案例中发现,有很多同窗使用了不少的小规格的ECS来构建K8S集群,这样其实即没有达到省钱的目的,也没有很好的发挥K8S集群的优点。java

声明docker

本文主要介绍如何在阿里云上构建一个K8S集群的实践,只是做为参考,你们能够根据实际状况作出调整。安全

集群规划服务器

在实际案例中发现,有很多同窗使用了不少的小规格的ECS来构建K8S集群,这样其实即没有达到省钱的目的,也没有很好的发挥K8S集群的优点。由于经过大量的小型ECS构建集群有几个弊端:网络

小规格Woker ECS的网络资源受限
若是一个容器基本能占用掉一个小规格ECS,那么这个的机器的剩余资源就没法利用(构建新的容器或者是恢复失败的容器),在ECS数量多的状况,反而是一种浪费。less

那么如何选择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/article...

Serverless Kubernetes

若是管理和维护Kuberntes集群太过于麻烦,为何不试试咱们的Serverless Kubernetes呢?

原文连接本文为云栖社区原创内容,未经容许不得转载

相关文章
相关标签/搜索