写点什么

在 mu 中推出对 EKS 的支持

  • 2019-10-14
  • 本文字数:1919 字

    阅读完需:约 6 分钟

在 mu 中推出对 EKS 的支持

在 Amazon EKS 上开始应用程序开发可能需要创建 Kubernetes 集群和代码库,还需要配置部署管道以将代码更改持续推送到集群。在本博文中,Stelligent 的 Casey Lee 展示了如何使用开源工具 mu 简化所有 AWS 资源的声明和管理,以便您可以专注于开发应用程序。


在前一篇博文使用 mu 轻松建造容器应用程序的管道中,我们看到了使用 mu 这一开源工具为容器工作负载构建 CI/CD 管道的速度有多快。这些管道利用 AWS CodeBuild 和 AWS CodePipeline 等服务编排其容器应用程序的构建和部署。此外,mu 还使用 Amazon Elastic Container Service (Amazon ECS) 运行工作负载。


在最近的一个版本中,mu 增加了对 Amazon Elastic Container Service for Kubernetes (Amazon EKS) 的支持。在本博文中,我们将演示如何使用 mu 设置 CI/CD 管道,以将应用程序部署到 EKS。首先,我们来看一下 mu 所创建的环境中重要的架构组件:


  • EKS 集群 – 由 EKS 作为托管服务提供的 Kubernetes 集群的控制层面。

  • EKS 工作程序节点 – 表示集群中工作程序节点的 EC2 实例的 Auto Scaling 组。

  • RBAC – 用于将 IAM 用户和角色关联到 Kubernetes 用户的 ConfigMap,以及从这些用户绑定到 Kubernetes 角色的角色。

  • Ingress 控制器 – 用于支持从外部访问集群内的服务的 NGINX Ingress 控制器。

  • 在 AWS 架构上使用 mu

  • 让我们试一试吧!


出于演示目的,我们将使用前一篇博文中的相同示例应用程序 (github.com/cplee/hello-nginx)。创建库分支并在本地克隆。mu.yml 需要对目标 EKS 进行一些更改:


#### Define 2 environments, both with `eks` provider###environments:- name: acceptance  provider: eks- name: production  provider: eks
#### Configure an ingress with a route for paths /*# to port 80 in the container###service: port: 80 pathPatterns: - /*#### Configure IAM user `casey.lee` with admin access# in the EKS cluster###rbac:- role: admin users: - casey.lee
复制代码


在使用 mu 构建管道之前,请提交更改并将更改推送回 GitHub。如果您是首次使用 mu,则可以运行以下命令下载 mu 二进制文件并将其添加到路径中:


curl -s https://getmu.io/install.sh | sh
复制代码


运行以下命令创建管道。此命令将提示您输入 GitHub 个人访问令牌,CodePipeline 需要该令牌才能配置提交挂钩。


mu pipeline up
复制代码



管道完成后,您的应用程序现在将在新创建的 EKS 集群上运行。由于 EKS 提供上游 Kubernetes 体验,因此您可以使用 kubectl 等工具与集群交互。默认情况下,只有 CloudFormation 用于预置 EKS 集群的 IAM 角色才有权管理集群中的资源。不过,我在上面的 mu.yml 中指定了我的 IAM 用户,因此我可以使用我的 IAM 凭证与集群通信。首先,我需要使用新集群的连接信息更新我的 kubeconfig:



接下来,使用创建的新上下文:



现在可以使用 kubectl 查看有关集群的基本信息:



此外,您还可以查看 Ingress 控制器和部署的示例应用程序的详细信息:



有关 EKS 集群的详细信息可以通过 mu 查看。另外,您还可以确定稍后用于测试应用程序的 ELB 的 URL:




为何要开放源代码?


在 Stelligent,我们帮助客户在 AWS 上建立了持续交付管道。我们的核心价值观之一是共享。我们希望对客户开放,让他们能够使用我们在与客户合作时使用的工具。通过开放 mu 的源代码,我们能够让客户在其客户群中对我们所用的工具有支配感。


创建和开发 mu 源代码的另一个目标是与社区分享我们的经验和观点,讨论实施这些管道的最佳做法。我们希望社区能够使用此工具以及根据他们的使用案例对其进行改进,并提供相关反馈,以便更好地解决我们努力解决的问题。


为 mu 做贡献!


如果您对容器工作负载的持续交付管道感兴趣,我们需要您的帮助! 参与方式如下:


  • 试用 – 访问 mu wiki 上的快速入门,下载并安装此工具。您还可以按照简短教程创建第一项服务。

  • 分享您的反馈 – 加入 Gitter 聊天室,询问问题,让我们知道您的想法。此外,如有任何功能请求,欢迎提出新问题。

  • 贡献 – 查看 GitHub 问题,针对即将推出的 EKS 功能提供帮助。随时可以提出拉取请求! 请访问贡献指南,了解更多详情。

  • Casey LeeCasey Lee

  • Casey Lee 是 Stelligent 的首席架构师 – Stelligent 是一家获得开发运营能力认证的核心级咨询合作伙伴,自 2009 年以来一直在 AWS 上实施持续交付解决方案。他已获得 AWS 开发运营工程师(专业级)和解决方案架构师(专业级)证书。过去 20 年里,无论就职初创公司还是财富 500 强企业,他一直负责组织软件系统的构建、实施和支持工作。


作者介绍:


Jeff Barr


AWS 首席布道师; 2004 年开始发布博客,此后便笔耕不辍。


本文转载自 AWS 技术博客。


原文链接:


https://amazonaws-china.com/cn/blogs/china/eks-support-mu/


2019-10-14 10:45856
用户头像

发布了 1929 篇内容, 共 155.2 次阅读, 收获喜欢 81 次。

关注

评论

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

【等保】等保3.0是什么意思?有等保3.0吗?

行云管家

网络安全 等保 等级保护 等保2.0

鱼龙混杂的低代码市场,企业选型需关注哪些重点?

优秀

低代码 企业数字化转型

请说说RPC的一个请求的流程是怎么样的?

热爱java的分享家

Java 架构 程序人生 编程语言 经验分享

SpringBoot+WebSocket实时监控异常

热爱java的分享家

Java spring 架构 程序人生 编程语言

SCTL 涅槃重生:投入 RAL 的怀抱

SphereEx

Java 数据库 大前端 ShardingSphere SCTL

问题也许没有看上去那么简单

神策技术社区

神策数据

Python量化数据仓库搭建系列1:数据库安装与操作

恒生LIGHT云社区

量化投资

一文读懂Hive数据存储格式

五分钟学大数据

11月日更

更改Apollo数据库为oracle

小鲍侃java

11月日更

想一个问题,在高并发中,如何部署奇数个节点?

热爱java的分享家

Java 架构 程序人生 编程语言 经验分享

动态模型之动态增减【FunTester测试框架】

FunTester

性能测试 接口测试 测试框架 FunTester 动态模型

腾讯北大合作的稀疏大模型训练加速方案HET入选国际顶会VLDB

科技热闻

flutter 开发中 vscode 插件推荐 2

坚果

flutter vscode 11月日更

【混合云小知识】混合云四种形式简单说明

行云管家

云计算 公有云 私有云 混合云 云管理

.NET6 引入Autofac

面向对象的猫

.net6 快速上手.net6

【高并发】从源码角度深度解析线程池是如何实现优雅退出的

冰河

Java 并发编程 多线程 高并发 异步编程

技术分享| 如何使用FFmpeg命令处理音视频

anyRTC开发者

音视频 WebRTC ffmpeg 视频通话

如何定义SpringBoot项目配置文件中密码的加密

热爱java的分享家

Java 架构 程序人生 编程语言 经验分享

uniapp+若依 开发租房小程序

詹Sir

大前端

一周信创舆情观察(11.8~11.14)

统小信uos

元数据管理在数据仓库的实践应用

大数据技术指南

11月日更

熵简技术谈 | 熵简科技在资管数据中台的探索与实践

熵简科技

数据挖掘 数据库 大数据 数据中台 数据分析

“阿里巴巴”再次出手,这份Github新开源303页Spring全家桶高级笔记,让你打开眼界

热爱java的分享家

Java 架构 面试 程序人生 编程语言

DOM操作造成的页面卡顿问题及解决

CRMEB

武林大会之国产数据库风云榜-2021年11月

墨天轮

数据库 opengauss oceanbase 国产数据库

一文让你彻底搞懂Spring状态及原理,实现订单与物流解耦

热爱java的分享家

Java 架构 程序人生 编程语言 经验分享

ApplePay应用内购(inapp)支付流程图

try catch

支付 applepay 苹果支付

Python爬虫采集,中介网互联网网站排行榜, 样本数量:58341

梦想橡皮擦

11月日更

AI界的革命!终于可以自动标注了!

百度大脑

人工智能 百度

​Qt全球峰会2021中国站深入解读最新Qt 6.2长周期版本,助力企业数字化转型

教你用SQL进行数据分析

华为云开发者联盟

Python sql 数据分析 数据 BI 分析工具

在 mu 中推出对 EKS 的支持_语言 & 开发_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章