详情页标题前

腾讯云容器服务使用 CODING 在 TKE 中快速实现容器 DevOps同尘科技

详情页1

概述

DevOps 理念被越来越多的企业采纳,DevOps 是 Development 和 Operations 的组合词,代表着重视“软件开发人员(Dev)”和 “IT 运维技术人员(Ops)”之间沟通合作的文化,旨在透过自动化“软件交付”和“架构变更”的流程,使得构建、测试、发布软件的过程能够更加地快捷、频繁和可靠。在云原生时代,使用 DevOps 思维可实现敏捷开发,本文将介绍和实践专为云原生打造的 TKE 容器 DevOps 服务,实现从代码提交时触发镜像自动构建,镜像构建成功时触发自动部署流程将应用部署、更新到 TKE 集群中的一整套无缝衔接的 Devops 流水线。

TKE 容器 DevOps

简介

TKE 容器 DevOps 是 容器服务 TKE、容器镜像服务 TCR 和 CODING DevOps 服务紧密结合,面向容器业务场景,具备自动化代码编译、容器镜像构建、镜像推送及应用部署等功能,为客户提供强大的一站式云原生 DevOps 服务。容器 DevOps 快速入门请参见 TKE 和 Coding 协同业务实现快速迭代。

业务流程

TKE 容器 DevOps 服务贯穿了整个应用开发和部署流程的全生命周期管理,实现了从更新代码到应用部署、更新的自动化,业务流程如下图所示:

腾讯云容器服务使用 CODING 在 TKE 中快速实现容器 DevOps同尘科技



前提条件

已创建 TKE 测试集群,创建过程可参见 部署容器服务 TKE。 开通 TCR 服务。并已创建可访问的 TCR 测试实例和生成测试实例访问凭证,TCR 需要开通企业标准版或高级版支持云原生交付工作流,详情请参见 容器镜像服务购买指南。目前 TCR 支持区域请参见 支持地域。 已开通 CODING DevOps 服务,并已创建和完善 Coding Devops 团队。如使用子账号进行操作,请使用主账号在 CODING DevOps 控制台 快速创建拥有权限的子用户或参考 子用户权限设置 提前为子账号授予对应实例的操作权限。

操作步骤

TKE 容器 Devops 功能提供了强大的云原生 Devops 服务,本文将介绍 TKE 容器 Devops 如何实现从源码更新到业务发布的整套自动化流程。

访问容器 DevOps

登录容器服务控制台,选择左侧导航栏中的 DevOps,单击立即使用。如下图所示:

腾讯云容器服务使用 CODING 在 TKE 中快速实现容器 DevOps同尘科技



配置代码托管

在 Coding 团队主页面创建一个测试项目和测试代码仓库,创建步骤请参见 创建项目并创建代码仓库。关于 Coding 代码托管介绍请参见 代码托管介绍。

创建构建计划

1. 登录 Coding DevOps ,选择左侧导航中的 项目,进入项目管理页。 2.项目管理页中,单击已创建 测试项目 的名称,进入该项目详情页。 3. 在左侧导航栏中选择持续集成 > 构建计划 > 创建构建计划,进入选择构建计划模板页面。 说明构建计划是持续集成的基本单元,可以通过选择构建计划模板快速创建一个构建计划,详情请参见 快速开始持续集成。 4. 选择构建镜像并推送到 TCR 企业版模板快速创建一个构建计划,如下图所示:

腾讯云容器服务使用 CODING 在 TKE 中快速实现容器 DevOps同尘科技


根据构建计划模板选择需要检出的代码源和配置 TCR 访问凭证相关环境变量,在右边可查看模板生成的 Jenkinsfile 预览,如下图所示:说明Coding DevOps 和 TCR 实例之间内网互通,镜像 push 默认使用内网传输,无需另外配置。 

腾讯云容器服务使用 CODING 在 TKE 中快速实现容器 DevOps同尘科技


使用构建模板生成的构建项目,也可通过在构建计划详情页中选择项目名称,进入项目详情页后单击设置菜单对构建详情进行自定义配置,构建计划配置页面如下图所示:

腾讯云容器服务使用 CODING 在 TKE 中快速实现容器 DevOps同尘科技

基础信息基础配置页面可选择代码源和节点池等基础配置,节点池相关说明请参见 构建节点。 流程配置用来配置运行构建任务的环境,相关说明请参见 构建环境。 触发规则用来配置构建计划的触发规则,可支持通过多种方式来触发构建计划,相关说明请参见 触发规则。 变量与缓存环境变量与缓存配置,相关说明请参见 环境变量 和 缓存目录。 通知提醒构建计划完成时可向指定的 Coding 团队成员发送通知提醒。5. 单击确认即可完成创建构建计划。 6. (可选)在项目配置 > 开发者选项 > WebHook 中选择新建 WebHook,将事件通知推送到企业微信等即时通信平台,详情请参见 WebHook 和 绑定企业微信群机器人。更多关于 Coding 持续集成的介绍请参见 持续集成介绍。

