k8s-jenkins安装与流水线

k8s-jenkins安装与流水线

一、环境安装

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

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

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

jenkins中文官网

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

1.创建目录

shell 复制代码
mkdir -p /mldong/docker/jenkins
mkdir -p /mldong/docker/jenkins/data

docker-compose定义文件

shell 复制代码
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时候用到,本文不涉及,不过要加上。

2.后台启动服务

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

三、总结

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. 优化和改进:基于监控和反馈,进行系统的优化和改进,以提高性能和用户体验。
相关推荐
nuczzz2 分钟前
GPU虚拟化
docker·kubernetes·k8s·gpu·nvidia
Johny_Zhao1 小时前
2025年6月Docker镜像加速失效终极解决方案
linux·网络·网络安全·docker·信息安全·kubernetes·云计算·containerd·yum源·系统运维
藥瓿亭2 小时前
K8S认证|CKS题库+答案| 7. Dockerfile 检测
运维·ubuntu·docker·云原生·容器·kubernetes·cks
容器魔方3 小时前
KubeCon 抢鲜 | Kmesh与你共创高性能流量治理更优方案
云原生·容器·云计算
有个傻瓜9 小时前
PHP语言核心技术全景解析
开发语言·kubernetes·php
幻灭行度10 小时前
CKA考试知识点分享(2)---ingress
kubernetes
MickeyCV18 小时前
使用Docker部署MySQL&Redis容器与常见命令
redis·mysql·docker·容器·wsl·镜像
藥瓿亭20 小时前
K8S认证|CKS题库+答案| 6. 创建 Secret
运维·ubuntu·docker·云原生·容器·kubernetes·cks
2302_8097983220 小时前
【JavaWeb】Docker项目部署
java·运维·后端·青少年编程·docker·容器
嵌入式大圣20 小时前
Neko虚拟浏览器远程协作方案:Docker+内网穿透技术部署实践
运维·docker·容器