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://www.mzph.cn/news/777613.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

win11蓝牙图标点击变灰,修复过程

问题发现 有一天突然心血来潮想着连接蓝牙音响放歌来听,才发现win11系统右下角菜单里的蓝牙开关有问题。 打开蓝牙设置,可以正常直接连上并播放声音,点击右下角菜单里的蓝牙开关按钮后,蓝牙设备也能正常断开,但是按钮直接变深灰色,无法再点击打开。 重启电脑,蓝牙开关显…

eclipse自动跳到console 解决办法

eclipse启动服务后&#xff0c;想看一些properties信息或者别的&#xff0c;但老是自动跳转到console页面&#xff0c;下面是解决办法&#xff1a; Eclipse中按照如下顺序找到设置菜单的位置&#xff1a; Window — Preferences — Run/Debug — Console 找到以下两项&#xf…

学习笔记——微信小程序读取当前时间

<view class"box"><text>日期:</text><view class"date">{{obtaindate}}</view></view> wxml中定义了一个文本元素&#xff0c;通过{{obtaindate}}获取js页面传递的日期数据 data:{obtaindate:"" }, onlo…

后端之卡尔曼滤波

后端之卡尔曼滤波 前言 在很久之前&#xff0c;人们刚结束信息传递只能靠信件的时代&#xff0c;通信技术蓬勃发展&#xff0c;无线通信和有线通信走进家家户户&#xff0c;而著名的贝尔实验室就在这个过程做了很多影响深远的研究。为了满足不同电路和系统对信号的需求&#…

将当前docker的镜像进行复制并加载为一个新的容器

一.前言 在实际操作中&#xff0c;为了便于docker镜像环境和服务配置的迁移&#xff0c;我们有时需要将已在测试环境主机上完成一系列配置的docker镜像或运行中的容器镜像导出&#xff0c;并传输到生产或其他目标环境主机上运行。为此&#xff0c;本文主要聚焦于如何实现docke…

ArcGIS Pro横向水平图例

终于知道ArcGIS Pro怎么调横向图例了&#xff01; 简单的像0一样 旋转&#xff0c;左转右转随便转 然后调整图例项间距就可以了&#xff0c;参数太多就随便试&#xff0c;总有一款适合你&#xff01; 要调整长度&#xff0c;就调整图例块的大小。完美&#xff01; 好不容易…

OSCP靶场--pc

OSCP靶场–pc 考点&#xff08;CVE-2022-35411[rpc漏洞chisel端口转发]&#xff09; 1.nmap扫描 ┌──(root㉿kali)-[~/Desktop] └─# nmap -Pn -sC -sV 192.168.178.210 --min-rate 2500 Starting Nmap 7.92 ( https://nmap.org ) at 2024-03-28 04:07 EDT Nmap scan rep…

StarRocks实战——多点大数据数仓构建

目录 前言 一、背景介绍 二、原有架构的痛点 2.1 技术成本 2.2 开发成本 2.2.1 离线 T1 更新的分析场景 2.2.2 实时更新分析场景 2.2.3 固定维度分析场景 2.2.4 运维成本 三、选择StarRocks的原因 3.1 引擎收敛 3.2 “大宽表”模型替换 3.3 简化Lambda架构 3.4 模…

centos node puppeteer chrome报错问题

原因&#xff1a;缺少谷歌依赖包&#xff0c;安装以下即可 yum install atkyum install pango.x86_64 libXcomposite.x86_64 libXcursor.x86_64 libXdamage.x86_64 libXext.x86_64 libXi.x86_64 libXtst.x86_64 cups-libs.x86_64 libXScrnSaver.x86_64 libXrandr.x86_64 GConf…

helm 部署 Kube-Prometheus + Grafana + 钉钉告警部署 Kube-Prometheus

背景 角色IPK8S 版本容器运行时k8s-master-1172.16.16.108v1.24.1containerd://1.6.8k8s-node-1172.16.16.109v1.24.1containerd://1.6.8k8s-node-2172.16.16.110v1.24.1containerd://1.6.8 安装 kube-prometheus mkdir -p /data/yaml/kube-prometheus/prometheus &&…

