下载工作台
PaaS 组件实战

DevOps 与 AI:Jenkins / Gitea / Ollama

试读上半部分 · 解锁后可读全文

第 7 章 · DevOps 与 AI:Jenkins / Gitea / Ollama / Open WebUI


7.1 Jenkins LTS(JDK 17)

适用场景

选用说明
持续集成 CI代码提交触发编译、测试
持续交付 CD构建镜像 → 推送仓库 → 更新 K8s Deployment
插件生态Git、Maven、Docker、Kubernetes 插件

不选用:极简项目手动部署;全 GitLab CI 团队(可部署商店 GitLab CE,资源需求高)。

商店部署参数

idjenkins
镜像jenkins/jenkins:lts-jdk17
端口8080
PVC20 Gi/var/jenkins_home
资源中型 · 2 核 4Gi

首次配置

  1. 运维 → 日志管理 搜索:Please use the following password
  2. 浏览器 http://<节点IP>:<NodePort> 输入初始密码
  3. 安装推荐插件

Pipeline 语法(Jenkinsfile)

声明式流水线

pipeline {
  agent any
  environment {
  DOCKER_REGISTRY = 'harbor.example.com'
  IMAGE_NAME = 'shop/api'
  }
  stages {
    stage('Checkout') {
      steps { git branch: 'main', url: 'http://gitea:3000/team/api.git' }
    }
    stage('Build') {
      steps { sh 'mvn -B clean package -DskipTests' }
    }
    stage('Docker') {
      steps {
        sh '''
          docker build -t $DOCKER_REGISTRY/$IMAGE_NAME:${BUILD_NUMBER} .
          docker push $DOCKER_REGISTRY/$IMAGE_NAME:${BUILD_NUMBER}
        '''
      }
    }
    stage('Deploy') {
      steps {
        sh '''
          kubectl set image deployment/api api=$DOCKER_REGISTRY/$IMAGE_NAME:${BUILD_NUMBER} -n app
        '''
      }
    }
  }
}

与小紫云计算联动

步骤操作
构建机访问集群Jenkins Pod 挂载 kubeconfig 或 运维 → 节点终端 执行部署
更新镜像应用部署 → 升级 改 tag,或工作负载 YAML
滚动验证应用部署 就绪列 1/1

小紫运维

jenkins_home 在 PVC,存储 扩容防插件与构建历史占满;构建慢 → 资源 加 CPU。


7.2 Gitea 1.22

适用场景

轻量 Git 托管(比 GitLab 省资源);配合 Jenkins/Drone 做 CI;内网代码仓库。

商店部署参数

idgitea
镜像gitea/gitea:1.22-rootless
端口3000
PVC20 Gi/data

环境变量(可选)

          env:
            - name: GITEA__database__DB_TYPE
              value: "sqlite3"
            - name: GITEA__server__ROOT_URL
              value: "http://<节点IP>:<NodePort>/"

生产建议 SQLite 换 MySQL(第 2 章):

            - name: GITEA__database__DB_TYPE
              value: "mysql"
            - name: GITEA__database__HOST
              value: "mysql.data.svc.cluster.local:3306"
            - name: GITEA__database__NAME
              value: "gitea"
            - name: GITEA__database__USER
              value: "gitea"
            - name: GITEA__database__PASSWD
              value: "密码"

Git 语法(客户端)

git clone http://<节点IP>:<NodePort>/team/api.git
git remote add origin http://gitea:3000/team/api.git   # 集群内 CI 用
git push -u origin main

SSH 克隆(需 端口 映射 22 若启用内置 SSH)

git clone ssh://git@<节点IP>:<port>/team/api.git

以下内容需解锁后阅读

试读已结束。解锁本章 ¥5.00,或开通年度会员畅读全部教程。
年度会员 ¥199.00/年; 小紫 AI 工作台有效会员 ¥99.00/年

正文仅在服务端鉴权后下发,未付费无法获取下半部分内容。