如何在阿里云上构建一个合适的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呢?

原文链接请添加链接描述
本文为云栖社区原创内容,未经允许不得转载

原文地址:http://blog.51cto.com/13866390/2145981

时间: 2025-01-14 03:05:52

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

在阿里云上搭建一个简单的node服务器

一.阿里云服务器以及node环境的搭建 服务器可以去阿里云官网购买一个ECS云服务器,价格还是有点小贵的,如果想使用免费的阿里云服务器,那么阿里云官网每天也是有抢免费的服务器的,每天上午十点,新人能抢到为期半年的服务器. 然后有了服务器以后,首先搭建一个node的运行环境,保证node 能正常使用,这个不是本文的内容就不多加赘述了. 如果没有搭建的小伙伴可以参考这里. 二.远程服务器上的代码管理 在阿里云服务器上可以安装一个 git 版本控制器,将自己的代码放置在自己的 GitHub 上,然后在

阿里云上构建本地仓库Docker images

第一步,先在阿里云https://cr.console.aliyun.com/cn-hangzhou/namespaces上创建命名空间,再根据命名空间创建镜像仓库 第二步,本地上传images到阿里云容器镜像市场 1.本地创建images [[email protected] ~]# docker commit test_centos xxxxx_test/test:v1sha256:7af8f7643b100bd74a7b97de9511469ed36190a7930b278bc3a33f3

阿里云ECS部署Redis主备哨兵集群遇到的问题

一.部署 详细部署步骤:https://blog.csdn.net/lihongtai/article/details/82826809 Redis5.0版本需要注意的参数配置:https://www.cnblogs.com/ibethfy/p/9965902.html 二.遇到的问题 1.bind公网IP地址时,会出现异常:[Cannot assign requested address] 首先理解bind的含义:https://blog.csdn.net/cw_hello1/article/

高可用集群之Corosync+Pacemaker及用CRM命令和NFS-server构建一个HA高可用集群

红帽5.0使用的是OpenAIS作为内核中的信息通信API,然后借助CMAN作为Messager Layer,再使用ramanager作为CRM进行资源的管理 Corosync具有比heartbeat在设计上更好的信息通信机制 红帽6.0直接使用Corosync用来作为集群的Messager Layer 不同的公司的API机制所调用的库,函数类型,返回方式各不相同,这就必须使用一个标准,使不同公司的API保持最大的兼容 比如你买了华硕的主板使用其他公司的鼠标照样可以使用 应用接口规范(AIS)就

云计算之路-阿里云上:Wireshark抓包分析一个耗时20秒的请求

这篇博文分享的是我们针对一个耗时20秒的请求,用Wireshark进行抓包分析的过程. 请求的流程是这样的:客户端浏览器 -> SLB(负载均衡) -> ECS(云服务器) -> SLB -> 客户端浏览器. 下面是分析的过程: 1. 启动Wireshark,针对内网网卡进行抓包. 2. 在IIS日志中找出要分析的请求(借助Log Parser Studio) 通过c-ip(Client IP Address)可以获知SLB的内网IP,在分析Wireshar抓包时需要依据这个IP进

云计算之路-阿里云上:“黑色1秒”问题与2009年Xen一个补丁的故事

在之前对"黑色1秒"问题的分析博文中,我们将最大嫌疑对象锁定在了Xen,在这篇博文我们将从Xen的角度进行分析.也许有人会问,为什么不知道天多高地多厚地去研究不属于自己范围的问题?只因我们对一个问题的强烈好奇心--究竟是不是我们用Windows的错? 2009年3月20日,来自Intel的Yu Ke通过Xen-dev Mailing List给来自Citrix的Keir Fraser(负责的Xen开发者之一)发了一封邮件,提交了Xen的一个patch--cpuidle: suspend

云计算之路-阿里云上:SLB会话保持的一个坑

冒着被大家厌烦的风险,今天再发一篇"云计算之路-阿里云上".这是在前一篇发过之后真实发生的事情,我们觉得定位问题的过程值得分享.而且估计园子里不少朋友被这个问题骚扰过,我们有责任让大家知道问题的真正原因. 快下班之前,园区里另外一家公司的朋友说他们公司有的人不能正常访问园子--会出现HTTP Error 400错误,而其他人可以正常访问.这个问题立即引起了我们的警觉,因为之前也有园友反馈过同样的问题,当时什么也没动,后来就好了,以为是他们公司网络代理服务器的问题.由于我们从未遇到过这个

如何在阿里云上安全的存放您的配置 - 续

摘要: 在之前文章中,其中一个遗留问题是如何存放访问ACM配置本身的敏感信息,比如要访问ACM本身需要的AccessKey ID(简称AK)或Secret AccessKey(简称SK)如何存放,即所谓敏感配置的"最后一公里"问题. 在<如何在阿里云上安全的存放您的配置>一文中,我们介绍了如何通过ACM存放您的敏感配置,并进行加密.这样做的目的有两个: 在应用程序或对应生产环境容器或系统中,无需持久化任何敏感数据信息(如数据库连接串,等),以防止生产环境或开发过程中的敏感信

一位云架构师用服务打动客户的故事之六(阿里云上的MSP最佳实践项目分享)

最近找了一个典型的云服务客户的案例对内进行分享,今天把核心内容脱敏后分享出来.希望能给目前在路上(做云服务MSP)的同行,有一些借鉴意义或者帮助. 该用户据全年跟进情况,目前该客户距正式启用我们公司云服务(运维服务)的日子已经有半年有余了,目前整体趋于稳定,故将目前用户进行深度复盘剖析,让各位伙伴更好的从该客户案例中提取一些有用的"武器"."售前技巧". 云产商:阿里云 企业背景-日企上来的终极三问~ > 为什么选择我们做云服务商?PS:此云服务并非指的是阿里