美文网首页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