美文网首页Java架构技术进阶
手把手带你玩转k8s-jenkins安装与流水线

手把手带你玩转k8s-jenkins安装与流水线

作者: Java合伙人 | 来源:发表于2020-07-17 15:35 被阅读0次

    前言

    本系列教程最主要的目地是使用k8s做持续集成,从本文开始,才算是正式进入主题。

    环境安装

    如果使用的是阿里云Kubernetes集群 ,可以安装其 ack-jenkins应用。

    5分钟在阿里云Kubernetes服务上搭建jenkins环境并完成应用构建到部署的流水线作业

    为了通用性,这里并没有使用ack-jenkins,而是使用官方的 jenkinsci/blueocean镜像。

    jenkins中文官网

    因为后面要讲的jenkins内容需要联网,但是之前购买的服务器是没有绑定公网ip的,这里也不想购买绑定了(省钱)。所以临时先使用小A同学上的docker来安装jenkins。

    创建目录

    mkdir -p /mldong/docker/jenkins
    mkdir -p /mldong/docker/jenkins/data
    复制代码
    

    </pre>

    docker-compose定义文件

    cat <<EOF > /mldong/docker/jenkins/docker-compose.yaml
    version: '2'
    services:
      jenkins:
        privileged: true
        container_name: myjenkins
        image: "jenkinsci/blueocean:latest"
        restart: always
        user: root
        volumes:
          - "/etc/localtime:/etc/localtime:ro"
          - "./data:/var/jenkins_home"
          - "/var/run/docker.sock:/var/run/docker.sock"
          - "/root:/home"
        ports:
          - "8080:8080"
          - "50000:50000"
    
    EOF
    复制代码
    

    </pre>

    • privileged,获取宿主机root权限
    • container_name,窗口名称
    • image,镜像地址
    • restart,docker重启后,服务也重启
    • user, 指定运行的用户
    • volumes,挂载的目录 /etc/localtime:/etc/localtime:ro 主要是与宿主时区同步 ./data:/var/jenkins_home 将容器内/var/jenkins_home持久化到宿主当前目录下的data目录 /root:/home
    • ports 左宿主右容器 8080口为对外服务 50000后续讲到master-slave时候用到,本文不涉及,不过要加上。

    后台启动服务

    docker-compose -f /mldong/docker/jenkins/docker-compose.yaml up -d
    复制代码
    

    </pre>

    image

    浏览器访问

    http://ip:8080

    注意端口访问权限,如果是阿里云,需要设置入站规则。

    image image image

    修改密码

    image image

    流水线

    jenkins Pipeline(或简称为 "Pipeline")是一套插件,将持续交付的实现和实施集成到 Jenkins 中。

    持续交付 Pipeline 自动化的表达了这样一种流程:将基于版本控制管理的软件持续的交付到您的用户和消费者手中。

    Jenkins Pipeline 提供了一套可扩展的工具,用于将“简单到复杂”的交付流程实现为“持续交付即代码”。Jenkins Pipeline 的定义通常被写入到一个文本文件(称为 Jenkinsfile )中,该文件可以被放入项目的源代码控制库中。

    新建流水线任务

    image image image

    运行流水线

    image image

    安装插件

    安装中文语言

    image

    搜索插件 localization

    image

    安装中

    image

    安装成功,重启服务

    image

    中文版页面

    image

    安装Kubernetes CLI

    image image

    这个过程有点慢,需要耐心等待

    image

    Kubernetes CLI使用

    配置.kube/config

    管理凭证

    image

    添加域

    image

    添加凭据

    image

    选择Secret file

    image

    ID要简单记一下,流水线访问集群时需要用到

    image

    配置成功

    image

    验证

    修改流水线

    image
    pipeline {
       agent any
    
       stages {
          stage('Hello') {
             steps {
                echo 'Hello World'
             }
          }
          stage("kubectl") {
            agent {
                docker {
                    image 'lwolf/helm-kubectl-docker'
                }
            }
            steps {
                withKubeConfig([credentialsId: 'ali-k8s-config',serverUrl: 'https://172.26.22.121:6443']) {
                    sh 'kubectl get nodes'
                }
             }
          }
       }
    }
    
    复制代码
    

    结果

    image

    小结

    本文主要使用docker-compose安装jenkins,并简单介绍了jenkins流水线的使用。通过安装Kubernetes CLI插件,使用流水线脚本可以使用kubectl命令行工具访问k8s集群。这样为后续做发布的流水线做了个一些准备。当然,仅今天介绍的内容还是不足让你那么快的制作一条完整的流水线,下一篇会详细介绍流水线的一些常用语法。

    docker-compose常用命令说明

    1. 运行服务-非后台运行 docker-compose -f docker-compose.yaml up 复制代码
    2. 运行服务-后台运行 docker-compose -f docker-compose.yaml up -d 复制代码
    3. 停止并移除定义的服务 docker-compose -f docker-compose.yaml down 复制代码
    4. 停止正在运行的服务 docker-compose -f docker-compose.yaml stop 复制代码
    5. 启动停止的服务 docker-compose -f docker-compose.yaml start

    相关文章

      网友评论

        本文标题:手把手带你玩转k8s-jenkins安装与流水线

        本文链接:https://www.haomeiwen.com/subject/rreghktx.html