转载

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

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

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

环境安装

如果使用的是阿里云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
复制代码

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
复制代码
  • 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
复制代码
手把手带你玩转k8s-jenkins安装与流水线

浏览器访问

http://ip:8080

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

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

修改密码

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

流水线

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

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

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

新建流水线任务

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

运行流水线

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

安装插件

安装中文语言

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

搜索插件 localization

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

安装中

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

安装成功,重启服务

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

中文版页面

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

安装Kubernetes CLI

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

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

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

Kubernetes CLI使用

配置.kube/config

管理凭证

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

添加域

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

添加凭据

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

选择Secret file

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

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

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

配置成功

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

验证

修改流水线

手把手带你玩转k8s-jenkins安装与流水线
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'
            }
         }
      }
   }
}

复制代码

结果

手把手带你玩转k8s-jenkins安装与流水线
原文  https://juejin.im/post/5f0f30806fb9a07e8b214f83
正文到此结束
Loading...