关于腾讯云:如何使用容器镜像服务-TCR-轻松实现容器-DevOps

87次阅读

共计 3268 个字符,预计需要花费 9 分钟才能阅读完成。

作者周明,腾讯云容器产品工程师。目前次要负责腾讯云 TKE、TCR 等产品控制台的相干研发工作。

概述

当你应用云厂商提供的容器服务部署业务服务后,是否对交付部署全链路的效率有更高的需要,例如实现基于容器的 DevOps 服务,自动化地实现镜像构建以及集群内容器的镜像版本更新。腾讯云容器镜像服务 TCR 提供云原生利用交付流水线性能,全链路可追踪、可观测、可自主配置,让用户能够轻松实现代码提交变更后,主动触发镜像的构建和推送,并将镜像更新到容器服务 TKE、弹性容器服务 EKS 等平台创立的集群中,实现最终的交付,为企业级用户在腾讯云上提供一体化云原生 DevOps 解决方案。本文次要介绍如何应用容器镜像服务 TCR 轻松实现容器 DevOps。

容器镜像服务简介

容器镜像服务(Tencent Container Registry,TCR)是腾讯云提供的平安独享、高性能的容器镜像托管散发服务,反对 Docker 镜像、Helm Chart 存储散发及镜像平安扫描,为企业级客户提供了细颗粒度的拜访权限治理和网络访问控制。

容器 DevOps 业务流程

DevOps 是 Development 和 Operations 的组合词,代表着器重「软件开发人员(Dev)」和「IT 运维技术人员(Ops)」之间沟通单干的文化;旨在透过自动化「软件交付」和「架构变更」的流程,使得构建、测试、公布软件的过程可能更加地快捷、频繁和牢靠。TCR 与容器服务 TKE、CODING DevOps 等产品无缝集成,在腾讯云上提供一体化云原生 DevOps 解决方案,容器 DevOps 的根本业务流程如图所示。

如何应用容器镜像服务轻松实现容器 DevOps

前提条件

  • 筹备 TCR 企业版实例,创立镜像仓库。

    返回实例列表页面,新建企业版实例,对于如何创立可参考文档创立企业版实例,并在生成的实例中创立一个镜像仓库。

  • 筹备 TKE 规范集群,并部署容器利用

    返回 容器服务控制台,新建 TKE 规范集群,可参考文档 创立集群。

    以后容器服务 TKE 已反对在控制台内抉择容器镜像服务 TCR 企业版镜像创立工作负载。同时,TKE 规范集群可装置 TCR 专属插件,实现内网及免密拉取 TCR 企业版内镜像,参考文档 应用 TCR 企业版实例内容器镜像创立工作负载。

  • 开明 CODING DevOps 服务。

场景一:代码变动后主动构建镜像,并触发部署

操作场景

反对用户配置流水线,在代码变更后,主动构建镜像,并触发主动部署到容器平台。

操作步骤

配置交付流水线
  1. 登录容器镜像服务 TCR 控制台,抉择左侧导航栏中的【交付流水线】,在“交付流水线”页面中,单击【新建】。

  2. 在“根本信息”步骤中,配置以下参数,而后单击【下一步:镜像配置】。

    • 流水线名称:设置交付流水线名称。
    • 流水线形容:为交付流水线增加形容信息,创立后可批改。
  3. 在“镜像配置”步骤中,配置以下参数,单击【下一步:利用部署】。

    • 镜像仓库:抉择交付流水线关联的镜像仓库,将主动配置镜像构建及推送,用于托管利用部署所须要的镜像。
    • 镜像版本过滤

      :反对对执行交付流水线中镜像的版本进行限度,能够过滤掉不须要执行部署的镜像版本。

      • 间接部署任意版本:推送到镜像仓库的任意版本镜像都会被部署。
      • 仅部署指定名称版本:需指定镜像版本,多个版本能够应用逗号分隔,非指定版本不会部署。
      • 仅部署指定规定版本:需输出正则表达式。
    • 镜像起源:反对平台构建镜像和本地推送镜像。平台构建镜像容许用户关联不同代码托管平台的代码仓库,当代码变动时主动触发交付流水线,实现主动构建、推送镜像以及利用部署;本地推送镜像反对用户在手动推送镜像时,也能触发利用部署。场景一中咱们抉择平台构建镜像。
    • 代码源、代码仓库:抉择用于构建镜像的代码仓库,流水线将拉取该代码仓库内源代码进行编译及构建,首次抉择须要受权。目前已反对 GitHub、私有 GitLab、公有 GitLab、码云以及工蜂等代码托管平台。
    • 触发规定

      :镜像构建被主动触发的规定条件。目前反对以下四种场景:

      • 推送到指定分支触发:需指定分支。
      • 推送新标签时触发构建:新建标签并推送时触发。
      • 推送到分支时触发构建:推送至任意分支时触发,无需指定分支。
      • 合乎分支或标签规定时构建:需输出正则表达式,例如 ^refs/heads/master$,可匹配 master 分支进行触发。
    • Dockerfile 门路:镜像构建执行的操作基于代码仓库内的 Dockerfile,需指定该 Dockerfile 文件的门路。如不指定,默认为代码仓库根目录下名为 Dockerfile 的文件。
    • 构建目录:镜像构建执行的工作目录,即上下文环境(context),默认为代码仓库的根目录。
    • 版本规定:定义镜像构建生成的镜像名称,即镜像版本(tag)。反对配置自定义前缀,并组合退出“分支 / 标签”,“更新工夫”,“commit 号”三个环境变量。其中,更新工夫为执行 docker tag 指令时构建服务的零碎工夫。
  4. 在“利用部署”步骤中,配置以下参数,单击【确定】。

    • 部署平台:交付流水线同时反对容器服务 TKE,弹性容器服务 EKS 及边缘容器服务 Edge。本文以容器服务 TKE 为例。
    • 部署地区:指标集群所在地区。抉择已创立的 TKE 规范集群所在地区。
    • 部署集群:指标集群。抉择已创立的 TKE 规范集群。
    • 部署形式:以后仅反对“更新已有工作负载”。
    • 命名空间:已部署利用所在的命名空间。
    • 工作负载:已部署利用的关联工作负载。
    • Pod 容器:已部署利用的工作负载内的 Pod 容器。

