乐趣区

关于kubernetes:作为k8s和cicd专家的我-在tekton实战中-开发或者需要注意的点

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 课程答疑和运维开发职业倒退布局
退出移动版