当前位置: 首页 > article >正文

Kubernetes 上安装 Jenkins

  1. 安装 Helm
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
  1. 添加 Jenkins Helm 仓库
    首先添加 Jenkins Helm 仓库
helm repo add jenkins https://charts.jenkins.io
helm repo update
  1. 安装 Jenkins
    使用 Helm 安装 Jenkins 的最新版本:
helm install jenkins jenkins/jenkins

这将会使用 Helm Chart 安装 Jenkins,并且会自动创建一个 jenkins 的部署、服务和相关资源。

  1. 查看 Jenkins 的服务
    你可以使用以下命令查看 Jenkins 的服务和端口:
kubectl get svc

在这里插入图片描述
5. 获取 Jenkins 的 初始管理员密码
Jenkins Helm Chart 在安装时会创建一个 Secret,其中包含 Jenkins 的初始管理员密码。你可以通过以下命令获取密码:

kubectl exec --stdin --tty <jenkins-pod-name> -- cat /var/jenkins_home/secrets/initialAdminPassword

将 替换为 Jenkins Pod 的名称。你可以使用 kubectl get pods 查看 Jenkins Pod 的名称。

  1. 访问 Jenkins
    根据服务类型不同,你可以通过以下方式访问 Jenkins:

如果是 NodePort 类型:访问 http://:,其中 是 Kubernetes 节点的 IP 地址, 是服务的 NodePort 端口号。

如果是 LoadBalancer 类型:访问 http://,其中 是 LoadBalancer 分配的外部 IP 地址。

如果使用 kubectl port-forward:可以将 Jenkins 的服务端口映射到本地端口。执行以下命令:

kubectl port-forward svc/jenkins 8080:8080

然后在浏览器中访问 http://localhost:8080。

  1. 配置 Jenkins
    访问 Jenkins 后,使用刚刚获取的初始管理员密码进行登录。然后按照 Jenkins 的引导完成初始配置,安装所需的插件和设置管理员用户。

  2. 自定义 Jenkins 配置(可选)
    你可以根据需要自定义 Jenkins 的配置。修改 Helm 的值文件或 Helm Chart 的配置,可以通过以下命令安装 Jenkins 并指定自定义配置:

helm install jenkins jenkins/jenkins -f values.yaml

jenkins 开启远程访问

  1. 修改 Jenkins 服务为 NodePort 类型
    你可以通过修改 Jenkins 服务的类型为 NodePort 来使其可从集群外部访问。以下是修改服务类型的步骤:

编辑 Jenkins 服务

kubectl edit svc jenkins

在编辑器中,将 type: ClusterIP 修改为 type: NodePort,并保存。最终的 YAML 配置示例如下:

apiVersion: v1
kind: Service
metadata:
  name: jenkins
  namespace: default
spec:
  type: NodePort
  ports:
  - port: 8080
    targetPort: 8080
    nodePort: 30000  # 你可以选择一个在 30000-32767 范围内的端口号
  selector:
    app: jenkins

确认更改
检查 Jenkins 服务是否更新成功:

kubectl get svc jenkins

你应该能看到 TYPE 列变为 NodePort,并且 PORT(S) 列包含 8080:30000/TCP(如果你设置了 nodePort 为 30000)。

访问 Jenkins
通过以下 URL 访问 Jenkins:

http://<node-ip>:30000

http://www.kler.cn/news/293035.html

相关文章:

  • 5、Django Admin后台移除“删除所选”操作
  • 问:Java异常处理的日常?
  • 民宿小程序开发制作,开发优势分析
  • 《绝区零》全球累积收入突破1亿美金;《原神》斩获年度最佳手游大奖 | 手游和应用出海资讯
  • Linux 进程概念
  • Java笔试面试题AI答之JDBC(4)
  • 006-Sleuth(Micrometer)+ZipKin分布式链路追踪
  • Swift 运算符
  • 在 “Label Studio” 和 “Android Studio” 中,“studio”的含义
  • Signac R|如何合并多个 Seurat 对象 (2)
  • 联蔚盘云亮相CDIE消费品行业峰会
  • React 全屏问题解决方案
  • 8. GIS数据分析师岗位职责、技术要求和常见面试题
  • 计算polydata相交
  • 【数据结构算法经典题目刨析(c语言)】使用数组实现循环队列(图文详解)
  • Opencv中的直方图(3)直方图比较函数compareHist()的使用
  • 原码、反码、补码及用途
  • 微信小程序开发,使用神卓互联内网穿透做公网地址回调的教程
  • python测试开发基础---线程和进程的概念
  • pytorch初始化张量并填充随机整数值
  • 【Linux详解】命令行参数|环境变量
  • OpenAI SORA团队负责人 通往智能的方式 报告笔记
  • 网络层 V(IPv6)【★★★★★★】
  • k8s-pod 实战三 (Liveness Probe 和 Readiness Probe 详细分析)
  • Stage 模型应用程序包的结构
  • Java设计模式【命令模式】-行为型
  • 国内领先线上运动平台:如何借助AI技术实现业务腾飞与用户体验升级
  • HarmonyOS开发实战( Beta5版)合理使用动画丢帧规范实践
  • 替换Windows AD时,网络准入场景如何迁移对接国产身份域管?
  • Linux——中间件、数据库(理论)