Dockerfiles =========== - Long (many-layer) Dockerfiles may cause a significant disruption to the OpenShift cluster (far behind just performance penalty of working with this layers). Currently, it is imperative to reduce the number of intermediate images resident on the OpenShift nodes. * The better approach is to optimize Dockerfiles: All ENV defined at once, as few ARG as possible, signle COPY, and a single RUN to setup everything. * Alternatively, the final image can be squashed with 'docker build --squash ...' (enable experimental features in docker daemon). However, this is incompatible with OpenShift build process. If optimizing already running applications, it is not enough just to re-build images. Old images could be referenced by the old 'rc' left in the system or even stopped containers lost by OpenShift infrastructure. * Check if old images still present (https://github.com/TomasTomecek/sen is only application I am aware of capable of showing it) * See maintenance section how to get rid if old images are still present Deployments =========== - CronJobs is currently a bit problematic and periodically cause some lost resources, etc. They can be used if necessarily, but it better to minimize. In any case, it is crucial to minimize size of frequently scheduled Job containers (otherwise large I/O). Storage =======