加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

神话还是现实?Docker 和 Kubernetes 架构

发布时间:2019-09-13 16:08:40 所属栏目:建站 来源:Linux中国
导读:在 Docker 和 Kubernetes 期间,软件开拓的天下产生了奈何的变革?有也许行使这些技能一劳永逸地构建一个放之四海而皆准的架构吗?当全部对象都打包在容器中时,有也许同一开拓和集成的进程吗?这些决定有什么要求?它们会带来什么限定?它们会闪开拓职员的糊口

固然 Kubernetes 只要求在物理呆板/云假造机上的少量组件(docker、kubelet、kube proxy、etcd 集群),但你如故必要可以或许自动化完成添加新呆板和对集群举办打点。以下是几个简朴的要领:

  • KOPS — 这个器材应承你在两个公有云 (AWS 或 GCE)上安装集群
  • Teraform — 这个器材让你可以打点任何情形的基本架构,并遵循 IAC( 基本架构即代码(Infrastructure as Code))的头脑
  • Ansible — 用于构建任何范例自动化的通用器材

就我小我私人而言,我更喜好第 3 个选项(加上一个 Kubernetes 集成模块 ),由于它应承我同时行使处事器和 k8s 工具,并实现任何范例的自动化。然而,没有什么能阻止你行使 Teraform 及其 Kubernetes 模块 。KOPS 不能很好地行使“裸机”,可是它如故是一个很好的行使 AWS/GCE 的器材!

Git 代码库和使命跟踪器

神话照旧实际?Docker 和 Kubernetes 架构

不消说,要为开拓职员和其他相干脚色提供全面的事变情形,你必要有一个团队协作和代码存储的处所。我很难确定哪种处事是最吻合的,但我小我私人最喜好的使命跟踪器材是 redmine (免费)或 Jira (付费)。对代码库而言,有较量老牌的 gerrit (免费)或 bitbucket (付费)。

值得留意的是,企业情形中协作事变的两个最同等的器材(尽量是贸易版本的)是: Atlassian 和 Jetbrains 。你可以行使它们中的任何一个作为独立的办理方案,可能将两者的各类组件团结起来。

要充实操作使命跟踪器和代码库的组合,请思量它们的集成计策。譬喻,以下是一些确保代码和相干使命关联性的提醒(虽然,你也可以选择本身的要领):

  • 只有当试图 推送(push)的分支存在响应的使命号(如:TASK-1/feature-34)时,才气提交到长途代码库中
  • 任何分支只有在必然数目的及格代码复查迭代之后才可以举办归并
  • 假如响应的使命不是 “举办中”(In Progress)或相同状态,则任何分支都应被阻止和禁用,以备未来更新
  • 任何旨在实现自动化的步调都不该该直接提供应开拓职员行使
  • 只有颠末授权的开拓职员才气直接修改master主分支—其余的统统都由自动化呆板人节制
  • 假如响应的使命处于 “交付”(For Delivery)或相同状态之外的任何状态,则分支不行用于归并

Docker 注册表

神话照旧实际?Docker 和 Kubernetes 架构

应出格留意 Docker 镜像打点体系,由于它对付存储和交付处事至关重要。另外,该体系应该支持用户和用户组的会见,可以或许删除旧的和不须要的镜像,提供图形用户界面和 RESTful 应用编程接口。

你可以行使云办理方案(譬喻, hub.docker.com )或私有托管处事,乃至可以安装在你的 Kubernetes 集群中。作为 Docker 注册表的企业办理方案, Vmware Harbor 就是一个很好的例子。最坏的环境是,假如你只想存储镜像,而不必要伟大的体系,你就直接行使 Docker Registry 好了。

CI/CD 和处事交付体系

神话照旧实际?Docker 和 Kubernetes 架构

我们之前接头过的组件(git 存储库、使命跟踪器、带有 Ansible 脚本的元项目、外部依靠项)都不能像悬浮在真空中一样互相分隔运行。将它们毗连起来的是一连集成和交付处事。

CI —  一连集成 (Continuous Integration)

CD —  一连交付(Continuous Delivery)

处事应该足够简朴,而且没有任何与体系交付或设置相干的逻辑。CI/CD 处事应该做的就是对外部天下的变乱(git 存储库中的变革,使命跟踪器中使命的移动)做出回响,并启动元项目中描写的操纵。另外,CI/CD 处事是打点全部代码存储库的节制点和打点它们的器材(代码分支归并、来自上游/主分支的更新)。

我行使过一个来自 Jetbrains 的 器材 TeamCity ,这是一个相等强盛但很是简朴的器材。可是你也可以抉择实行其他对象,好比免费的 Jenkins 。

在我们上面描写的方案中,集成处事首要认真启动四个首要流程和一个帮助流程,如下所示:

  • 自动化处事测试 — 凡是环境下,对单一代码库而言,当分支状态改变或状态改变为“守候自动测试”(或相同环境)时
  • 处事交付 — 凡是来自元项目和多个处事(别离来自于差异的代码库),当 QA 测试和出产情形陈设的状态别离变动为 “守候展示”(Awaiting Showroom)或 “守候交付”(Awaiting Delivery)时
  • 回滚 — 凡是来自元项目和单个处事或整个处事的特定部门,由外部变乱或在交付不乐成的环境下触发
  • 处事移除 — 这是从单个 测试情形(showroom)中完全移除整个生态体系所必须的,当 测试中(In QA)状态已逾期或不再必要该情形时
  • 镜像构建器(帮助进程) — 可以集成随处事交付进程中,可能独立地用于编译 Docker 镜像并将其发送到 Docker 注册表。这常常必要处理赏罚常用的镜像(数据库、通用处事或不必要频仍变动的处事)

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读