当前位置: 首页 > news >正文

Jenkins+Kubernetes CI/CD

Jenkins + Kubernetes CI/CD
步骤如下

  1. 安装Kubernetes集群
  2. 开通容器镜像服务,创建镜像仓库,如ycdocker/demo
  3. 在集群外的ECS上安装Jenkins
  4. 在Jenkins所在ECS安装kubectl,用以访问Kubernetes集群

    wget https://dl.k8s.io/v1.10.6/kubernetes-client-linux-amd64.tar.gz
    tar -xvf kubernetes-client-linux-amd64.tar.gz
    cd kubernetes/client/bin
    chmod +x ./kubectl
    sudo mv ./kubectl /usr/local/bin/kubectl
    mkdir /root/.kube
    vi /root/.kube/config
  5. 安装Docker

    
    # step 1: 安装必要的一些系统工具
    sudo apt-get update
    sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
    # step 2: 安装GPG证书
    curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
    # Step 3: 写入软件源信息
    sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
    # Step 4: 更新并安装 Docker-CE
    sudo apt-get -y update
    sudo apt-get -y install docker-ce
  6. 安装maven apt-get install maven -y
  7. 选择Spring Boot Demo项目,Dockerfile放根目录

    FROM openjdk:8-jdk-alpine
    VOLUME /tmp
    ARG JAR_FILE
    COPY ${JAR_FILE} app.jar
    ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
  8. 上传代码到Git
  9. 登陆Jenkins,创建free style项目
  10. 配置Jenkins从Git取代码
  11. 添加构建步骤,Shell脚本如下
mvn clean package
docker build --build-arg JAR_FILE=target/gs-spring-boot-docker-0.1.0.jar -t registry.cn-beijing.aliyuncs.com/ycdocker/demo:$BUILD_NUMBER .
docker login --username=***** --password=***** registry.cn-beijing.aliyuncs.com
docker push registry.cn-beijing.aliyuncs.com/ycdocker/demo:$BUILD_NUMBER
kubectl set image deployment/demo demo=registry.cn-beijing.aliyuncs.com/ycdocker/demo:$BUILD_NUMBER
  1. 修改代码测试效果

相关文章:

  • YARN中内存的设置
  • 责任链模式 以及在Android开发中的运用
  • 学习打卡-2018/08/07
  • Micro Service Architecture — Timeout
  • 通用清除浮动方式
  • Struts2之校验
  • python基础库
  • 逻辑回归最小二乘推导
  • Emgu-WPF 激光雷达研究-移动物体跟踪
  • 浅谈OSI七层模型之物理层
  • 详述 IntelliJ IDEA 插件的安装及使用方法
  • python3 之__str__
  • CentOS Peer's Certificate has expired 问题
  • Golang dep包管理器
  • iptables1
  • hexo+github搭建个人博客
  • [LeetCode] Wiggle Sort
  • 2017-08-04 前端日报
  • django开发-定时任务的使用
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • Elasticsearch 参考指南(升级前重新索引)
  • Go 语言编译器的 //go: 详解
  • js算法-归并排序(merge_sort)
  • React-flux杂记
  • Redux系列x:源码分析
  • Spring核心 Bean的高级装配
  • Synchronized 关键字使用、底层原理、JDK1.6 之后的底层优化以及 和ReenTrantLock 的对比...
  • v-if和v-for连用出现的问题
  • 简单实现一个textarea自适应高度
  • 力扣(LeetCode)56
  • 如何借助 NoSQL 提高 JPA 应用性能
  • - 语言经验 - 《c++的高性能内存管理库tcmalloc和jemalloc》
  • 中国人寿如何基于容器搭建金融PaaS云平台
  • Hibernate主键生成策略及选择
  • Mac 上flink的安装与启动
  • 函数计算新功能-----支持C#函数
  • ​Java并发新构件之Exchanger
  • ​TypeScript都不会用,也敢说会前端?
  • ​比特币大跌的 2 个原因
  • %check_box% in rails :coditions={:has_many , :through}
  • ( )的作用是将计算机中的信息传送给用户,计算机应用基础 吉大15春学期《计算机应用基础》在线作业二及答案...
  • (03)光刻——半导体电路的绘制
  • (动手学习深度学习)第13章 计算机视觉---微调
  • (附源码)springboot美食分享系统 毕业设计 612231
  • (六)vue-router+UI组件库
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (四)鸿鹄云架构一服务注册中心
  • (算法)Game
  • (转) Android中ViewStub组件使用
  • (转)Linux下编译安装log4cxx
  • (转)visual stdio 书签功能介绍
  • (转)程序员技术练级攻略
  • (自适应手机端)响应式新闻博客知识类pbootcms网站模板 自媒体运营博客网站源码下载
  • ***详解账号泄露:全球约1亿用户已泄露
  • **CI中自动类加载的用法总结