镜像仓库用于存放 Docker 镜像,Docker 镜像用于部署容器服务,每个镜像有特定的唯一标识(镜像的 Registry 地址 镜像名称 镜像 Tag),目前镜像支持 Docker Hub 官方镜像和用户私有镜像。
一:TKE镜像仓库基础操作
1. 初始化操作
这里主要报错开通镜像仓库,创建命名空间,创建镜像仓库
详细操作步骤可以参考:https://cloud.tencent.com/document/product/457/9117
2. 上传下载操作
创建完镜像仓库之后会有对应的仓库地址,这个时候可以在命令行执行上传和下载镜像的操作。
可以点击进对应的镜像仓库,查看使用指引,如图:
登录镜像仓库的时候需要输入登录密码,这个密码就是开通镜像仓库时配置的密码
二:TKE镜像仓库高级玩法
这里说的高级操作主要包括镜像构建 和 触发器两部分
1. 镜像构建
(1)何为镜像构建
容器持续集成提供在腾讯云容器平台上,自动、手动构建容器镜像的功能,可以理解为docker build 操作。
具体说明可以参考:https://cloud.tencent.com/document/product/457/10151
(2)源代码授权
创建镜像构建规则之前,必须先进行源代码授权操作,授权目标端仓库,当前支持官方 github 和 自建gitlab 仓库。
其他的类似coding 工蜂之类的还不支持对接。
这里需要注意,如果使用gitlab ,需要先在gitlab 服务端配置好Access Token 和权限。
具体说明可以参考:https://cloud.tencent.com/document/product/457/10153
(3)配置构建规则
通过腾讯云容器服务控制台设置构建规则,实现使用 Git 仓库自动构建容器镜像。
可以参考官方文档,针对相关参数,有具体的说明:
https://cloud.tencent.com/document/product/457/10152
2. 触发器
触发器概述:
镜像仓库触发器帮助用户在镜像构建完毕后,自动执行服务更新、webhook、消息推送等触发动作。通过触发器可以和持续集成结合实现持续部署。
简答来说,就是镜像的tag发生改变的时候,会自动更新指定的工作负载(deployment、StatefulSet等资源)所应用的镜像。
这里我们来看下配置界面,主要配置哪些东西:
从这里的截图来看,无非就三点 名称 触发条件 服务/容器(触发器对应的目标容器) 界面也比较好理解。
话不多说,我们这边通过一组实验来测试下TKE镜像仓库的两个高级功能。
三:实操环节
环境:
一个运行中的容器,稍后测试触发器功能要用:deployment/centos
github 或者 gitlab 仓库:这里选择使用自建gitlab 来部署
ps:高端玩法中的在容器中部署gitlab 服务端,可以参考上期文章
gitlab 服务端要有准备好的代码文件:Dockerfile 文件和构建代码中需要用到的外部文件
1. 配置源代码授权
2. 配置镜像构建规则
3. 触发器配置
配置触发器规则之前,我们需要先有一个被触发的容器,我这边使用deployment 部署简单的 centos 容器,使用镜像版本为 ccr.ccs.tencentyun.com/keepyan/centos:test
配置触发器
4. gitlab 侧的配置:
注意:这里因为我镜像构建规则中指定的是绝对路径,所以这里不用命名为Dockerfile,如果是相对路径,文件名必须为Dockerfile
同时需要注意,上一遍部署gitlab 的文档中讲过,刚部署好的GitLab新建的项目ssh地址一般是个短链接git@AKDJF3ld:xxx,如果不修改,会导致外部无法通过ssh 和 http 连接到仓库,这里镜像构建的时候会报错无法解析gitlab 地址,类似下面这种情况。
关于Gitlab 的调试部分,请参阅上面的文档 https://cloud.tencent.com/developer/article/1556751
5. 验证镜像构建和触发器效果
装逼完成,TKE镜像仓库的高级玩法,你学会了吗