【发布时间】:2020-04-01 16:07:11
【问题描述】:
我的主要任务是从 EC2 实例/服务器创建一个 Jenkins 节点。
Jenkins 服务器位于通过 jx 部署的 EKS 上
$ jx version
jx 2.0.818
jenkins x platform 2.0.1376
Kubernetes cluster v1.13.12
kubectl v1.17.0
helm client Client: v2.16.1
git 2.23.0
Operating System Mac OS X 10.15.4
我面临的问题:
- Jenkins 的 Helm 图表部署了名为
jenkins-agent和jenkins的 2 个服务。 related issue - 默认配置为仅使用
jenkins服务作为后端的入口,外部代理无法通过 HOST 访问端口50000。 - 我无法编辑
jenkins入口以指向服务jenkins并带有 2 个后端端口8080和50000(入口只允许每个服务/路径一个端口!)。 related issue
您可以看到这里有 2 个服务:1 个 jenkins 用于 jenkins master 和一个用于 jenkins slave jenkins-agent,但只有一个入口 jenkins 指向 jenkins 端口 8080 上的 svc 后端。
$ kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S)
heapster ClusterIP ************ <none> 8082/TCP
jenkins ClusterIP ************ <none> 8080/TCP
jenkins-agent ClusterIP ************ <none> 50000/TCP
jenkins-x-chartmuseum ClusterIP ************ <none> 8080/TCP
jenkins-x-docker-registry ClusterIP ************ <none> 5000/TCP
$ kubectl get ingress
NAME HOSTS ADDRESS PORTS
chartmuseum chartmuseum.** ***.amazonaws.com 80
docker-registry docker-registry.** ***.amazonaws.com 80
jenkins jenkins.** ***.amazonaws.com 80
我尝试创建另一个特定于jenkins-agent svc 的入口并使用类似alb.ingress.kubernetes.io/group.name: mygroup 的东西。 info link
我未能将 2 个入口绑定在一起,不幸的是 jenkins 入口有 kubernetes.io/ingress.class: nginx 和 ingress.class 没有此功能...
我检查了安全组以打开端口 50000。
我尝试在 AWS 上手动添加一个 50000 端口到负载均衡器,但是当我在 EC2 上运行时,这个命令仍然存在:
java -jar agent.jar -jnlpUrl http://JENKINS_URL/computer/****-service/slave-agent.jnlp -secret ****** -workDir "/home/ec2-user/jenkins_home" -failIfWorkDirIsMissing
失败并出现此错误:
provided port:50000 is not reachable
如何将外部 Jenkins 从站添加到 Jenkins,其中 2 个服务一个用于 UI,另一个用于代理。上面的java 命令要求两个端口都打开!
在同一个 PATH 上,因为您需要端口 8080 来获取 slave-agent.jnlp,并且在获取它之后,它在后台尝试连接到端口 50000
我没有想法......
【问题讨论】:
标签: jenkins amazon-ec2 amazon-eks jenkins-slave jenkins-x