在 AWS 上运行 Kubernetes 的真正简单方法
老实说,我经常觉得自己是一个Luddite。并不是说我反对进步或试图阻止炒作,不。但我经常认为,每一个新的、闪亮的框架或工具都只是重新设计和过度设计,在一两年内就会被其他工具取代......这清楚地表明了我与 Kubernetes 的关系。 不要误会我的意思,Kubernetes 是不可思议的。 AWS ECS、DC/OS(类固醇上的 Apache Mesos)和 Hashicorp Nomad
老实说,我经常觉得自己是一个Luddite。并不是说我反对进步或试图阻止炒作,不。但我经常认为,每一个新的、闪亮的框架或工具都只是重新设计和过度设计,在一两年内就会被其他工具取代......这清楚地表明了我与 Kubernetes 的关系。
不要误会我的意思,Kubernetes 是不可思议的。 AWS ECS、DC/OS(类固醇上的 Apache Mesos)和 Hashicorp Nomad 也是如此。
我对 Kubernetes 的问题是我们的路径从未相交。我的“第一个”编排系统是 DC/OS。之后,我运行了我在 ECS 上接触过的所有内容,因为它与 AWS 的集成比其他的更深。
当我和 K8s 终于见面时,K8s 才 1.16 岁,我只是一个经常说抽象语言的解决方案架构师。对我来说,它只是另一个任务调度程序。
在 DevOpsConf 2020 的小组讨论之后,Kubernetes 引起了我的注意,Andrei Kvapil问道:“如果我可以使用 Kubernetes Operators 运行自己的托管服务,那么使用 AWS 的托管服务有什么意义吗?”
[](https://res.cloudinary.com/practicaldev/image/fetch/s--IR4NoXTQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://images.prismic.io/ superpupertest/0e5ceedb-2b1b-4929-9925-2f0c878e6c2f_giphy.gif%3Fauto%3Dcompress%2Cformat)
当然!如果 Kubernetes 是一个云应用编排框架平台和其他流行语(不管你怎么称呼它,哈哈),那么在其中构建自己的云服务是非常有意义的!
使用主机约束和命名空间实现多租户,使用限制控制资源,使用标签和注释集成实体非常酷。但是对于作为 K8s 新手的我来说——信不信由你,在我的整个职业生涯中,我从来没有作为一名工程师使用过 Kubernetes——这需要大量时间才能让所有东西都启动并运行起来,这样我才能玩得开心......这就是在我从MadDevs发现这个repo之前,我想。
介绍强大的 AWS EKS 基础存储库!
样板你的出路
aws-eks-base 是一个包含一组基础架构和系统配置文件的存储库。它使用 Terraform 预置资源,部署到 AWS(EKS 是托管的 Kubernetes),并在 K8s 中运行多个支持系统,例如 Loki、Prometheus、构建系统等。
此设置令人兴奋的一点是,您为不同类型的资源预置了一个网络,这与 AWS 的网络最佳实践相一致。
[](https://res.cloudinary.com/practicaldev/image/fetch/s--1DCCL71q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://images.prismic.io/ superpupertest/8764967d-ca7e-42bd-82f3-5f594340da65_2%2Bprismic.png%3Fauto%3Dcompress%2Cformat%2522%2520width%3D%2522450%2522%2520height%3D%2522577)
您有一个用于存储层(数据库子网)的网络,一个用于无法访问 Internet 的内部系统的 Intranet 子网。您将参数存储在 SSM Parameter Store 中,并将图像存储在 ECR 中。它利用 Spots 和 On-Demands 实例的组合在您运行基础设施的 AWS 区域实现最佳定价。
这就是说,AWS 中的所有构建块都已就位,Kubernetes 也是如此:命名空间、入口控制器甚至节点终止处理程序都在基础设施到位后立即进行配置。
最好的一点——你如何运行它。设置远程存储后,请执行以下操作:
[](https://res.cloudinary.com/practicaldev/image/fetch/s---qFvNOAo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to- uploads.s3.amazonaws.com/uploads/articles/n30whq6m08m1eq7kxo2v.png)
就是这样。最重要的是,使用此样板文件还有其他优点!
可定制
为什么在拥有 eksctl 时需要一个代码库,它的作用大致相同?
好吧,eksctl 只提供集群本身。其余的基础设施需要到位。除此之外,您无法更改 eksctl 的内部结构,只能更改它将使用的参数。
它与基本回购不同。如果您想在整个堆栈中删除、更改或添加额外资源,您可以分叉存储库并添加您的代码。
就是这样。最重要的是,使用此样板文件还有其他优点!
教育
如果您是 K8s 的新手或在云中运行现代应用程序,并且不想在“Hello, World”应用程序上松懈,aws-eks-base 是一个很好的起点!
它包含用于管理 AWS 和 Kubernetes 的所有流行工具以及有用的 VS Code 插件。
它是围绕架构良好的基础架构构建的。
这使它成为一个很好的实践指南!
这是一个样板
不言而喻,aws-eks-base 是一个样板代码,因此您不必花费宝贵的时间从头开始一遍又一遍地编写相同的基础架构代码!它使用著名的 Terraform 模块并经常更新,因此您可以确保它不会包含过时的配置或软件。
接下来做什么
如果您正在研究在 AWS 上运行 Kubernetes 工作负载,并且一直在等待一种无缝的开始方式——那么等待就结束了!
如果你和我一样,在和中没有弄脏你的手,那么一定要留出一些时间来研究aws-eks-base。这将帮助您快速了解最新的工程和 DevOps 工具趋势。
分叉、运行、中断、在 GitHub 上提出问题,甚至更好——拉取请求!我敢肯定,MadDevs 欢迎每一个反馈!
之前发表在Karen Tovmasyan博客上。
更多推荐
所有评论(0)