如何使 Jenkins 代理端口通过 Kubernetes 上的 Ingress 控制器可用?

如何使 Jenkins 代理端口通过 Kubernetes 上的 Ingress 控制器可用?

我正在尝试在 Digital Ocean Kubernetes 集群中设置 Jenkins。我使用 NGINX 入口控制器,因为我想从子域 (jenkins.example.com) 访问我的服务器。到目前为止,一切运行正常,我已使用自定义证书保护了所述域上的 UI。当我尝试将我的代理(或我在其他地方读到的从属?)连接到服务器时,我开始遇到问题。

我尝试过的方法

我尝试设置负载均衡器,但无法使其工作,因为我使用的是 Digital Ocean,而且我找到的大多数文档都是针对 GKE / EKS 和其他具有自己的内部 LB 的。我还尝试/agents在服务的端口名称上映射路由,然后在另一个具有“ClusterIP”类型的服务上映射路由,但没有成功(未从 Jenkins 找到)。

我当前的配置

jenkins-deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: jenkins-dep
  labels:
    app: jenkins
spec:
  replicas: 1
  selector:
    matchLabels:
      app: jenkins
  template:
    metadata:
      labels:
        app: jenkins
    spec:
      containers:
      - name: jenkins
        image: jenkins/jenkins:lts-jdk11
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 8080
        - containerPort: 50000

jenkins-service.yaml

apiVersion: v1
kind: Service
metadata:
  name: jenkins-svc
  labels:
    app: jenkins
spec:
  type: NodePort
  selector:
    app: jenkins
  ports:
  - name: ui
    protocol: TCP
    port: 8080
    targetPort: 8080
    nodePort: 32500
  - name: agents
    protocol: TCP
    port: 50000
    targetPort: 50000
    nodePort: 32501

jenkins-ingress.yaml

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: jenkins-ingress
spec:
  tls:
  - hosts:
      - jenkins.example.com
    secretName: tls-secret
  rules:
  - host: jenkins.example.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: jenkins-svc
            port:
              name: ui
      #- path: /agents
      #  pathType: Prefix
      #  backend:
      #    service:
      #      name: jenkins-svc
      #      port:
      #        name: agents

关键是:如何让代理可以使用 Jenkins 端口 50000 连接我的服务器?或者如何更改 Jenkins 设置以适应此类配置?

答案1

据我所知,詹金斯使用自定义协议用于与其构建代理进行通信,该代理是二进制 Java RMI,而不是基于 HTTP。由于 Ingress 资源是仅有的用于host:虚拟调度HTTP 请求,您不能使用任何kind: Ingress声明来执行此操作

但是,具体来说,使用 nginx-ingress 控制器,它们确实允许公开 TCP 服务这可能会做你想做的事

相关内容