集群规划构建
容器部署中的ECS选型
- 在创建Kubernetes实例时,物理部署实体的选型对上层应用的性能起着非常大的影响。通过大型客户在云容器部署实践的统计,很大一部分应用在容器部署中都没有采用正确的部署方式。
容器集群的高可靠配置
-
在容器集群部署规划中,除了ECS选型之外,哎呦很多配置方式会直接影响集群的可靠性,可总结为以下5点:
-
消灭SPOF:SPOF单点故障是高可靠性大敌,因此尽量直接使用Pod部署
-
单进程容器:单进程容器便于容器内进行监控以及容器重启操作
-
配置探活:通过探活和重启策略的配置监控容器内进程的健康状态
-
资源声明:Pod的资源声明可以保证K8s对Node资源的有效分配
-
多可用区:通过多可用区避免物理故障
-
容器节点操作系统选择
- Alibaba Cloud Linux2是新一代阿里云Linux操作系统,为云上应用程序提供安全、稳定、高性能的定制化运行环境,并针对云基础设施进行了深度优化,并提供更好的运行时体验
网络规划
-
在创建K8s集群时,根据网络插件的不同,需要指定专有网络VPC、虚拟交换机、Pod网络CIDR和Service CIDR,并做好ECS地址、K8s Pod地址和Service地址的规划工作
-
可选的网络插件:Flannel、Terway
集群接入服务网格ASM
- 将部署容器集群中的应用接入阿里云服务网格ASM,可以简化服务的网格化治理,实现服务的可观测性,减轻开发与运维的工作负担
集群核心组件配置与优化
混合云部署K8s集群
- 对于企业客户而言,出于数据主权和安全隐私的考虑,大多会考虑使用多云混合云方式开展业务,以K8s为代表的技术屏蔽了基础设施的差异性,推动了以应用多云混合云新架构的到来
使用Terraform创建K8s集群
- Terraform是HashiCorp公司提供的一种开源工具,用于安全高效地预览、配置、管理云基础架构和资源,帮助开发者自动化地创建、更新阿里云基础设施资源,并进行版本管理
Kubernetes对接ECI
-
ECI为K8s提供一种层次化的解决方案,即ECI负责底层Pod容器资源的调度和管理工作,K8s在ECI之上作为PaaS层来管理Deployment、Service、StatefulSet、CronJob等业务负载
-
ECI克承载ACK集群或者ASK集群
-
混合使用ECI和传统服务器
容器集群的高弹性架构实现
-
对于有波峰波谷的在线业务,或者机器学习、基因测序等对实时性要求不高、但是对成本敏感的应用,可以通过容器高弹性架构,全自动实现动态创建或释放实例,达到成本的最优控制
-
ECI方式高弹性架构:适用于秒杀、爬虫等短期高峰值应用场景
-
使用ECS+ECI混合部署方式,保持互通
Ingress最佳实践
- 在K8s集群中,Ingress是授权入站连接到达集群服务的规则几何,可以提供七层负载均衡能力,通过Ingress可以实现滚动升级、分批暂停发布、蓝绿发布以及灰度发布等发布方式。以及不同集群之间的流量复制。作为集群流量接入层,Ingress的高可靠显得尤为重要
CoreDNS
- 容器集群中部署了CoreDNS作为内部DNS服务器,在集群中推荐使用Service名作为服务的访问地址,通过CoreDNS服务可以实现从Service到Service的ip地址的解析。同时Serverless集群中支持PrivateZone进行域名解析服务发现
使用案例 - 聚石塔
概念
聚石塔业务背景介绍
- 聚石塔最早上线于2012年,是阿里集团帮助商家打造的开放电商云工作平台。它汇聚包括淘宝、天猫、阿里云等整个平台资源和资源优势,同时依托于聚石塔,各种业务类型的服务商商家提供了如ERP、CRM、WMS等业务服务
聚石塔的业务痛点
-
聚石塔的业务大致分为两部分:
-
电商订单服务连路上的系统如ERP、CRM、WMS
-
电商行业中直接面向客户的小程序场景,如手淘与千牛的小程序
-
其业务痛点如下:
-
标准化和稳定性问题
-
突发流量下的弹性问题
-
效率和成本问题
聚石塔技术特点 - 应用和发布标准化
- K8s自带的滚动发布,虽然标准化了发布环节,但在发布期间无法暂停,即使服务起来了,可能功能和业务存在的问题,最终也会随着滚动不断扩大影响面;对此,聚石塔设计了支持暂停的分批发布,通过提前批的“金丝雀”发布,从而提升系统的稳定性
聚石塔技术特点 - 丰富的弹性扩容
- 对于电商等零流量波动较大的场景,用户一般会把集群资源维持在日常流量的规模,并在流量高峰再来林倩进行集群资源的扩容。ECI的价格与同等规格的ECS相近,且为按秒付费,秒级扩容
聚石塔技术特点 - 应用监控
- 与传统应用相比,基于K8s容器实例是动态调度的、生命周期短,Deployment、Service等容器上层抽象组件更是难以监控的,此外还需要底层ECS计算资源、实例生命周期、K8s集群自身以及集群核心组件的各个维度的监控
聚石塔技术特点 - DNS生产环境优化
-
聚石塔的用户大多是电商或小程序的场景,开发语言多样化,有些语言没有很好的连接池,导致DNS解析频繁。K8s默认的CoreDNS在高并发时会遇到性能瓶颈,因此聚石塔对DNS的性能做了深入的优化,优化的手段主要有两种,分别是Node Local DNS和SideCar DNS
-
Node Local DNS:通过DaemonSet方式在每个节点上运行一个DNS的Pod,设置相应转发规则,最大可能避免跨节点解析
-
SideCar DNS:在业务Pod中添加DNS解析服务容器,可当做DNS缓存,且只为当前Pod进行服务,做到资源隔离
小结
-
集群规划构建
-
集群核心组件配置及优化
-
使用案例介绍 - 聚石塔平台
完结
ACP云原生容器工程师相关介绍自此完结,可以说这个证书相比云计算要困难一些,里边涉及到了大量云原生和K8s的内容,对于初学者并不友好,决定考取这个证书的同学也较少,但是我相信随着技术的不断发展、岗位不断内卷的大环境之下,这个与K8s高度相关的认证会有越来越多的人进行考取。
我这里也只是将自己的笔记整理之后进行的重新发布,如果对将来立志于此的同学们有些许帮助的话,那真是我莫大的荣幸!
以上,完结!
各位兄弟江湖再见~