Hi!

I'm creating the Kubernetes plugin [1] to start slaves in Kubernetes or 
Google Container Engine, which basically means launching Docker containers 
across multiple hosts with just one API.
Some background: Kubernetes allows launching individual containers (Pods) 
or creating a ReplicationController, which accepts a Pod template and a 
number of how many containers you want to run, and can be resized 
dynamically, a pool of containers.

Initially I though about implementing the plugin using a 
ReplicationController and resizing it as new slaves are needed, but seems 
that Jenkins operation doesn't fit well with this idea. It would prevent 
killing specific slaves, it would just be a pool. So I went ahead and moved 
to launch Pods one by one.

The issue I have now is about initialization time, where the container is 
not accepting connections until the image is downloaded and started. The 
Docker plugin has this comment [2]

// Docker instances may have a long init script. If we declare
// the provisioning complete by returning without the connect
// operation, NodeProvisioner may decide that it still wants
// one more instance, because it sees that (1) all the slaves
// are offline (because it's still being launched) and
// (2) there's no capacity provisioned yet.
//
// deferring the completion of provisioning until the launch
// goes successful prevents this problem.
slave.toComputer().connect(false).get();

Should I do the same?

There is also the issue that Kubernetes would be better suited for swarm 
slaves. Opening ssh or ports in each pod is more complicated than just 
doing the connection to the master from the container.

Thanks!

[1] 
https://github.com/carlossg/jenkins-kubernetes-plugin/blob/master/src/main/java/org/csanchez/jenkins/plugins/kubernetes/KubernetesCloud.java
[2] 
https://github.com/jenkinsci/docker-plugin/blob/master/src/main/java/com/nirima/jenkins/plugins/docker/DockerCloud.java#L239

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-dev/5e641038-b83b-4901-83a8-4bb54255498a%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to