创建持续部署

1. 登录 Coding DevOps,选择左侧导航中的 项目,进入项目管理页。 2.项目管理页中,单击已创建 测试项目 的名称,进入该项目详情页。 3. 在左侧导航栏中选择持续部署 > Kubernetes,单击快速体验。如下图所示:

腾讯云容器服务使用 CODING 在 TKE 中快速实现容器 DevOps同尘科技


4.部署控制台页面,自定义选择 需要配置的云账号 类型即可继续进行 配置应用和流程、关联项目和应用 及 开始部署 等后续步骤。

配置云账号

如何选择云账号类型请参见 云账号 官方文档,添加配置部署云上资源的访问云账号信息,可以选择腾讯云 TKE 或者 Kubernetes 类型的云账号,输入相关认证配置添加云账号,本文以选择 Kubernetes 为例介绍如何配置云账号。 1.基于 Kubernetes 的持续部署页面,单击立即配置。 2.云账号管理页面,单击右侧的绑定云账号。 3.绑定云账号页面,选择 Kubernetes,其他内容按需选择。如下图所示:

腾讯云容器服务使用 CODING 在 TKE 中快速实现容器 DevOps同尘科技

4. 单击确定即可完成绑定云账号。

配置应用和流程

关于 Coding 应用与项目相关说明请参见 应用与项目 和 流程配置,本文将介绍配置应用和流程过程中的关键配置项。 1. 在创建应用时,需要勾选 Kubernetes(TKE) 部署方式,如下图所示:

腾讯云容器服务使用 CODING 在 TKE 中快速实现容器 DevOps同尘科技

2. 在新建的应用中创建部署流程时,选择 Kubernetes 流程模板,再根据实际需要选择模板流程,本文以“部署 Deployment 和 Service 到 Kubernetes 集群”流程为例。如下图所示:

腾讯云容器服务使用 CODING 在 TKE 中快速实现容器 DevOps同尘科技

3.部署流程中配置部署流程时,启动所需制品选项关联之前的持续集成环节生成的 TCR 仓库镜像制品。如下图所示:

腾讯云容器服务使用 CODING 在 TKE 中快速实现容器 DevOps同尘科技

4. 使用自动触发器绑定 TCR 仓库镜像制品,当有新版本镜像构建成功时,将自动触发部署流程。配置方式如下图所示:

腾讯云容器服务使用 CODING 在 TKE 中快速实现容器 DevOps同尘科技

5. 配置部署 Deployment部署 Service部署阶段,两个阶段的配置方式类似,选择添加有部署权限的 云账号 和填写自定义的 Manifest,即自定义部署 YAML 模板。

腾讯云容器服务使用 CODING 在 TKE 中快速实现容器 DevOps同尘科技


本文将以“手动配置 TKE 拉取 TCR 私有仓库镜像的访问凭证” 的方式为例,自定义 Deployment YAML。示例如下:注意本示例仅使用简单的 Deployment YAML 部署到 Kubernetes 集群,使用了默认的滚动部署(RollingUpdate)更新策略。实际上,可以借助 Nginx-ingress / Istio 等工具配置更高级的更新策略,如蓝绿发布、金丝雀、A / B 测试等,具体使用方法可参见 蓝绿发布、Nginx-ingress 实现自动化灰度发布、持续部署 + TKE Mesh 灰度发布实践。

apiVersion: apps/v1kind: Deploymentmetadata:  name: devops-appspec:  replicas: 2  selector:    matchLabels:      app: devops-app  template:    metadata:      labels:        app: devops-app    spec:      containers:      - image: xxx-test.tencentcloudcr.com/xxx-test/jokey-test  # 示例镜像地址        name: devops-app        ports:        - containerPort: 5000      imagePullSecrets:  # 私有仓库访问凭证配置       - name: tcr-secret # 访问凭证 secret

其中,spec.template.spec.containers.*.image 的镜像地址字段包含在 Coding 的转换匹配规则中,关于转换匹配规则的说明可参见 在 manifest 中绑定制品。 说明 TKE 拉取 TCR 私有仓库镜像有两种方式:在 TCR 支持区域内可配置 TKE 免密拉取 TCR 容器镜像,关于 TCR 支持区域请参见 支持地域,关于如何配置可参见 TKE 集群使用 TCR 插件内网免密拉取容器镜像。 手动配置 TKE 拉取 TCR 私有仓库镜像的访问凭证,配置方式可参见 TKE 配置私有仓库访问示例 。自定义的 Service Manifest YAML 示例:

apiVersion: v1kind: Servicemetadata:  labels:    app: devops-svc  name: devops-svcspec:  ports:  - port: 5000  protocol: TCP  selector:    app: devops-app

