Моя основная задача - создать узел Jenkins из экземпляра / сервера EC2.
Сервер 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 развертывает 2 службы с именами
jenkins-agent
и jenkins
. связанная проблема - Вход по умолчанию настроен на использование только
jenkins
службы в качестве бэкэнда, а порт 50000
недоступен для внешних агентов через HOST. - Я не могу отредактировать вход
jenkins
так, чтобы он указывал на службу jenkins
с двумя внутренними портами 8080
& 50000
(вход разрешает только один порт на службу / путь!). связанная с этим проблема
Здесь вы можете видеть, что здесь есть 2 услуги: 1 jenkins
для мастера jenkins и одна для подчиненного jenkins jenkins-agent
, но только один вход jenkins
который указывает на jenkins
sv c backend на порт 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
Я попытался создать другой входной спецификатор c для jenkins-agent
sv c и использовать что-то вроде alb.ingress.kubernetes.io/group.name: mygroup
. info link
Мне не удалось связать 2 входа вместе, к сожалению, вход jenkins
имеет kubernetes.io/ingress.class: nginx
, а ingress.class
не имеет этой функции ...
Я проверил SecurityGroups, чтобы открыть порт 50000
.
Я попытался go на 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 обслуживает один для пользовательского интерфейса и другой для агента. Приведенная выше команда java
требует, чтобы оба порта были открыты!
На том же PATH
, потому что вам нужен порт 8080, чтобы получить slave-agent.jnlp
, и после его получения, в фоновом режиме он пытается подключиться к порту 50000
Я отсутствует идей ...