I am new to Kubernetes and been looking at it as an option for a specific solution.
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: -
Are there any similar examples available?
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.
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.
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.