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

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

发布时间:2019-09-15 22:24:25 所属栏目:建站 来源:Linux中国
导读:副标题#e# 在 Docker 和 Kubernetes 时代,软件开发的世界发生了怎样的变化?有可能使用这些技术一劳永逸地构建一个放之四海而皆准的架构吗?当所有东西都打包在容器中时,有可能统一开发和集成的过程吗?这些决策有什么要求?它们会带来什么限制?它们会让开发

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 注册表。这经常需要处理常用的镜像(数据库、通用服务或不需要频繁更改的服务)

日志收集和分析系统

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

(编辑:PHP编程网 - 襄阳站长网)

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