zoukankan      html  css  js  c++  java
  • kubernetes-jenkins CI/CD平台(十八)

    软件环境:Jenkins + Kubernetes + Git + Maven + Harbor

    发布流程设计

    工作流程:手动/自动构建-> Jenkins 调度K8S API->动态生成Jenkins Slave pod ->Slave pod 拉取Git 代码/编译/打包镜像->推送到镜像仓库Harbor ->Slave 工作完成,Pod 自动销毁->部署到测试或生产Kubernetes平台。

    环境准备:

    准备K8S、Ingress和PV自动供给(NFS),
    部署harbor:https://github.com/goharbor/harbor/releases
    构建jenkins-slave镜像:https://github.com/jenkinsci/docker-jnlp-slave
    将构建好的jenkins-slave镜像推送至harbor仓库
    在kubernetes中部署jenkins:https://github.com/jenkinsci/kubernetes-plugin/tree/fc40c869edfd9e3904a9a56b0f80c5a25e988fa1/src/main/kubernetes
    部署git,创建用户,jenkins保存git凭据
    Kubernetes插件:Jenkins在Kubernetes集群中运行动态代理。插件介绍:https://github.com/jenkinsci/kubernetes-plugin

    构建流水线

    Pipeline插件
    • Jenkins Pipeline是一套插件,支持在Jenkins中实现集成和持续交付管道;
    • Pipeline通过特定语法对简单到复杂的传输管道进行建模;
      • 声明式:遵循与Groovy相同语法。pipeline { }
      • 脚本式:支持Groovy大部分功能,也是非常表达和灵活的工具。node { }
    • Jenkins Pipeline的定义被写入一个文本文件,称为Jenkinsfile。

    Jenkins安装Git和Pipeline插件 ExtendedChoiceParameter
    Jenkins保存Harbor访问凭据

    镜像命名

    根据Jenkins构建编号作为镜像标签:

    ${registry}/${project}/${app_name}:${BUILD_NUMBER}

    还可以根据Git Tag作为镜像标签,这需要与开发、测试、运维达成一个约定。

    jenkins创建任务

    持续部署

    Kubernetes Continuous Deploy插件:用于将资源配置部署到Kubernetes。

    插件介绍:https://plugins.jenkins.io/kubernetes-cd

    Jenkins保存K8S凭据

    [root@k8s-master ~]# cat .kube/config

    K8S创建连接Harbor认证凭据

    kubectl create secret docker-registry registry-pull-secret --docker-server=192.168.0.221 --docker-username=admin --docker-password=Harbor12345 --docker-email=admin@admin.com

  • 相关阅读:
    Beyond Compare设置
    lt29配置
    [Windows] 常用的快捷命令
    【C&C++】数组初始化的思考
    【Windows批处理】常用命令解析
    Linux下将网站数据自动备份到Dropbox
    CentOS下iRedMail安装配置
    Python 大数据思维导图
    libxml2编程基础
    xml文件的解析
  • 原文地址:https://www.cnblogs.com/yuezhimi/p/11083362.html
Copyright © 2011-2022 走看看