QCon全球软件开发大会8折优惠倒计时最后3天,购票立减¥1760!了解详情 >>> 了解详情
写点什么

1 款工具实现自动 K8S 部署,提升开发速度

2021 年 1 月 11 日

1款工具实现自动K8S部署,提升开发速度

你或者你的团队是否正在寻找下一代架构?或者你已经拥有了这样的架构,但是仍然在探索自动化和管理的最佳方式。在本文中,我们将借助 env0 的能力来部署 Rancher 环境。


Rancher:开源 Kubernetes 管理平台


对于采用容器的团队来说,Rancher 是一个完整的软件堆栈。它解决了多 Kubernetes 集群管理的运维和安全挑战,同时为 DevOps 团队提供了运行容器化工作负载的集成工具。在本次 demo 中我们将使用 Rancher,您可以访问以下链接查看如何快速运行 Rancher:


https://github.com/rancher/quickstart


env0:基础架构自动化平台


env0 是一个基础架构自动化平台,它可以将 Terraform 及其他框架下的 deployment 集中到一个协作区,以方便你的整个团队使用。你可以通过下方链接登录并免费使用该产品:


https://app.env0.com/login


Rancher+env0 的神奇效果


自动化部署和摧毁环境是加速开发的关键要素。即使你只是将静态环境用于生产和开发这样的事情,有时你也需要重新部署以升级或者进行其他任务。例如,你可能正在重定位 deployment 到另一个区域或可用性区域,或者在动态环境中其他更大的用处,如每个拉取请求的环境。


将 Kubernetes 用于你的应用基础架构可以使这种开发变得更加容易,因为你已经准备好了你的应用配置部署文件,一旦新的集群启动和运行,就可以重新部署。当你的应用重新部署到新的基础架构并不是一项巨大的工程时,你就可以自由地在你认为合适的时候重新创建那个基础架构。而我们将使用 env0 来自动化该基础架构的拆除和重新部署,使其更加简单。访问以下链接免费注册:


https://app.env0.com/login


具体设置步骤


