tekton 的长处
- 联合 k8s 的诸多特点:整体上设计的非常奇妙
- hub 中有丰盛的 task 供咱们封装本人的 pipeline
- 我在通读它的源码后感叹其平凡之初
- 瞎话说在 k8s 中还在玩 jenkins 的就比拟掉队了
作为 k8s 和 cicd 专家的我 在 tekton 实战中 开发或者须要留神的点
- tekton 全流水线实战和 pipeline 运行原理源码解读
01 封装几种常见的流水线
- 01 build-push:只构建并推送镜像
- 02 auth-clone-build-push-apply:新服务 or 同时调整镜像和 yaml,构建 + 部署 yaml+ 替换 image
- 03 auth-set-image:只须要更新镜像版本,测试环境测好的镜像部署到线上
- 04 auth-apply-yaml-image:只须要部署 yaml,需替换 IMAGE_HOLDER,比方 yaml 的日志采集等字段更新了,或者 configMap 参数变更
- 05 apply 一个 git 仓库中的 yaml 文件,无需替换 IMAGE_HOLDER
- 06 apply-yaml-dir:apply 一个 git 仓库中的目录,目录中有多个 yaml 文件
- 07 apply 一个内部的 url 对应的 yaml 文件,如装 github 上的开源组件
- 08 auth-apply-yaml-image-var : 给须要传额定参数的流水线
02 对于镜像的随机标签问题
- 应研发需要,为了避免镜像被净化,在镜像标签中增加工夫和 commit 字符串
-
增加规定如下:
- 如果 GIT_REVISION 为空,分支或 tag 信息则为 master
- 如果 GIT_REVISION 不为空,分支或 tag 信息则为对应的传参
- 加分钟级别工夫
- 加 commit 字符串
- {IMAGE_BASE_PATH}:{GIT_REVISION}-{date}-{commitid}
- 举例 xxx/web/nignx:v1.2.3-20220512-10-55-c8873a524
- 举例 xxx/web/nignx:master-20220512-11-08-a47ac5b8c
03 对应代码仓库须要做的革新应该尽可能的少
- deployment 部署的 yaml 模板在 git 仓库中
- 常常须要变更镜像版本的中央 用
IMAGE_HOLDER
做占位符
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: IMAGE_HOLDER
ports:
- containerPort: 80
04 在 cd 时应该限度往在线 k8s 集群公布的权限
- 在须要部署到 k8s 集群的流水线中增加鉴权步骤,逻辑如下
- 用户须要传参 USER_TOKEN
-
如果是部署的指标集群名字中蕴含
live
,去校验接口验证 USER_TOKEN- 胜利则放行
- 失败则流水线进行
- 校验接口每隔一段时间生成随机 token
- 随机 token 请找对应的 SRE 索要:目标就是研发公布的时候要告诉 SRE,大家都晓得要往在线集群公布了,防止私下公布或误公布
- 应用 admintoken 能够通过接口获取随机 token,而后填入 USER_TOKEN 校验即可
其它注意事项就不开展了,有问题请购买课程后再答疑
- 对于 golang 我的项目 go mod 援用公司内其余公有仓库的问题
- 对于 habor 镜像仓库权限的问题等
k8s 纯源码解读教程(3 个课程内容合成一个大课程)
- k8s 底层原理和源码解说之精髓篇
- k8s 底层原理和源码解说之进阶篇
- k8s 纯源码解读课程,助力你变成 k8s 专家
k8s 运维进阶调优课程
- k8s 运维巨匠课程
- tekton 全流水线实战和 pipeline 运行原理源码解读
k8s 二次开发课程
- k8s 二次开发之基于实在负载的调度器
- k8s-operator 和 crd 实战开发 助你成为 k8s 专家
prometheus 全组件的教程
- 01_prometheus 全组件配置应用、底层原理解析、高可用实战
- 02_prometheus-thanos 应用和源码解读
- 03_kube-prometheus 和 prometheus-operator 实战和原理介绍
- 04_prometheus 源码解说和二次开发
go 语言课程
- golang 根底课程
- golang 运维平台实战,服务树, 日志监控,工作执行,分布式探测
- golang 运维开发实战课程之 k8s 巡检平台
直播答疑 sre 职业倒退布局
- k8s-prometheus 课程答疑和运维开发职业倒退布局