写点什么

Blue Matador 使用 Terraform 从自托管的 Kubernetes 迁移到 AWS EKS

  • 2019-06-20
  • 本文字数:1323 字

    阅读完需:约 4 分钟

Blue Matador 使用 Terraform 从自托管的 Kubernetes 迁移到 AWS EKS

Blue Matador 在比较了各种特性之后,将他们的 Kubernetes 基础设施从 AWS 实例上的kops托管集群迁移到了 AWS 的托管 Kubernetes 服务EKS。他们选择 EKS 是因为它有更好的安全模型、托管控制平面,而且可以降低他们特定用例的成本。在创建一个新的 Kubernetes 集群方面,kops 是赢家,而 EKS 在集群管理和安全性方面得分更高。InfoQ 联系了 Blue Matador 的软件工程师Keilan Jackson,进一步了解他们的经验。


EKS 的共享责任模型及其托管控制平面是迁移的主要原因。在 EKS 之前,Blue Matador 团队在 3 个 c4.large AWS 实例上运行他们自己的 Kubernetes 主节点。Kubernetes 的升级——包括 Bug 修复和安全补丁——都由团队负责。因为基础设施在 AWS 内部,所以 AWS 仍然提供了一个安全层,但是他们必须自己管理 Kubernetes 的特定安全问题。在私有网络、加密根卷和安全组控制等资源方面,Jackson 写道:“使用 kops 创建的 Kubernetes 集群的默认设置和 EKS 非常类似。”使用 EKS 设置一个新的集群需要做一些准备工作,但是,初始设置完成后,EKS 使集群管理更容易。


Blue Matador 主要使用Terraform来管理他们的 AWS 资源。Terraform 实现了跨云提供商的多种资源类型,但现实世界的使用情况揭示了其中的挑战。Jackson 谈到了他们面临的 EKS 特有的挑战:


我尽量利用社区构建的EKS模块。我遇到的主要问题是使用了 AWS 提供程序和 Terraform 的过期版本,然后将这个模块中的托管资源连接到我的外部托管资源,比如我们的主 ALB、RDS 实例等等。我建议从配置 EKS 的模块中输出一些 Terraform 变量,这样就可以在其他模块中引用它们,如下所示:

output “worker_role_arn” {

value = “${module.eks_cluster.worker_iam_role_arn}”

}


虽然 Terraform 可以很好地创建和管理 EKS 集群,但是后者依赖于相互关联的外围资源。Jackson 提供了详细的阐述:


除了运行 EKS 集群本身之外,EKS 还需要大量的资源。您必须配置工作节点、安全组、VPC 网络,并计划好在 EKS 提供新版本 Kubernetes 支持时进行更新。如果可能的话,一定要使用社区模块,因为它有助于正确连接这其中的许多基本资源,但是请记住,务必要按照您的安全需求仔细检查设置。例如,确保安全组只对需要它们的东西开放,确保工作节点不会获得公共 IP 地址,确保使用加密的 AMI 作为根设备。


在谈到集群规模时,Jackson 说,“集群的总大小还没有达到我们不得不在 kops 集群中使用超过 3 个主节点的程度,但重要的是,我们能够快速、轻松地扩展节点,并在 Kubernetes 新版本发布时更新到新版本。”


托管 Kubernetes 服务通常与他们平台的监控解决方案集成在一起。Jackson 解释了他们如何监控他们的集群:


我们主要依靠自己的产品 Blue Matador 实现 Kubernetes 集群报警。它会发现一些不健康的部署、关键节点事件、pod 内存耗尽等问题,并帮助我们监视集群的利用率。我们还使用 Datadog,但仅用于绘制几个自定义指标。我们关注 Amazon EKS 的 CloudWatch 容器洞察,但通常,CloudWatch 对 Kubernetes 而言不够活跃,因此,我不会依赖它来进行生产环境报警。


迁移还降低了团队的基础设施和监控成本。


查看英文原文Migrating From Self-Managed Kubernetes to AWS EKS Using Terraform at Blue Matador


2019-06-20 13:385675
用户头像

