Changing the CRI-O with Machine Config for Db2 Warehouse

You can use the Machine Config operator to manually update the OpenShift® system where Db2® Warehouse is running by using the OpenShift Container Platform (OCP) console or CLI.

About this task

CRI-O allows Kubernetes to use any Open Container Initiative (OCI)-compliant runtime to run pods. These pods share a namespace and live in the same control group (cgroup).

The Machine Config operator focuses on the operating system itself, managing updates to systemd, CRI-O/kubelet, kernel, NetworkManager, and the like. It also offers a MachineConfig CRD that can write configuration files onto the host.

Note that the steps for changing the CRI-O depend on the OpenShiftversion that you are using.

Procedure

  1. For deployments on OpenShift versions 4.8 and 4.10, follow these steps:
    1. Set the CRI-O max process IDs (PIDs) limit to 16384 by creating a ContainerRuntimeConfig resource.

      The following example of a ContainerRuntimeConfig resource sets the PIDs limit to 16k on all worker nodes:

      apiVersion: machineconfiguration.openshift.io/v1
      kind: ContainerRuntimeConfig
      metadata:
       name: crio-pids-limit
      spec:
       machineConfigPoolSelector:
         matchLabels:
           pools.operator.machineconfiguration.openshift.io/worker: '' 
       containerRuntimeConfig:
         pidsLimit: 16384
  2. Important:

    To change this setting on OpenShift Service on AWS (ROSA) or Azure (ARO), you must have a Support Exception from Red Hat. For more information, see Change pids_limit in OSD/ROSA/ARO on the Red Hat Customer Portal.

    For deployments on Red Hat OpenShift version 4.12, the PIDS limit is set in a KubeletConfig.
    1. Log in to OpenShift Container Platform as an admin user:
      oc login ${OCP_URL}
      
    2. Label the MachineConfigPool custom resource on the worker nodes:
      oc label machineconfigpool worker custom-crio=pid-limit --overwrite
      
    3. Create the KubeletConfig that defines the podPidsLimit:
      oc apply -f - << EOF
      apiVersion: machineconfiguration.openshift.io/v1
      kind: KubeletConfig
      metadata:
        name: cpd-pidslimit-kubeletconfig
      spec:
        kubeletConfig:
          podPidsLimit: 16384
        machineConfigPoolSelector:
          matchLabels:
            custom-crio: pid-limit
      EOF