k8s-jenkins安装与流水线

k8s-jenkins安装与流水线

  • 一、环境安装
    • 1.创建目录
    • 2.后台启动服务
    • 3.浏览器访问
    • 4.修改密码
  • 二、流水线
    • 1.新建流水线任务
    • 2.运行流水线
    • 3.安装插件
    • 4.安装Kubernetes CLI
  • 三、总结

一、环境安装

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

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

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

jenkins中文官网

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

1.创建目录

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: truecontainer_name: myjenkinsimage: "jenkinsci/blueocean:latest"restart: alwaysuser: rootvolumes:- "/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时候用到,本文不涉及,不过要加上。

2.后台启动服务

docker-compose -f /mldong/docker/jenkins/docker-compose.yaml up -d

3.浏览器访问

http://ip:8080

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

在这里插入图片描述

4.修改密码

在这里插入图片描述
在这里插入图片描述

二、流水线

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

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

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

1.新建流水线任务

在这里插入图片描述

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

2.运行流水线

在这里插入图片描述

3.安装插件

(1)安装中文语言

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

(2)搜索插件 localization

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

(3)安装成功,重启服务

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

4.安装Kubernetes CLI

在这里插入图片描述

(1)Kubernetes CLI使用

配置.kube/config

  • 管理凭证

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • 添加域

在这里插入图片描述

  • 添加凭据

在这里插入图片描述

  • 选择Secret file

在这里插入图片描述

  • 配置成功

在这里插入图片描述

(2)验证

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

pipeline {agent anystages {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'}}}}
}

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

三、总结

Kubernetes(K8s)的流水线可以概括为以下几个主要步骤:

  1. 代码开发:开发者在本地环境中进行代码编写和修改。
  2. 代码提交:开发者将修改后的代码提交到版本控制系统,如 Git。
  3. 构建和打包:代码提交后,触发自动化的构建过程,生成可部署的容器镜像。
  4. 镜像存储:构建好的容器镜像被存储在镜像仓库中,如 Docker Registry。
  5. 部署:使用 Kubernetes 部署工具,将镜像部署到 K8s 集群中的适当节点上。
  6. 测试:进行各种类型的测试,包括单元测试、集成测试、性能测试等,以确保系统的正确性和可靠性。
  7. 监控和反馈:监控系统的运行状况,收集指标和日志,及时反馈问题和异常。
  8. 持续集成/持续部署(CI/CD):通过自动化的流水线,实现频繁的代码集成和快速的部署。
  9. 回滚和修复:如果部署出现问题,能够快速回滚到之前的稳定版本,并进行问题修复。
    K8s 集群中的适当节点上。
  10. 测试:进行各种类型的测试,包括单元测试、集成测试、性能测试等,以确保系统的正确性和可靠性。
  11. 监控和反馈:监控系统的运行状况,收集指标和日志,及时反馈问题和异常。
  12. 持续集成/持续部署(CI/CD):通过自动化的流水线,实现频繁的代码集成和快速的部署。
  13. 回滚和修复:如果部署出现问题,能够快速回滚到之前的稳定版本,并进行问题修复。
  14. 优化和改进:基于监控和反馈,进行系统的优化和改进,以提高性能和用户体验。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2906690.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Qt篇——Qt无法翻译tr()里面的字符串

最近遇到使用Qt语言家翻译功能时&#xff0c;ui界面中的中文都能够翻译成英文&#xff0c;但是tr("测试")这种动态设置给控件的中文&#xff0c;无法翻译&#xff08;lang_English.ts文件中的翻译已经正确添加了tr()字符串的翻译&#xff09;。 上网搜了很多资料&am…

Docker命令及部署Java项目

文章目录 简介Docker镜像镜像列表查找镜像拉取镜像删除镜像镜像标签 Docker容器容器启动容器查看容器停止和重启后台模式和进入强制停止容器清理停止的容器容器错误日志容器别名及操作 Docker部署Java项目 简介 Docker是一种容器化技术&#xff0c;可以帮助开发者轻松打包应用…

芒果YOLOv8改进145:全新风格原创YOLOv8网络结构解析图

&#x1f4a1;本篇分享一下个人绘制的原创全新风格 YOLOv8网络结构图 感觉搭配还行&#xff0c;看着比较直观。 该专栏完整目录链接&#xff1a; 芒果YOLOv8深度改进教程 订阅了专栏的读者 可以获取一份 <可以自行修改 / 编辑> 的 YOLOv8结构图修改源文件 YOLOv8结构图…

spring多线程实现+合理设置最大线程数和核心线程数

1.最简单的方法&#xff1a; 需要在 Spring Boot 主类上添加 EnableAsync 注解启用异步功能&#xff1b;需要在异步方法上添加 Async 注解。 示例代码如下&#xff1a; SpringBootApplication EnableAsync public class Application {public static void main(String[] args…

网络爬虫框架Scrapy的入门使用

Scrapy的入门使用 Scrapy概述引擎&#xff08;Engine&#xff09;调度器&#xff08;Scheduler&#xff09;下载器&#xff08;Downloader&#xff09;SpiderItem Pipeline 基本使用安装scrapy创建项目定义Item数据模型对象创建爬虫(Spider)管道pipeline来保存数据启动爬虫 其他…

什么是拧紧扭矩——SunTorque智能扭矩系统

智能扭矩系统-智能拧紧系统-扭矩自动控制系统-SunTorque 拧紧扭矩是紧固件&#xff08;如螺栓、螺母等&#xff09;在拧紧过程中施加在螺纹上的力矩&#xff0c;用于使紧固件产生预紧力&#xff0c;从而保证连接的可靠性和安全性。拧紧扭矩是紧固件连接中非常重要的一个参数&a…

数据更新了,vue的界面没有更新?大写的why到底是为什么!!!

最近工作中&#xff0c;遇见了两个小问题&#xff0c;一时没有反应过来&#xff0c;特此写博客记录一下。希望下次秒反应&#xff01;&#xff01; 有一个界面&#xff0c;打开的时候&#xff0c;由于界面显示内容过多导致而出现了滚动条。第一次浏览窗口时&#xff0c;移动了滚…

qt完成对话框提示

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);//去掉头部this->setWindowFlag(Qt::FramelessWindowHint);//去掉空白this->setAttribute(Qt::WA_Transl…

