前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Kubernetes Pod 作为 Jenkins SSH 代理

Kubernetes Pod 作为 Jenkins SSH 代理

作者头像
DevOps云学堂
发布2024-02-17 15:51:20
970
发布2024-02-17 15:51:20
举报
文章被收录于专栏:DevOps持续集成DevOps持续集成
本文将引导您完成将 Kubernetes pod 配置为 Jenkins 代理的过程

Jenkins 是一个自动化服务器,在不断发展的 DevOps 环境中协调 CI/CD 管道方面发挥着至关重要的作用。然而,传统的 Jenkins 代理在可扩展性和灵活性方面存在局限性。这就是 Kubernetes 的用武之地。Kubernetes 是一个容器编排平台,正在改变部署和管理的方式。本文通过使用 Kubernetes Pod 作为 Jenkins 代理,深入探讨 Jenkins 和 Kubernetes 如何协同工作。这使团队能够动态扩展、优化资源利用率并简化其 CI/CD 工作流程。

是的,你没有看错,我们可以将 Kubernetes pod 配置为 Jenkins 代理。让我们深入了解步骤。 先决条件

  • 访问詹金斯
  • 运行 Kubernetes 集群
  • 启动 Kubernetes 服务

让我们创建一个简单的部署文件,它将启动一个 Pod 和一个服务。

代码语言:javascript
复制
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: demo
  labels:
    app: demo
    color: green
spec:
  replicas: 1
  selector:
    matchLabels:
      app: demo
  template:
    metadata:
      labels:
        app: demo
        color: green
    spec:
      containers:
        - name: demo
          image: ubuntu18:latest
          command: ["/usr/sbin/sshd","-D"]
          imagePullPolicy: IfNotPresent
          volumeMounts:
          - name: home
            mountPath: /home/
          ports:
            - containerPort: 22
      volumes:
        - name: home
          hostPath:
            path: /home/demo/
---
apiVersion: v1
kind: Service
metadata:
  annotations:
  name: demo-service
spec:
  ports:
    - port: 2222
      targetPort: 22
      nodePort: 32222
  selector:
    app: demo
  sessionAffinity: None
  type: NodePort

上述文件创建一个名为“demo”的 Pod 来自主机服务器上可用的基本映像“ubuntu18”,其中包含将在容器内使用的用户详细信息 当 pod 启动时执行命令“/usr/bin/sshd -D”以在调试模式下启动 SSH 守护进程 挂载主机服务器的主目录“/home/demo”到pod中的home目录 打开端口“22”用于 SSH 连接 创建服务“demo-service” 打开nodePort“32222”,使服务可以从Kubernetes集群外部访问 打开端口“2222”,这是 Kubernetes 集群内服务的内部端口 打开 Pod 容器正在侦听的目标端口“22” 映射nodePort、targetPort和端口

运行以下命令将启动 pod 和服务

代码语言:javascript
复制
kubectl apply -f <yaml_file_name>

使用以下命令检查 pod 和服务是否已成功启动

代码语言:javascript
复制
kubectl get deployments

配置 Jenkins 代理

在 Jenkins 控制台上,转到“管理 Jenkins”->“管理节点和云”->“新建节点” 提供“节点名称”,选择“永久代理”,然后单击“创建”。

添加如下详细信息并保存。

  1. 远程根目录:/home/demo/(本节点专用目录)
  2. 启动方式:通过SSH启动代理
  3. Host:主机的公网IP地址
  4. 凭据:我们用来启动容器的用户的凭据。
  5. 主机密钥验证策略:非验证验证策略
  6. 端口:32222(我们为Kubernetes集群外访问服务而开放的nodePort)
  7. JavaPath:/usr/lib/jvm/java-11-openjdk-amd64/bin/java(openJDK 的路径)

节点详情

创建节点后,启动该节点以使Kubernetes pod 作为 Jenkins Agent。

文章翻译:

https://medium.com/make-android/kubernetes-pod-as-a-jenkins-agent-5e88eaf292cd

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-02-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DevOps云学堂 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 配置 Jenkins 代理
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档