EKS使用预加载机制加速EC2 Nodegroup上大镜像的启动速度

EKS动手实验合集请参考这里

目录

  • 一、背景
  • 二、测试环境准备
  • 三、应用Yaml是否打开缓存开关的对比
  • 四、使用EventBridge构建预加载
  • 五、验证预缓存机制生效
  • 六、参考文档

一、背景

在机器学习等场景下,需要在EKS上运行较大体积的Pod,其Image体积可能达到数个GB。此时在第一次启动Pod时候,会遇到所谓的冷启动问题,也就是EC2 Nodegroup需要从ECR容器镜像仓库去拉取较大尺寸的镜像,然后才能启动Pod。后续启动相同镜像即可利用缓存无须重复下载。此时,可以使用本文介绍的方法优化冷启动时间长。

Continue reading “EKS使用预加载机制加速EC2 Nodegroup上大镜像的启动速度”

使用Kubecost管理EKS成本

EKS动手实验合集请参考这里

一、简介

Kubecost是基于OpenCost的云原生的成本管理工具。在不使用Kubecost情况下,管理EKS的cost一般是基于预留实例的EC2 Node,并人为划分服务资源进行分割,某些情况下还需要搭配Cost and Usage Reports(CUR)详单。

使用Kubecost,可以在相对直观的看到各Deployment/Service对应的相应费用,并根据服务的运行时长显示对应成本。Kubecost免费版可通过Helm在EKS上快速部署。如果需要更多功能,还需要使用商业版的Kubecost。本文介绍如何部署免费版的Kubecost。

Continue reading “使用Kubecost管理EKS成本”

测试EKS服务上Pod使用VPC CNI对网络吞吐性能的影响

EKS动手实验合集请参考这里

一、背景

在EC2的网络优化机型上,例如c6in.8xlarge(32vCPU/64GB),其网络带宽达到50Gbps。在没有容器环境下,使用iperf2测试,其带宽可以49.7Gbps的吞吐,相当于标称值的99.4%,考虑统计差异,这个速度可认为几乎没有损耗。测试过程和方法参考这篇博客。

那么当场景来到EKS上,Pod的所有流量都是通过Node节点上的VPC CNI进行转发,此时压力测试的其中一端是非容器化的EC2,另一端是Pod容器,会发生什么情况?

Continue reading “测试EKS服务上Pod使用VPC CNI对网络吞吐性能的影响”

截止2023年reInvent最新一代CPU处理器型号详情

请注意:7系列的EC2 AMD处理器机型的vCPU内核定义有变化,默认禁用超线程,因此m7a/c7a/r7a性能大幅提升,相应机型定价也高于6系列。官方解释参考本文末尾。

一、背景

2023年AWS新发布了7i/7a系列EC2实例,再加上此前发布的7g系列,机型选择非常丰富。这里把常用几种CPU类型汇总如下。

Continue reading “截止2023年reInvent最新一代CPU处理器型号详情”

MySQL 5.7→8.0升级相关FAQ

目录

Continue reading “MySQL 5.7→8.0升级相关FAQ”

在高度安全的纯内网使用Session Manager登录EC2

Session Manager基础知识请参考这篇文章。本文只针对严格受限的纯内网场景编写,一些操作细节略过。

一、背景

Session Manager是非常好用的EC2远程连接和管理工具,之前在这篇博客中有过系统讲解。Session Manager的使用前提是本VPC的EC2能够具备出向互联网访问,连接到本Region的Session Manager位于互联网的Endpoint。

那么对于一个完全内网的环境,没有默认路由0.0.0.0/0去往互联网或NAT Gateway,甚至没有Internet Gateway(IGW),完全是封闭的内网。此时,如何使用Session Manager?此时可通过Endpoint实现。此外,由于各种依赖条件比较多,因此编写本篇文章。

Continue reading “在高度安全的纯内网使用Session Manager登录EC2”

将EC2手工加入EKS集群成为托管节点

EKS动手实验合集请参考这里

一、背景

1、EKS服务使用EC2的两种模式

EKS服务使用EC2的两种模式

  • 使用EKS自动生成的托管节点组:在EKS服务控制台或者通过eksctl命令完成,EKS会自动使用最新镜像,全自动创建,并使用Autoscaling缩放;如果是通过eksctl脚本,还会自动创建合适的IAM角色;这时候EC2会在托管节点组内。
  • 使用EKS提供的AMI以托管节点方式自行加入集群:使用EKS官方提供的基础镜像,手工创建一个EC2,并手工配置IAM角色,然后使用bootstrap.sh脚本,将本EC2加入EKS集群;这时候EC2会成为托管节点,但不会进入上一步的托管节点组。

以上两种方式,都是EKS托管节点,意味着EKS可有效进行版本升级等管理。不过不在节点组中的EC2不能参与缩放,当节点不够用时候,需要手工拉起新的节点。

本文介绍第二种方式的使用。

Continue reading “将EC2手工加入EKS集群成为托管节点”

生成VPC Flowlog并输出到CloudWatch用于分析VPC流量

一、背景

VPC Flowlog是用于采集VPC内四层网络流量的工具。其采集对象包括EC2、NLB、RDS等之间和外部网络之间的流量。VPC Flowlog是OSI模型第四层采集工具,会记录源地址、源端口、目标地址、目标端口、协议、传输数据量等信息,但不会记录OSI模型第七层定义的域名、网址等属于应用层定义的日志,也不会记录发送的数据本体。VPC Flowlog常用于排查EC2相关网络错误。

本文介绍如何开启VPC Flowlog并输出到CloudWatch用于查看VPC内流量。

Continue reading “生成VPC Flowlog并输出到CloudWatch用于分析VPC流量”

在某定制AMI和定制内核版本的CentOS上调查ENA驱动版本低导致的EC2不能运行在6系列机型的问题

一、背景

从IDC导入的CentOS 7.4系统,没有使用系统自带的3.10内核,而是定制了4.11内核。之前安装包含EC2需要的ENA网卡驱动,在5系列机型上可启动,在6系列机型上启动时候健康检查停留在1/2的不正常状态。查看EC2运行状态截图和EC2串口控制台,发现是网络启动失败,也就是没有识别到网卡。

本文描述了排查过程如下。

Continue reading “在某定制AMI和定制内核版本的CentOS上调查ENA驱动版本低导致的EC2不能运行在6系列机型的问题”