HTML input 实现回车切换到下一个输入框功能

前言 遇到需求&#xff0c;在客户填写单子时&#xff0c;有多个输入框&#xff0c;为了省事&#xff0c;不需要频繁移动光标填写。 实现效果 实现方式一 HTML <input type"text" name"serialNumber1" onkeydown"cursor(this);"/><in…

是谁?阻止CXL在AI场景大展身手~

CXL虽然被视为业内新宠&#xff0c;但好像在AI场景的应用反而没有得到广泛的响应。 AI场景对内存带宽、容量以及数据一致性有着极高需求&#xff0c;特别是在深度学习训练和推理过程中&#xff0c;大量数据需要在CPU、GPU、加速器以及内存之间快速、高效地流动。CXL作为一种新…

ForkJoinPool、CAS原子操作

ForkJoinPool ForkJoinPool是由JDK1.7后提供多线程并行执行任务的框架。可以理解为一种特殊的线程池。 1.任务分割&#xff1a;Fork&#xff08;分岔&#xff09;&#xff0c;先把大的任务分割成足够小的子任务&#xff0c;如果子任务比较大的话还要对子任务进行继续分割。 …

内网靶机~~dc-2

一、信息收集 1.端口扫描&#xff1a; nmap -sV -p 1-10000 10.1.1.4 2.CMS识别 3.目录扫描&#xff1a; dirsearch http://10.1.1.4/ 4.FLAG1 似乎让我们用cewl生成密码字典&#xff0c;并爆破登录。 cewl -w rewl_passwd.txt http://dc-2/index.php/flag/ 总结&#xff…

离线Linux/openEuler服务器指定本地yum仓库

1、前提准备一个预装坏境比较完整的linux镜像文件&#xff0c;本文服务器使用的是openEuler 官网&#xff1a;openEuler下载 | 欧拉系统ISO镜像 | openEuler社区官网 2、上传镜像文件至服务器 如果是集群服务器&#xff0c;上传其中一台服务器之后&#xff0c;使用scp指令将镜…

数据结构刷题篇 之 【力扣二叉树基础OJ】详细讲解(含每道题链接及递归图解)

有没有一起拼用银行卡的&#xff0c;取钱的时候我用&#xff0c;存钱的时候你用 1、相同的树 难度等级&#xff1a;⭐ 直达链接&#xff1a;相同的树 2、单值二叉树 难度等级&#xff1a;⭐ 直达链接&#xff1a;单值二叉树 3、对称二叉树 难度等级&#xff1a;⭐⭐ 直达…

【滑动窗口】Leetcode 最大连续1的个数 III

题目解析 1004. 最大连续1的个数 III 按照k的数值将0反转成1&#xff0c;记录数组中连续1的最长个数 算法讲解 我们需要一个变量temp记录翻转的次数&#xff0c;每遇到一次0&#xff0c;temp。当temp > k的时候此时说明翻转0已经到达极限&#xff0c;已经不可以在翻转了&…

基于二级片内硬件堆栈的后向CFI 验证方法研究,第三章

随着计算机技术的发展&#xff0c;针对计算机系统的恶意攻击越来越多&#xff0c;造成了巨大的经济损失。面向返回导向编程等恶意攻击方式通过修改堆栈中程序返回地址劫持控制流&#xff0c;达到恶意攻击的目的。后向控制流完整性即返回地址的完整性验证&#xff0c;是一种保护…

Tesla技术方案解析

Tesla技术方案解析 附赠自动驾驶学习资料和量产经验&#xff1a;链接 参考&部分摘选&#xff1a; EatElephant&#xff1a;解读: Tesla Autopilot技术架构 chenq100&#xff1a;TechTips - 031: “Tesla AI Day 2021”学习笔记 All you need to know about Tesla AI Da…

基于单片机的二维码LCD显示控制设计

**单片机设计介绍&#xff0c;基于单片机的二维码LCD显示控制设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机的二维码LCD显示控制设计是一个集硬件、软件与通信于一体的综合性项目。此设计的主要目标是实现单片机…

蓝桥备赛——堆队列

AC code import os import sys import heapq a [] b [] n,k map(int,input().split())for _ in range(n):x,y map(int,input().split())a.append(x)b.append(y) q []# 第一种情况&#xff1a;不打第n个怪兽# 将前n-1个第一次所需能量加入堆 for i in range(n-1):heapq.h…

Doris实践——叮咚买菜基于OLAP引擎的应用实践

目录 前言 一、业务需求 二、选型与对比 三、架构体系 四、应用实践 4.1 实时数据分析 4.2 B端业务查询取数 4.3 标签系统 4.4 BI看板 4.5 OLAP多维分析 五、优化经验 六、总结 原文大佬介绍的这篇Doris数仓建设实践有借鉴意义的&#xff0c;这些摘抄下来用作沉淀学…