实现以上配置后,可在“交付流水线”列表页查看新建的流水线。

更新容器利用

实现以上配置后,即可在更新利用代码后,主动触发镜像构建,推送及利用更新。

  1. 更新源代码
    更新源代码,并提交至远端代码仓库。
  2. 执行流水线

    源代码推送实现后,如合乎镜像配置中镜像构建的触发条件,将触发流水线执行。可点击流水线查看该流水线执行记录,并查看具体步骤进度。

    • Checkout:检出代码。
    • Docker Build:基于镜像构建配置进行镜像构建,并为生成的镜像打上指定规定的 Tag,如 v-{tag}-{date}-{commit}。
    • Docker Push:推送镜像,主动推送至关联镜像仓库内。
    • Deploy To TKE:应用最新推送的镜像更新关联工作负载及 Pod 内同名镜像。
    1. 查看利用更新状态
      返回容器服务 TKE 控制台,进入上述集群及工作负载详情页,并抉择订正历史,可查看利用更新状态。如下图所示,v1 版本是一开始手动部署的 nginx 镜像,流水线执行实现后更新为 v2 版本,应用的是主动构建进去的新的镜像。

      能够间接拜访该应用服务,查看是否已更新。通过查看 Servce 裸露到公网的地址,查看后果,能够看到服务曾经更新。

    场景二:本地推送镜像后,主动触发部署

    操作场景

    在某些场景可能不须要应用 TCR 镜像主动构建能力,但又心愿能够在推送镜像后可能主动部署到容器平台。TCR 反对用户配置本地推送镜像后,通过触发器的能力,主动触发镜像部署。

    操作步骤

    配置交付流水线

    参考场景一配置新建一条交付流水线,与场景一的区别在“镜像配置”步骤中,将”镜像起源“抉择为”本地推送镜像“。

    更新容器利用

    实现配置后,即可在本地应用命令行指令推送镜像,触发主动部署。

    1. 本地推送镜像

      通过快捷指令咱们能够登录腾讯云容器镜像服务 Docker Registry 并向 Registry 中推送镜像。例如这里推送一个 nginx 镜像。

    2. 执行流水线
      本地推动镜像实现后,如合乎镜像配置中镜像构建的触发条件,将触发流水线执行,因为此时镜像曾经筹备好,因而流水线只须要执行主动部署。
    3. 查看利用更新状态

      同场景一,咱们能够返回容器服务 TKE 控制台,进入上述集群及工作负载详情页,并抉择订正历史,可查看利用更新状态,也可间接拜访该应用服务,查看是否已更新。

    总结

    本文分两个场景介绍了如何应用容器镜像服务 TCR 实现容器 DevOps。场景一是代码变动后,主动触发镜像构建以及利用部署;场景二是本地推送镜像后主动触发利用部署。想要疾速上手应用容器镜像服务 TCR、容器服务 TKE 实际 CD 流程,本文是个很好的参考。

    【腾讯云原生】云说新品、云研新术、云游新活、云赏资讯,扫码关注同名公众号,及时获取更多干货!!

    正文完
     0