TKE镜像仓库的正确打开姿势

2019-12-20 17:35:37 浏览数 (1)

镜像仓库用于存放 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 侧的配置:

dickerfile文件内容dickerfile文件内容

注意:这里因为我镜像构建规则中指定的是绝对路径,所以这里不用命名为Dockerfile,如果是相对路径,文件名必须为Dockerfile

同时需要注意,上一遍部署gitlab 的文档中讲过,刚部署好的GitLab新建的项目ssh地址一般是个短链接git@AKDJF3ld:xxx,如果不修改,会导致外部无法通过ssh 和 http 连接到仓库,这里镜像构建的时候会报错无法解析gitlab 地址,类似下面这种情况。

关于Gitlab 的调试部分,请参阅上面的文档 https://cloud.tencent.com/developer/article/1556751

5. 验证镜像构建和触发器效果

手动构建,自动触发手动构建,自动触发

装逼完成,TKE镜像仓库的高级玩法,你学会了吗

0 人点赞