本地部署大模型的几种工具(上-相关使用)

目录 前言 为什么本地部署 目前的工具 vllm 介绍 下载模型 安装vllm 运行 存在问题 chatglm.cpp 介绍 下载 安装 运行 命令行运行 webdemo运行 GPU推理 ollama 介绍 下载 运行 运行不同参数量的模型 存在问题 lmstudio 介绍 下载 使用 下载模型文件…

TheMoon 恶意软件短时间感染 6,000 台华硕路由器以获取代理服务

文章目录 针对华硕路由器Faceless代理服务预防措施 一种名为"TheMoon"的新变种恶意软件僵尸网络已经被发现正在侵入全球88个国家数千台过时的小型办公室与家庭办公室(SOHO)路由器以及物联网设备。 "TheMoon"与“Faceless”代理服务有关联&#xff0c;该服务…

深度学习每周学习总结P3(天气识别)

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 | 接辅导、项目定制 数据链接 提取码&#xff1a;o3ix 目录 0. 总结1. 数据导入部分数据导入部分代码详解&#xff1a;a. 数据读取部分a.1 提问&#xff1a;关…

GPT-1原理-Improving Language Understanding by Generative Pre-Training

文章目录 前言提出动机模型猜想模型提出模型结构模型参数 模型预训练训练的目标训练方式训练参数预训练数据集预训练疑问点 模型微调模型输入范式模型训练微调建议微调疑问点 实验结果分析 前言 首先想感慨一波 这是当下最流行的大模型的的开篇之作&#xff0c;由OpenAI提出。…

uniapp调用腾讯图形验证码,兼容h5、APP(安卓)

因项目要兼容安卓APP&#xff0c;所以使用webview做成了一个组件 新建hybrid文件夹&#xff0c;创建要在webview引入的html文件 <!DOCTYPE html> <html><head><meta charset"utf-8" /><meta name"viewport"content"widt…

牛客NC26 括号生成【中等 递归 Java,Go,PHP】

题目 题目链接&#xff1a; https://www.nowcoder.com/practice/c9addb265cdf4cdd92c092c655d164ca 思路 答案链接&#xff1a;https://www.lintcode.com/problem/427/solution/16924 参考答案Java import java.util.*;public class Solution {/*** 代码中的类名、方法名、参…

如何在Apache Arrow中定位与解决问题

如何在apache Arrow定位与解决问题 最近在执行sql时做了一些batch变更&#xff0c;出现了一个 crash问题&#xff0c;底层使用了apache arrow来实现。本节将会从0开始讲解如何调试STL源码crash问题&#xff0c;在这篇文章中以实际工作中resize导致crash为例&#xff0c;引出如何…

I/O模型的一些理解

I/O模型的一些理解 一些基本的概念同步阻塞、同步非阻塞、异步阻塞、异步非阻塞总结概念 I/O模型一些例子 从源头解释从TCP发送数据的流程说起阻塞I/O | 非阻塞I/OI/O多路复用信号驱动I/O异步I/O再谈IO模型里面的同步异步 参考连接 参考链接 参考链接 一些基本的概念 阻塞(b…

ChatGPT与传统搜索引擎的区别:智能对话与关键词匹配的差异

引言 随着互联网的快速发展&#xff0c;信息的获取变得比以往任何时候都更加便捷。在数字化时代&#xff0c;人们对于获取准确、及时信息的需求愈发迫切。传统搜索引擎通过关键词匹配的方式为用户提供了大量的信息&#xff0c;然而&#xff0c;这种机械式的检索方式有时候并不…

react+vite+antD+reduce+echarts项目完整记录

reactviteantDreduceecharts项目完整记录 之前写前端项目&#xff0c;都是用的vue&#xff0c;从最开始的vue2到后来的vue3&#xff0c;断断续续写了3年&#xff0c;打包工具也从webpack转到了vite&#xff0c;全局数据管理工具从vuex转到了pinia。总体而言&#xff0c;vue3对…