Using Kubernetes to manage deployment on specific and targeted nodes

1/24/2016

I am new to Kubernetes and been looking at it as an option for a specific solution.

  • We have a scenario where we have 100+ physical machines running RHEL distributed across different locations.
  • There is a plan to deploy and manage docker based containers on each of these machines. Let's group these containers as Pod A.
  • Now each of these machines require an instance of Pod A running on them and automatically synchronise if there are any changes.
  • Over time new machines maybe added and they will need to automatically get Pod A running on them as well.

I understand the idea behind Kubernetes is to abstract the machine and OS layer but in this case we can't do that. So I guess I have a few questions around this: -

  • Is Kubernetes the correct choice here? Are we breaking the fundamental concept behind it?
  • Is it possible to tag each machine as an identifiable node?
  • Target a specific Pod to a subset of nodes?

Are there any similar examples available?

-- Tobias Rudolf
kubernetes

3 Answers

1/24/2016

There is a resource named daemonset that spawn at least a pod per node, on a new node added the pod will be spawn on it automatically.

About update, change the image in the resource daemonset and all pods will be updated.

-- ant31
Source: StackOverflow

1/25/2016

As @anti13 mentioned, the DaemonSet abstraction does exactly what you want: https://github.com/kubernetes/kubernetes/blob/master/docs/admin/daemons.md

As an aside, all of the features Grega mentioned are available in core Kubernetes. OpenShift does lots of great stuff, but you don't need it for the features he mentioned, or for DaemonSet.

-- DavidO
Source: StackOverflow

1/24/2016

You might want to look at OpenShift (either Origin for FOSS or Enterprise for a fully supported product).

Essentially, OpenShift is Docker and Kubernetes, but with a number of Kubernetes plugins and service pods aimed at providing just what you are looking for (and much more).

You will find that the plugins introduce additional resource types such as ReplicationControllers, pod scheduling policies (such as region affinity and zone spreading), node selectors and labels, etc.

-- Grega Bremec
Source: StackOverflow