百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT技术 > 正文

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

wptr33 2024-11-17 02:42 38 浏览

前言

本系列教程最主要的目地是使用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
复制代码

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
复制代码



浏览器访问

http://ip:8080

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



修改密码



流水线

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

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

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

新建流水线任务


运行流水线

安装插件

安装中文语言


搜索插件 localization


安装中


安装成功,重启服务

中文版页面

安装Kubernetes CLI

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

Kubernetes CLI使用

配置.kube/config

管理凭证

添加域

添加凭据

选择Secret file

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

配置成功

验证

修改流水线

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'
            }
         }
      }
   }
}

复制代码

结果


小结

本文主要使用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


原文链接:https://juejin.im/post/5f0f30806fb9a07e8b214f83

相关推荐

oracle中merge into语句详解(oracle的merge语句)

由于工作中使用,研究了mergeinto语句是insert与update语句的结合,可以同时实现update和insert的功能。一、mergeinto语句的语法。MERGEINTOsch...

N张图告诉你K-DB为什么能全面兼容Oracle?

不是每一款数据库都能全面兼容Oracle,就像不是所有数据库都可以被称之为K-DB。一般数据库能做到的SQL标准和函数上兼容Oracle,而K-DB则能实现更多,在数据库体系架构、集群方式、数据库对象...

ORACLE 错误代码及解决办法(oracle错误码942)

ORA-00001:违反唯一约束条件(.)错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。ORA-00017:请求会话以设置跟踪事件ORA-00018:超出最大会话数ORA-00...

SQL知识大全三):SQL中的字符串处理和条件查询

点击上方蓝字关注我们今天是SQL系列的第三讲,我们会讲解条件查询,文本处理,百分比,行数限制,格式化以及子查询。...

LabVIEW实现Oracle数据库的访问(深入浅出labview数据库应用)

1.安装Oracle客户端下载:从Oracle官方网站下载适用于Windows操作系统的Oracle驱动程序。确保下载的版本与LabVIEW环境和操作系统兼容。...

Oracle查询语句,你知道几个?(oracle常用查询语句)

介绍以下非常有用的Oracle查询语句,主要涵盖了日期操作,获取服务器信息,获取执行状态,计算数据库大小等方面的查询。日期/时间查询1、获取当前月份的第一天运行这个命令能快速返回当前月份的第一天,可...

Oracle数据库中判断字段不为空?(oracle数据库中判断字段不为空的函数)

Oracle数据库中如何判断字段不为空在Oracle数据库中,判断字段(列)不为空通常涉及到几种不同的场景和需求。下面是一些常见的方法来检查字段是否不为空:1.使用NVL函数NVL函数可以用来将NU...

Oracle 字典表使用函数自动转码,自定义函数传参

创建函数模板CREATEORREPLACEFUNCTIONdic_val--定义函数(dict_idINVARCHAR2,codeINVARCHAR2)--定义参数RETURN...

从上百个字段到1个CLOB:Oracle JSON存储实战指南

陆沉盯着左右两个屏幕上显示的数据格式文档,右手小拇指无意思地一下又一下的敲击着机械键盘的Ctrl键,在清脆的“哒哒”声中思考着。...

程序员面试中问到的Oracle常用数据类型

Oracle中常用数据类型有:1、字符类型1.1、定长字符1.1.1、Char字符长度不够自动在右边加空格符号。最大存2000个字符,当字符长度超出2000个报错。不指定大小默认为1。1.1.2、...

了解 Oracle 中单引号与双引号的用法,一篇文章教会你!

无论测试或者开发,对数据库的增删改查都是家常便饭。但有些小知识是经常被忽略,却又不能不去了解的,例如单引号和双引号的用法和区别,看完这一篇,你肯定会有收获。...

Oracle字符串转日期错误,试试TO_TIMESTAMP函数

最近,在工作中,发现有些字符串格式无法转换成日期格式,如下图:这种to_date是无法转换的,会报错,因此,需要用到:TO_TIMESTAMP,具体格式如下:TO_TIMESTAMP(字段名,...

oracle——空字符串(&#39;&#39;)不能用和!=

oracle——空字符串('')不能用<>和!=最近在查询空字符串的数据时发现查询不出数据。后来发现以前的写法在oracle中不能用。记录一下:数据如下:...

oracle的listagg函数,可以把多行转为一个字符串

oracle的listagg函数可以把多行转为一个字符串,用起来很方便,示例如下:witht1as(select'001'asitemcode,'苹果'...

MySQL 教程的天花板--入门到高级(mysql实用教程)

给大家推荐一套MySQL的教程,堪称MySQL教程的天花板。此教程包含...