发布了 846 篇内容, 共 589.1 次阅读, 收获喜欢 1603 次。

关注

评论

发布
暂无评论
发现更多内容

基于 OPLG 从 0 到 1 构建统一可观测平台实践

阿里巴巴云原生

阿里云 分布式 云原生 可观测 全链路

从 VLAN 到 IPVLAN: 聊聊虚拟网络设备及其在云原生中的应用

阿里巴巴云原生

Linux 阿里云 云原生 容器服务 IPVLAN

今天面了个腾讯拿38K出来的大佬,让我见识到了Java面试八股文的天花板

Java全栈架构师

Java 数据库 spring 程序员 面试

Kubernetes日常故障解决

CTO技术共享

开源 签约计划第三季 8月月更

Kubernetes 集群 Ingress 网关

CTO技术共享

开源 签约计划第三季 8月月更

阿里内部高并发核心编程笔记:多线程、锁、JMM、JUC、设计模式

冉然学Java

JMM 设计模式 java; 多线程高并发

JOIN查询时,我为什么建议你将小表放在前面?(NLJ,SNL,BNL算法全面解析)

董哥的黑板报

MySQL 数据库 后端 服务端 db

深入浅出边缘云 | 5. 运行时控制

俞凡

架构 边缘计算 网络 深入浅出边缘云

Spring(二、配置文件)

开源 bean Spring JPA 8月月更

从没见过能把高并发拆解的这么详细!阿里巴巴这份堪称神级的“高并发”教程太香了

Java永远的神

Java 程序员 架构 面试 高并发

Web网页端IM产品RainbowChat-Web的v4.1版已发布

JackJiang

html5 前端 websocket 即时通讯 IM

兆骑科创双创服务平台,创新创业高层次人才引进,投融资对接

兆骑科创凤阁

一个可以提前结项的敏捷项目

Bruce Talk

敏捷 Agile 敏捷项目

兆骑科创创新创业大赛承办,线上直播路演,企业孵化

兆骑科创凤阁

阿里SpringCloudAlibaba实战小抄(第五版)GitHub独家首发开源

冉然学Java

GitHub 开源 springcloudAlibaba spring-boot

MySQL存储引擎

武师叔

8月月更

开源一夏 | 自从我使用HiFlow场景连接器后,在也不用担心成为“落汤鸡”了

叶秋学长

开源 8月月更 Hiflow

1500字简述 Apache ZooKeeper 的基本原理

wljslmz

Apache zookeeper 分布式 8月月更

阿里架构师力推jvm架构解析文档,把JVM调优实战讲的明明白白

Java工程师

Java JVM GC

六千字梳理 Node.js 的多进程模型和项目部署流程

昆吾kw

Node Express NGIN pm2

阿里巴巴2022全新出品亿级并发设计速成宝典(系统拆分,缓存,MQ,读写分离,分布分表,ES扩容应有尽有)

程序员小毕

Java 程序员 面试 后端 高并发

Istio的扩展和定制

阿泽🧸

istio 8月月更

迄今为止见过最详细的零拷贝技术讲解

C++后台开发

后端开发 零拷贝 Linux服务器开发 C/C++后台开发 C/C++开发

阿里大神级 最新Elasticsearch 笔记,抓紧学起来!

冉然学Java

elasticsearch 编程 分布式 java; 程序员、

Kubernetes 虚拟机部署弊端

CTO技术共享

开源 签约计划第三季 8月月更

STM32的启动过程 — startup_xxxx.s文件解析(MDK和GCC双环境)

矜辰所致

stm32 arm 8月月更 stm32启动流程 startup_xxxx.s

IPv6地址规划

穿过生命散发芬芳

ipv6 8月月更

STM32+果云GA6-GPRSGSM模块+MQTT+HTTP协议连接中移OneNet上传GPS数据定位

DS小龙哥

8月月更

设备树

贾献华

8月月更

Blue Matador 使用 Terraform 从自托管的 Kubernetes 迁移到 AWS EKS_软件工程_Hrishikesh Barua_InfoQ精选文章