我的主要任务是从 EC2 实例/服务器创建一个 Jenkins 节点。
Jenkins 服务器位于 EKS 上,通过jx
$ 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 图表部署了 2 个名为
jenkins-agent
和的服务jenkins
。相关问题 - 它默认配置为仅使用
jenkins
服务作为后端的入口50000
,外部代理无法通过 HOST 访问端口。 - 我无法编辑
jenkins
入口以指向jenkins
具有 2 个后端端口的服务8080
&50000
(入口只允许每个服务/路径一个端口!)。相关问题
您可以在这里看到,这里有 2 个服务:1 个jenkins
用于 jenkins master,1 个用于 jenkins slave jenkins-agent
,但只有一个入口jenkins
指向jenkins
port 上的 svc 后端8080
。
$ 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
. 信息链接
我未能将 2 个入口绑定在一起,不幸的是jenkins
入口有kubernetes.io/ingress.class: nginx
也 ingress.class
没有这个功能......
我检查了 SecurityGroups 以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
我没主意了...