2016-12-20 6 views
0

Ich habe einen Jenkins- und Kubernetes-Cluster, der in AWS im selben Netzwerk ausgeführt wird. Jenkins hat seine eigene Instanz.Kubernetes-Plugin-Container können keine Verbindung zu Jenkins herstellen

Ich habe das Kubernetes Plugin wie folgt konfiguriert: enter image description here

Die empfohlene JNLP Docker Bild verwendet wird. Der Jenkins JNLP-Port ist so konfiguriert, dass er statisch 5000 ist.

Jetzt, wenn ich den Job starte, zeigt es mir, dass der Knoten offline ist. Wenn ich auf dem Offline-Knoten klicken ich diese:

enter image description here

Das bin ich zu den K8-Cluster gehen macht. Wenn docker ps ausgeführt wird, werden keine Container ausgeführt. Allerdings:

enter image description here

Von dort gehen finde ich was Docker Container wird laufen und was protokolliert er verlässt danach:

enter image description here

Ich benutze: https://github.com/jenkinsci/docker-jnlp-slave als Bild

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

J enkins Version: 2.27

K8: hyperkube:v1.4.3_coreos.0

Jenkins den Behälter nicht spin up, ich denke, es läuft und Fehler, weil keine gültigen Argumente während des Behälters vorgesehen sind, laufen? Ich brauche einen Prozess, bei dem ich mich nicht in meine Container einloggen muss (Java-Clients). Wie erreiche ich das?

UPDATE

Auf der Grundlage dieser Antwort: kubernetes slaves cannot register to jenkins master

Wenn ich in den Behälter einloggen und den Befehl ausführen, dass Jenkins zeigt unter dem Host, der keine Verbindung herstellen können:

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

Der Container verbindet sich über JNLP2 und der Job läuft.

Ich habe versucht, die Argumente wie vorgeschlagen hinzuzufügen, aber kein Glück. Container werden weiterhin nicht automatisch verbunden: enter image description here

Antwort

1

Haben Sie eine Stammverzeichnis nicht schreibbare Nachricht im Containerprotokoll?

[...] 
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) 

In diesem Fall könnten Sie ein ähnliches Problem wie this haben.

PS: Wenn Sie die Protokolle nicht sehen können, entfernen Sie die Option "Pseudokontakt zuweisen"

Verwandte Themen