一.什么是DEVOPS
1.1 什么是DEVOPS
DevOps(Development和Operations的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。(更详细见百度百科:https://baike.baidu.com/item/DevOps/2613029?fr=aladdin)
以下是DEVOPS生命周期中每个环节的一些开源工具。可以使用开源工具来完成DEVOPS的流程也可以用腾讯云提供的Coding来实现(地址:https://coding.net/user)
1.2 以Coding实现DEVOPS全流程
通过Coding来实现DEVOPS全流程, 这里需要依赖两个产品TCR和TKE。
- 腾讯云TCR(镜像服务,地址:https://console.cloud.tencent.com/tcr),作为制品库存放生成的镜像文件;
- 腾讯云TKE(容器服务,地址:https://console.cloud.tencent.com/tke2),服务的集群;
- Coding (地址:coding.net)包涵代码仓库、持续集成、持续部署、应用管理、安全管理、测试管理、项目协同等。
通过Coding打通两个产品时最容易出问题的是凭证,需要我们注意:
- Coding访问TCR凭证
- Coding访问k8s凭证(云账号)
- TCR被容器访问凭证
相关访问流程见以下截图。
二.腾讯云镜像仓库
腾讯云镜像服务(Tencent Container Registry,TCR,下文简称TCR),控制台地址(https://console.cloud.tencent.com/tcr/?rid=4) 。整个配置一共分为六步:
2.1 购买企业基础版
购买企业基础版
2.2 配置TCR
购买后配置,按照以下指引进行配置。
如果找不到以上指引,可以通过以下位置找到它。
2.3 配置网络
网络配置需要与后续的TKE在相同的VPC。
2.4 获取访问凭证
建议将密码文件妥善保存在文档中,后续会用到。
2.5 配置公网网络
公网访问(https://console.cloud.tencent.com/tcr/publicaccess)确认是否已经开通并添加了0.0.0.0/0。
2.6 命名空间配置
镜像命名空间这里,访问级别有“公开”和“私有”两种,需要设置未"公开"(我在操作过程中踩了坑,这里特意提一下)。
三. 腾讯云容器(TKE)
配置容器一共分为四步:
3.1 购买容器
购买容器服务地址 (https://console.cloud.tencent.com/tke2/cluster?rid=4)
3.2 配置网络
选择与TCR相同的网段
3.3 确认机型
确认机型配置。
3.4 打通TCR与TKE访问权限
将TCR与镜像进行关联
点击TCR,配置组件的参数。相当于打通TKE与镜像仓库的权限。
四. Coding的配置
4.1 前置操作
通知coding (https://coding.net/) 前置操作:
- 需要以主账号登录(管理员权限)
- 创建项目
- 设置coding账号的独立密码
4.2 配置镜像仓库
创建代码仓库。
填写仓库名与仓库规范。
创建测试文件与Dockerfile(注意大小写)
其中Dockerfile文件内容如下。
代码语言:javascript复制FROM nginx
COPY . /usr/share/nginx/html/
4.3 持续集成
创建构建计划。
制品库存放位置有多种,这里我们关联的是TCR企业版镜像仓库。
需要输入的内容。比较重要的是指定TCR的凭证,这里建议应用刚刚在TCR创建时的账号与密码。
配置后可以看到构建成功
4.4 持续部署
首先设置权限 (以我个人项目地址为例:https://g-csig-tencentcloudcspd-spo.coding.net/appops/infrastructure/cloud-account)
设置云账号,这里用于coding与tke的关联。
4.5 创建应用
创建应用。
4.6 配置应用
基础配置
deployment 设置,yarm中填写TCR镜像仓库地址.
配置services,其中type:LoadBalancer 标识创建负载均衡资源,这里注意大小写。
五.DEVOPS全流程
启动流水线 。在Coding的应用中心(https://xxxxxxxx-spo.coding.net/cd-deck/app) 找到自己创建的应用。
到tke容器控制台(https://console.cloud.tencent.com/tke2),查找Service下的公网CLB地址。
在浏览器测试验证结果。
成功了~~~!!!!!!! 最后整理为本笔记。
六.扩展资源
相关视频
- 【腾讯云大学 CODING 微认证系列课程】https://cloud.tencent.com/edu/learning/course-3636-62900
- 【瀑布模型】方法论 https://www.bilibili.com/video/BV1h3411H7oA
- 【瀑布模型】实操演示 https://www.bilibili.com/video/BV1Lq4y1a7wH
- 【敏捷精益】方法论 https://www.bilibili.com/video/BV1nF411M7qo
- 【敏捷精益】实操演示 https://www.bilibili.com/video/BV1MF411M7im
- 【代码管理&扫描】方法论一 https://www.bilibili.com/video/BV12U4y127tM
- 【代码管理&扫描】方法论二 https://www.bilibili.com/video/BV1pv4y1P7h1
- 【代码管理&扫描】实操演示 https://www.bilibili.com/video/BV1pZ4y1b7YA
- 【测试管理】方法论 https://www.bilibili.com/video/BV1K34y1776d
- 【测试管理】实操演示 https://www.bilibili.com/video/BV1v94y1U7GN
- 【持续集成】方法论 https://www.bilibili.com/video/BV1634y1V7wF
- 【持续集成】实操演示 https://www.bilibili.com/video/BV14W4y1k7Lw
- 【制品管理】方法论 https://www.bilibili.com/video/BV1WU4y1X7vd
- 【制品管理】实操演示 https://www.bilibili.com/video/BV1vB4y1S7J6
- 【持续部署&管理】方法论 https://www.bilibili.com/video/BV1aG411x757
相关工具
yaml 生成器 https://k8syaml.com/