【容器化部署简介】 基于腾讯云TKE: kubernetes(k8s), github actions, devops

云原生容器化部署

腾讯云提供了容器服务(集群),所以可以基于k8s快速部署我们的服务。对于测试和部署服务的自动化(CI/CD),这里提供2种方案,一种轻量型的是github actions,一种是偏重量型的coding.net devops,两种都会简单介绍到。

先说原理

github actions

它会根据仓库下面.github/workflows/*.yml文件来实现ci/cd功能。

jobs 下面可以有多个job,每个job可以有多个step(带名称的), 如果你用过jenkins,可以类比:job相当于stage,step和step对应,runs-on是运行环境,例如 ubuntu-latest,可以拉起一个最新的ubuntu镜像运行jobs。

on 可以用于定义一个触发条件,以下定义了一个master 分支的push事件的触发器。

on:
  push:
    branches:
      - master

当repo收到请求的时候,会拉起一个ci/cd的部署机,然后拉取runs-on里面定义的镜像,在镜像里执行相关任务。由于测试和部署的相关脚本都写在jobs中,所以相当于自动去执行了这些任务,至此cicd完成。
由于github actions集成在自己的服务中,所以它可以直接通过on的方式定义触发条件,非常方便,无需webhook介入。

webhook

说devops前先说一下devops触发器的关键:webhook。webhook 是定义在repo下面的,基本仓库中心如github, gitlab, 工蜂等都是支持webhook的。webhook原理很简单,如果你hook了push请求,那么每次repo得到push请求都会向你hook的地址发起一个http请求(一般为post请求),这样你就知道 “什么时间什么人向哪个仓库push了什么”。 所以你可以根据这个做一些非常有用的功能:比如微服务一堆repo的情况下,需要把所有的代码集中起来,有人向serviceA仓库提交了更新,自动将代码合并到一个主repo中。

devops

讲完webhook,可以讲devops了。devops原理就是一堆脚本,通过webhook的触发条件,触发对应的脚本,当然这里可以有一些逻辑,比如 stage1成功了,则触发stage2,不成功则触发stage3。不同stage间可以用传递变量,可以互相影响,可以说devops相当于在脚本上封装了一层,添加了触发器等。

不同平台的devops语言不相同,coding.net devops使用的是jenkins来描述,也有使用别的语言描述的,大体上类似。coding.net引入github库的时候,当你授权了访问repo的时候,它会自动去repo下面的webhook增加一条自己的规则,以实现触发功能。

devops调起的机器是在devops里面自己设定的,所以它并没有权限访问到加密资源(例如docker镜像,github private repo的代码,github secret等等),所以要求在devops内部需要以一定的方式进行权限的赋予,比如docker login来登陆,设置全局变量中的密码等等,这是区别于actions的地方

secret

明确运行cicd的机器在哪,哪些资源可以访问到,哪些资源访问不到,需要另外给予权限,这点很重要。

配置腾讯云

首先做个推广(没钱负担服务器费用了 腾讯云的推广链接)

  • 省钱方案:打折的时候购买普通服务器一年,然后在容器服务里选他们作为计算节点。(集群 - 新建 的第二部可以选)

  • 不差钱的:直接点开 容器服务 - 集群 - 新建 - 开多少随意

  • 弹性:可以开弹性集群,用多少给多少钱

配置kubectl 连接集群

  1. 点击集群
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值