2016-12-20 1 views
0

J'ai un cluster Jenkins et Kubernetes qui s'exécute dans le même réseau dans AWS. Jenkins a son propre exemple.Les conteneurs de plug-ins Kubernetes ne peuvent pas se reconnecter à Jenkins

J'ai configuré le plugin Kubernetes comme suit: enter image description here

L'image JNLP docker recommandée est utilisé. Le port Jenkins JNLP est configuré pour être statique 5000. Maintenant, lorsque je lance le travail, il me montre que le nœud est hors ligne. Lorsque je clique sur le nœud déconnecté je reçois ceci:

enter image description here

Cela me fait aller au cluster de K8. L'exécution docker ps ne montre aucun conteneur en cours d'exécution. Cependant:

enter image description here

De là, je vais trouver ce conteneur docker s'exécutent et quels logs il laisse après:

enter image description here

J'utilise: https://github.com/jenkinsci/docker-jnlp-slave comme l'image

https://github.com/jenkinsci/kubernetes-plugin

J version enkins: 2.27

K8: hyperkube:v1.4.3_coreos.0

Jenkins ne tourne le conteneur, je suppose que cela fonctionne et les erreurs parce que aucun argument valable sont fournis pendant le conteneur courir? Je n'ai pas besoin de me connecter à mes conteneurs (clients Java). Comment puis-je y parvenir?

MISE À JOUR

Sur la base de cette réponse: kubernetes slaves cannot register to jenkins master

Si je me connecte dans le conteneur et exécutez la commande que Jenkins affiche sous l'hôte qui ne peuvent pas se connecter:

java -jar /usr/share/jenkins/slave.jar -jnlpUrl https://test.myhost.com/computer/jenkinsminions-10f0b7d49054ac/slave-agent.jnlp -secret 62637e83008f50eb94483ad609e9a2719d313fa56e640e4beca9eebeaf0b1af2

Le conteneur se connecte via JNLP2 et le travail s'exécute.

J'ai essayé d'ajouter les arguments comme suggéré, mais pas de chance. Les conteneurs ne se connecteront toujours pas automatiquement: enter image description here

Répondre

1

Avez-vous un message racine non accessible en écriture dans le journal du conteneur?

[...] 
Exception in thread "main" java.lang.RuntimeException: Root directory not writable 
    at hudson.remoting.FileSystemJarCache.<init>(FileSystemJarCache.java:44) 
    at hudson.remoting.Engine.<init>(Engine.java:139) 
    at hudson.remoting.jnlp.Main.createEngine(Main.java:164) 
    at hudson.remoting.jnlp.Main.main(Main.java:148) 
    at hudson.remoting.jnlp.Main._main(Main.java:144) 
    at hudson.remoting.jnlp.Main.main(Main.java:110) 

Dans ce cas, vous pourriez avoir un problème similaire à this.

PS: Si vous ne pouvez pas voir les journaux, essayez de supprimer l'option « Allouer pseudo-terminal »