写点什么

在 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:45847
用户头像

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

关注

评论

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

vue2升级vue3: 全局变量挂载与类型声明

zhoulujun

Nebula Graph入驻阿里云计算巢,助力企业打造云上超大规模图数据库

阿里云弹性计算

spark 分布式 云原生 图数据库 计算巢

阿里云 ACK One、ACK 云原生 AI 套件新发布,解决算力时代下场景化需求

阿里巴巴云原生

阿里云 云原生 分布式云容器平台 ACK One ACK 云原生 AI 套件

Redis HyperLogLog 是什么?这些场景使用让我枪出如龙一笑破苍穹

码哥字节

redis HyperLogLog Redis 数据结构

C语言数组与指针练习题(原题+解析+原码)

未见花闻

6月月更

vue2升级vue3:Vue2/3插槽——vue3的jsx组件插槽slot怎么处理

zhoulujun

typescript Vue3 slots tsx slot

技术实践 | 场景导向的音视频通话体验优化

融云 RongCloud

flutter系列之:flutter中的IndexedStack

程序那些事

flutter 程序那些事 6月月更

vue-axios(一)

小恺

6月月更

vue2升级vue3:vue2 vue-i18n 升级到vue3搭配VueI18n v9

zhoulujun

国际化 i18n vue-i18n

必读书籍

玄兴梦影

学习 书籍 推荐书籍

Redis 做缓存场景引发的问题

Ayue、

redis

Vscode有什么好用的插件?

Jackpop

一行代码可以做什么?

Jackpop

AWS CloudWatch

冯亮

云计算 监控 AWS

vue2升级vue3:Vue3时jsx组件绑定自定义的事件、v-model、sync修

zhoulujun

Vue3 sync tsx

力扣每日一练之双指针1Day8

京与旧铺

6月月更

从-1开始实现一个中间件

艾小仙

Java 中间件 springboot

vue2升级vue3:TypeScript下vuex-module-decorators/vuex-class to vuex4.x

zhoulujun

vuex3

从摄影“鄙视链”说起,聊一聊XDR的安卓化之路

脑极体

【网关对比】Java亿级流量架构之网关设计思路

Java全栈架构师

Java 程序员 面试 微服务 架构师

小程序与工业互联网能够相辅相成的原因

Geek_99967b

小程序 小程序开发

数据库主键一定要自增吗?有哪些场景不建议自增?

CRMEB

拥抱开放,Serverless 时代的下一征程

阿里巴巴云原生

阿里云 Serverless 云原生 SAE

有哪些新手程序员不知道的小技巧?

Jackpop

小程序怎样关联微信小程序二维码,实现二码合一聚合

Geek_99967b

小程序 小程序容器

文件I/O

fy

UNIX系统

SQL操作:WITH表达式及其应用

华为云开发者联盟

数据库 sql 后端 华为云

pnpm 中无法使用 patch-package 打补丁

OpenHacker

前端 js

基于 K8s 的交付难题退退退!| 独家交付秘籍(第三回)

阿里巴巴云原生

阿里云 Kubernetes 云原生 应用交付平台

vue2升级vue3: Event Bus 替代方案

zhoulujun

Vue3 vue2 event bus

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