We have no way to guarantee a fluentd pod starts running on a host, because Kube does not support pod priority and preemption. We need to consider providing a playbook that will work to ensure every node in a cluster labeled to run fluentd will that pod running there.
Here is a gist for a script that works to get fluentd running on a given node of the cluster it is labeled for currently: https://gist.github.com/portante/2b91dd7d49636c7e40fa53fb7ed1388b We should either add this script to the product, or stop using fluentd under daemonsets and use system containers deployed from ansible instead.
After considering this further, pod priority and preemption won't help if there are other issues starting the fluentd pod that affect the OpenShift node or docker. We need to consider running the log collectors *out side* of OpenShift as part of the base RHEL services. We also need a work-around until then based on the gist from comment #1. This is a data-loss situation for customers.
Another BZ describing how fluentd pods fail to start: https://bugzilla.redhat.com/show_bug.cgi?id=1560428