6. (可选)为部署流程的每个阶段配置自定义事件通知,可方便快捷获知部署流程执行情况。本文以配置“企业微信”通知方式,获取企业微信 Webbook 机器人链接的方法可参见 创建企业微信群机器人。

关联项目和应用

关联项目和应用配置可参见 项目和应用关联。

开始部署

提单发布使用和配置请参见 新建发布单。更多关于 Coding 持续部署的详细介绍请参见 持续部署介绍。

测试验证

在项目代码文件中修改添加如下图所示的 v2 API 代码后提交 master 分支:

腾讯云容器服务使用 CODING 在 TKE 中快速实现容器 DevOps同尘科技


由于持续集成中的构建计划使用了 “代码更新时自动执行” 的事件触发配置,了解相关触发配置请参见 触发规则。当提交修改的代码时,会自动触发关联的构建计划执行,如下图所示:

腾讯云容器服务使用 CODING 在 TKE 中快速实现容器 DevOps同尘科技


如果为持续集成配置企业微信 Webhook 通知,企业微信也会收到相应的即时通知消息,如下图所示:

腾讯云容器服务使用 CODING 在 TKE 中快速实现容器 DevOps同尘科技


当构建计划生成 Docker 镜像制品时,又会自动触发关联的持续部署流程,将新的镜像应用更新到 TKE 集群中,如下图所示:

腾讯云容器服务使用 CODING 在 TKE 中快速实现容器 DevOps同尘科技


如果部署流程有配置企业微信通知的话,当部署流程任务完成时,会收到对应的企业微信部署完成通知,如下图所示:

腾讯云容器服务使用 CODING 在 TKE 中快速实现容器 DevOps同尘科技


此时,可以在 TKE 中看到已经成功更新了工作负载,如下图所示:

腾讯云容器服务使用 CODING 在 TKE 中快速实现容器 DevOps同尘科技


从测试验证结果可以看出,我们在 TKE 中实现了从源码更新到业务发布的整套 DevOps 流程。
容器服务官网1折活动,限时活动,即将结束,速速收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠

转转请注明出处:https://www.yunxiaoer.com/148642.html

(0)
上一篇 2023年12月9日 下午12:58
下一篇 2023年12月9日 下午12:59
详情页2

相关推荐

  • 阿里云RDS数据库AliPG功能模块-云淘科技

    本文介绍AliPG特有的功能模块,包括高权限账号、时空引擎、读写外部数据、并发控制等。 功能模块介绍 类别 功能 描述 账号权限 rds_superuser AliPG提供的rds_superuser是介于普通用户和superuser之间的一种用户,对应的账号称为高权限账号。由于云上环境的安全原因,AliPG不直接提供superuser,但是提供rds_su…

    阿里云数据库 2023年12月9日
  • 阿里云RDS数据库PostgreSQL只读实例简介-云淘科技

    在对数据库有少量写请求,但有大量读请求的应用场景下,单个实例可能无法承受读取压力,甚至对业务产生影响。为了实现读取能力的弹性扩展,分担数据库压力,您可以创建一个或多个只读实例,利用只读实例满足大量的数据库读取需求,增加应用的吞吐量。 简介 创建只读实例时会从备实例复制数据,数据与主实例一致,主实例的数据更新也会在主实例完成操作后立即自动同步到所有只读实例。 …

    阿里云数据库 2023年12月9日
  • 腾讯云轻量应用服务器删除账号云小二

    若您需要对已创建的数据库账号进行停用,可以通过控制台删除数据库账号。注意数据库账号删除后不可恢复,请谨慎操作。避免因账号误删除而影响业务的正常使用,请确认即将删除的数据库账号不再对任何应用程序提供使用。root 账号不支持删除。 操作步骤 1. 登录 轻量数据库服务控制台。2. 在数据库列表找到目标数据库,单击数据库进入管理页。3. 选择账号管理页,在账号列…

    2023年12月9日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 腾讯云对象存储检索存储桶

    简介 本文档提供关于检索存储桶的 API 概览以及 SDK 示例代码。 API 操作名 操作描述 HEAD Bucket 检索存储桶及其权限 检索存储桶是否存在且是否有权限访问 检索存储桶及其权限 功能说明 HEAD Bucket 请求可以确认该存储桶是否存在,是否有权限访问。有以下几种情况:存储桶存在且有读取权限,返回 HTTP 状态码为200。无存储桶读…

    腾讯云 2023年12月9日
  • 腾讯云TDSQL-C MySQL版概述

    Serverless 服务是腾讯云自研的新一代云原生关系型数据库 TDSQL-C MySQL 版的无服务器架构版,是全 Serverless 架构的云原生数据库。Serverless 服务支持按实际计算和存储资源使用量收取费用,不用不付费,将腾讯云云原生技术普惠用户。 Serverless 服务架构 按需启动,不需要时可关闭。自动扩展/收缩。缩放对应用程序…

    2023年12月9日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。