My organization has different departments. In my department, we mostly work with containerization. I am using Red Hat Enterprise Linux as a part of OpenShift. I use the basic package and base image of Red Hat Enterprise Linux.
For scale-up in our platform, we use CoreOS as the master, and for the workers, we use the Red Hat Enterprise Linux service. From OpenShift version 4.10 onwards, we cannot use Red Hat Enterprise Linux 7 worker nodes. We were using Red Hat Enterprise Linux 7 worker nodes, so we upgraded to Red Hat Enterprise Linux 8.
For OpenShift, there are some recommendations from Red Hat in terms of what needs to be used for the control plane and what needs to be used for the worker nodes. When you are using CoreOS and Red Hat Enterprise Linux worker nodes, there are some difficulties in managing them. For example, when you upgrade OpenShift, you need to upgrade two times. The control plane is upgraded separately because it uses CoreOS. The control plane has a lot of certificate updates that will in turn be updated on the worker nodes, so you have one restart of all worker nodes, and then when you need to upgrade your worker nodes, there will be one more restart.
Overall, you have two reboots in your production environment, which is an issue, but it is related to your choice of product in your environment. We have this issue because we opted to use Red Hat Enterprise Linux 7 or Red Hat Enterprise Linux 8 worker machines, whereas Red Hat recommends using CoreOS because it is pretty fast in terms of rebooting and functionality. When you upgrade the control plane, that itself will update the worker nodes, so you are done in one shot. When you need to upgrade your Red Hat Enterprise Linux machines, you need to use the Ansible Playbook. You can then upgrade to Red Hat Enterprise Linux 7, 8, or any other version. Regardless of the versions, you can upgrade the operating system and the OpenShift version. For this purpose and for some ad-hoc activities, we are using Ansible Playbooks.