我们首先需要一些代码。请记住我在前文给你的 repo(https://github.com/rancher/quickstart)。在本例中,由于 AWS 中的身份和访问管理(IAM)设置,我们将使用该文件夹中的 AWS 文件夹,并进行微调。我们的团队将 AWS 中的 12 小时编程密钥用于我们的 lab account。此账户还需要“AWS Session Token”凭证。因此,标准的密钥对并不适用于我们。我在此使用的代码是经过修改的,具体内容可以访问以下链接:


https://github.com/vtimd/quickstart/tree/master/aws


我已经将这些 AWS 凭证作为全局变量放在 env0 中,以便我在之后的其他项目中能够随时使用它们。如果你为每个项目或环境分配不同的凭证集,你可以简单地将它们设置为项目级环境级变量。



全局变量


设置完成后,我们想要配置在项目中使用的模板。这是一个特别简单的过程——起名,然后把它指向我们要使用的 Github repo 就可以了。或者,如果你使用其他版本控制系统(VCS)提供程序,只需提供 URL 和 git token 进行 auth 就可以了。要设置这个模板,点击 Organization Templates 部分下方的 Create New Template 即可。



模板设置


如果我们访问项目,我们将看到 Create New Project 按钮。项目创建也极为简单,仅需命名和描述即可。完成这些之后,我们就进入项目模板中,对新创建的项目进行操作。



我们将模板分配到项目之后,可以开始部署我们的 Rancher 环境。


部署环境


现在我们到了一个有意思的部分。现在我们已经准备好部署 Rancher 环境。在 env0 平台中这是一个简单的过程。我们将启动我们刚刚创建的新项目,然后访问项目环境。在这里我们可以看到当前所有的环境并且可以启动一个新的环境。在这一页中,我们点击 Create New Environment



我们完成操作之后,我们将看到项目模板的页面以及可用的所有模板。由于我们只启用了 Rancher-Quickstart 模板,所以我们在这里应该看到的只有这个模板。我们继续点击 Run Now



在创建新环境的页面上,我们将填写环境名称、Workspace 名称(可选,因为如果你没有指定名称,env0 会自动生成一个)以及 Revision。我选择了在每次推送到 git 分支时选择重新部署。这基本上实现了环境的持续部署(CD),因为它将在每次推送时重新运行 env0 中的部署。


同时,我在 Destroy Environment 部分设置了一个自定义的 Time-To-Live(TTL)。由于仅仅为了本次 demo,我不希望它永远保留在这里。这是一个很好的功能,可以用于管理短期的 demo、沙箱或开发实例,如果你遗忘了这些已经启动的实例或环境,可能需要为此付费。


此前我们已经设置了变量部分,并且从组织层到项目层再到环境层这些都是继承的。如果产生了冲突,那么优先采用适用范围最小的变量。所以如果你想覆盖任何组织或项目变量,你可以在这里为这个特定环境注入它们。剩下要做的就是点击 Run



就这样,我们要开始部署了!



Deployment 1



Deployment 2


env0 会在部署完成后马上给你发送邮件。



Active 环境信息


当部署完成返回环境时,检查 Resources 标签页。这里,我们将找到在 Terraform 文件中所有的指定输出以及由 deployment 创建的 Resources。在这里我们将获取 rancher_server_url 以访问我们的新环境。



环境信息


在这里,当我们点击 URL 时,它会被复制到剪贴板。我们可以把它放到另一个标签页里,就可以看到 Rancher 登录页面啦。


总结


大功告成!我们已经介绍了什么是 Rancher 和 env0,为什么它们搭配使用很有效,以及如何设置 env0 以自动化部署 Rancher 与 Terraform 的 Kubernetes 环境。如果你遵循了本教程的步骤,那么现在你应该拥有一个超棒的 Kubernetes 工作环境以部署你的应用程序。所以,打开你的 YAML manifest,好好享受吧!


文章转载自:RancherLabs(ID:RancherLabs)

原文链接:1款工具实现自动K8S部署,提升开发速度

2021 年 1 月 11 日 07:002004

评论

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

总结笔记 Datawhale-23期数据挖掘-心跳信号分类预测

万里无云万里天

数据挖掘 6月日更 Datawhale

云网络开山之作,揭秘云上高速公路的十年技术成果!

博文视点Broadview

Chia奇亚云算力挖矿系统开发成功案例丨Chia奇亚挖矿源码成品

系统开发咨询1357O98O718

Grpc-go源码刨析

王博

基于MySQL Binlog 实现可配置的异构数据同步

王博

【Flutter 专题】115 图解自定义 View 之 Canvas (四) drawParagraph

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 6 月日更

书单 | 5月畅销新书情报,你最Pick哪一本?

博文视点Broadview

Flink+Alink,当大数据遇见机器学习!

博文视点Broadview

【Vue2.x源码学习】第一篇-源码环境搭建

Brave

源码 vue2 6月日更

[万字总结] 一文吃透 Webpack 核心原理

范文杰

前端 前端工程化 webpack 六月日更

《面试官:谈谈你对索引的认知》系列之B+树

架构精进之路

MySQL 索引结构 6 月日更

anyRTC SDK 5月迭代:优化自定义加密功能,让通信更安全

anyRTC开发者

音视频 WebRTC sdk

项目又延期了

escray

极客时间 学习笔记 朱赟的技术管理课 六月日更

40 图|硬核解析用 Mac M1 玩转 SpringCloud

悟空聊架构

Spring Cloud Mac SpringCloud Alibaba m1 6 月日更

react源码解析3.react源码架构

全栈潇晨

React React Hooks react源码

Rust从0到1-泛型-trait

rust 泛型 Trait generic

你的同事是你的竞争对手吗?

石云升

战略思考 职场经验 6月日更

云上创新,阿里云视频云分享全场景音视频服务背后的场景探索与技术实践

阿里云视频云

阿里云 音视频 在线教育 视频会议 直播技术

chia奇亚挖矿系统开发案例介绍丨chia奇亚挖矿源码功能

系统开发咨询1357O98O718

fil云算力系统开发具体流程丨fil云算力开发源码成品

系统开发咨询1357O98O718

Spring Cloud Alibaba 实战

Damon

微服务架构 SpringCloud Alibaba 6月日更

为什么说混合云是新基建的流行架构?

博文视点Broadview

C 语言面向对象的封装方式

实力程序员

毕业设计So Easy:珠穆朗玛FM音频电台APP

不脱发的程序猿

android 软件开发 APP开发 毕业设计 移动应用开发

拉仇恨!webhook + 企业微信给同事做了个代码提交监听工具

程序员内点事

Java GitHub 编程 程序员 代码

基于开源Tars的动态负载均衡实践

vivo互联网技术

负载均衡 TARS

自适应微服务治理背后的算法

万俊峰Kevin

go golang 自适应 服务治理 微服务治理

NQI质量基础设施“一站式”服务平台开发解决方案

源中瑞-龙先生

开发 解决方案 NQI 质量基础设施“一站式”

火爆全网的迁移学习简明手册全面更新,重磅出版上市!

博文视点Broadview

图表示学习+图神经网络:破解AI黑盒,揭示万物奥秘的钥匙!

博文视点Broadview

LeaRun .Net Core/Java工作流引擎,分离式前端,升级Vue

雯雯写代码

Vue 工作流引擎

移动应用开发的下一站

移动应用开发的下一站

1款工具实现自动K8S部署,提升开发速度-InfoQ