Saltar al contenido

Complemento Kubernetes Jenkins: esclavos siempre fuera de línea

Nuestros investigadores estrellas han agotado sus provisiones de café, buscando a tiempo completo por la respuesta, hasta que Miriam halló la solución en Gitea así que hoy la compartimos aquí.

Solución:

Solo quiero agregar un poco más de explicación a las respuestas anteriores para los novatos.

Al exponer la interfaz de usuario de jenkins, también debe exponer el puerto interno 50000. Aquí hay un servicio simple para una implementación de jenkins:

apiVersion: v1
kind: Service
metadata:
  name: jenkins
  namespace: jenkins
spec:
  type: NodePort
  ports:
    - port: 8080
      name: "http"
      nodePort: 30000
      targetPort: 8080
    - port: 50000
      name: "slave"
      nodePort: 30010
      targetPort: 50000
  selector:
    app: jenkins

Para el acceso externo a la interfaz de usuario de Jenkins, nodePort se está utilizando en la configuración anterior. Estoy exponiendo el puerto 8080 al nodePort 30000 (la IU de Jenkins ahora estará disponible en node_ip:30000) y exponiendo el puerto pod 50000 al nodeport 30010.

Una vez creado el svc:

$ kubectl get svc -n jenkins
NAME      CLUSTER-IP    EXTERNAL-IP   PORT(S)                          AGE
jenkins   10.233.5.94          8080:30000/TCP,50000:30010/TCP   23m

Ahora agrega jenkins_ip:30010 como Jenkins Tunnel.

Cuando se ejecuta jenkins en Kubernetes, tanto el maestro como los esclavos de jenkins pueden resolver el nombre del servicio.

La mejor manera de configurar esto es usar el DNS interno y establecer la URL de jenkins en:

http://jenkins:8080

(suponiendo que llamó a su servicio jenkins y su puerto en el servicio es 8080)

No se requiere túnel.

El beneficio de este enfoque es que sobrevivirá a los reinicios de sus jenkins sin reconfiguración.

El beneficio secundario es que no tendría que exponer a Jenkins al mundo exterior, lo que limita los riesgos de seguridad.

Debe exponer los puertos 8080 y 50000 como se describe en la configuración de ejemplo del complemento https://github.com/jenkinsci/kubernetes-plugin/blob/master/src/main/kubernetes/jenkins.yml

valoraciones y reseñas

Te invitamos a añadir valor a nuestra información dando tu experiencia en los informes.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *