阿里云云原生容器工程师ACP认证(二十二)—阿里云容器集群规划与构建案例

 

集群构建规划

容器部署中的ECS选型

在创建Kubernetes集群时,物理部署实体的选型对上层应用的性能起着非常大的影响。通过大量客户在云容器部署实践的统计,很大一部应用在容器部署中往往没有采用正确的部署选型。

image

容器集群的高可靠配置

image

容器节点操作系统选择

image

Kubernetes集群网络规划

在创建K8s集群时,根据网络插件的不同,需要指定专有网络VPC、虚拟交换机、Pod网络CIDR(地址段)和Service CIDR(地址段)。并做好ECS地址、K8s Pod地址和Service地址的规划工作。

集群接入服务网格ASM

将部署容器集群中的应用接入阿里云服务网格ASM,可以简化服务的网格化治理,实现服务的可观测性,减轻开发与运维的工作负担。

image

集群核心组件配置与优化

混合云部署Kubernetes集群

对于企业客户而言,出于数据主权和安全隐私的考虑,大多会考虑使用多云混合云方式开展业务,=,以K8s为代表的技术屏蔽了基础设施的差异性,推动了以应用多云混合云新架构的到来。

image

使用Terraform创建Kubernetes集群

Terraform是HashiCorp公司提供的一种开源工具,用于安全高效地预览,配置和管理云基础架构和资源,帮助开发者自动化地创建、更新阿里云基础设施资源,并进行版本管理。

image

Kubernetes对接ECI

ECI为K8s提供一种层次化的解决方案:即ECI负责底层Pod容器资源的调度和管理工作,K8s在 ECI之上作为PaaS层来管理Deployment、Service、StatefulSet、 CronJob等业务负载。

image

容器集群的高弹性架构实现

对于有波峰波谷的在线业务。或者机器学习、基因测序等对实时性要求不高,但是对成本敏感的应用。可以通过容器高弹性架构,全自动实现动态创建或释放实例,达到成本的最优控制。

image

Ingress最佳实践

在K8s集群中,Ingress是授权入站连接到达集群服务的规则集合,可以提供七层负载均衡能力, 可以通过 Ingress 配置提供外部可访问的 URL、负载均衡、SSL、基于名称的虚拟主机。通过Ingress可以实现滚动升级、分批暂停发布、蓝绿发布以及灰度发布等发布方式。以及不同 集群之间的流量复制。作为集群流量接入层,Ingress的高可靠性显得尤为重要。

image

通过阿里云容器服务K8S Ingress Controller实现应用服务的灰度发布

场景一 假设当前线上环境我们已经有一套服务Service A对外提供7层服务,此时我们新开发了一些新的特性,需要灰度发布上线一个新的版本Service A’,但是我们暂时又不希望简单地直接替换掉Service A服务,而是希望将请求头中包含foo=bar或者cookie中包含foo=bar的客户端请求转发到Service A’服务中,待运行一段时间稳定,将所有的流量切换到Service A’服务中后,再平滑地下线掉Service A服务

image

场景二 假设当前线上环境我们已经有一套服务Service B对外提供7层服务,此时我们修复了一些问题,需要灰度发布上线一个新的版本Service B’,但是我们又不希望简单直接地将所有客户端流量切换到新版本Service B’中,而是希望仅仅切换20%的流量到新版本Service B’中,待运行一段时间稳定,将所有的流量切换到Service B’服务中后,再平滑地下线掉Service B服务

image

服务发现的最佳实践

容器集群中部署了CoreDNS作为内部DNS服务器,在集群中推荐使用Service名作为服务的访问地址,通过CoreDNS服务可以实现从Service名到Service的IP地址的解析。同时Serverless集群中支持PrivateZone进行域名解析服务发现

image

聚石塔应对上云挑战

聚石塔最早上线于2012年,是阿里集团帮助商家打造的开放电商云工作平台。它汇聚包括淘宝、 天猫、阿里云等整个平台资源和资源优势。同时依托于聚石塔,各种业务类型的服务商商家提供了如ERP、CRM、WMS等业务服务。

image

聚石塔的业务痛点

聚石塔的业务大致可以分为两个部分: 1.电商订单服务链路上的系统如ERP, CRM,WMS。 2. 电商行业中直接面向客户的小程序场景,如手淘与干牛的小程序。其业务痛点如下:

image

聚石塔技术特点—应用和发布标准化

K8s自带的滚动发布,虽然标准化了发布环节,但在发布期间无法暂停,即使服务起来了,可能功能和业务存在问题,最终也会随着滚动不断扩大影响面;对此,聚石塔设计了支持暂停的分批发布,通过提前批的“金丝雀”验证,从而提升系统的稳定性。

聚石塔技术特点—丰富的弹性扩容

对于电商等流量波动较大的场景,用户一般会把集群资源维持在日常流量的规模,并在流量高峰在来临前进行集群资源的扩容。ECI 的价格与同等规格ECS相近,且为按秒付费。秒级扩容。

聚石塔技术特点—应用监控

与传统应用相比,基于K8s容器实例是动态调度的、生命周期短,Deployment、Service 等容器上层抽象组件更是难以监控的,此外还需要底层ECS计算资源、实例生命周期、K8s集群 自身以及集群核心组件的各个维度的监控。

image

聚石塔技术特点—DNS 生产环境优化

聚石塔的用户大多是电商或小程序的场景,开发语言多样化,有些语言没有很好的连接池,导致DNS解析频繁。K8s默认的CoreDNS在高并发时会遇到性能瓶颈,因此聚石塔对DNS的性 能做了深入的优化,优化的手段主要有两种,分别是是Node Loacl DNS或Sidecar DNS。