Chapter 4. Deploying workloads on IBM
You can deploy OpenShift sandboxed containers workloads on IBM Z® and IBM® LinuxONE.
Deploying OpenShift sandboxed containers workloads on IBM Z® and IBM® LinuxONE is a Technology Preview feature only. Technology Preview features are not supported with Red Hat production service level agreements (SLAs) and might not be functionally complete. Red Hat does not recommend using them in production. These features provide early access to upcoming product features, enabling customers to test functionality and provide feedback during the development process.
For more information about the support scope of Red Hat Technology Preview features, see Technology Preview Features Support Scope.
Cluster prerequisites
- You have installed Red Hat OpenShift Container Platform 4.14 or later.
- Your cluster has three control nodes and two worker nodes.
Deployment flow
While this document refers only to IBM Z®, all procedures also apply to IBM® LinuxONE.
You deploy OpenShift sandboxed containers workloads by performing the following steps:
- Configure a libvirt volume on your KVM host.
- Create a KVM guest image and upload it to the libvirt volume.
- Create a peer pod VM image and upload it to the libvirt volume.
- Create a secret for the libvirt provider.
- Create a config map for the libvirt provider.
- Create an SSH key secret for your KVM host.
-
Create a
KataConfigCR. - Optional: Modify the peer pod VM limit per node.
-
Configure your workload objects to use the
kata-remoteruntime class.
- Cluster nodes and peer pods must be in the same IBM Z® KVM host logical partition (LPAR).
- Cluster nodes and peer pods must be connected to the same subnet.
4.1. Preparing your environment Copy linkLink copied to clipboard!
Perform the following steps to prepare your environment:
- Ensure that your cluster has sufficient resources.
- Install the OpenShift sandboxed containers Operator.
4.1.1. Resource requirements Copy linkLink copied to clipboard!
Peer pod virtual machines (VMs) require resources in two locations:
-
The worker node. The worker node stores metadata, Kata shim resources (
containerd-shim-kata-v2), remote-hypervisor resources (cloud-api-adaptor), and the tunnel setup between the worker nodes and the peer pod VM. - The cloud instance. This is the actual peer pod VM running in the cloud.
The CPU and memory resources used in the Kubernetes worker node are handled by the pod overhead included in the RuntimeClass (kata-remote) definition used for creating peer pods.
The total number of peer pod VMs running in the cloud is defined as Kubernetes Node extended resources. This limit is per node and is set by the limit attribute in the peerpodConfig custom resource (CR).
The peerpodConfig CR, named peerpodconfig-openshift, is created when you create the kataConfig CR and enable peer pods, and is located in the openshift-sandboxed-containers-operator namespace.
The following peerpodConfig CR example displays the default spec values:
- 1
- The default limit is 10 VMs per node.
The extended resource is named kata.peerpods.io/vm, and enables the Kubernetes scheduler to handle capacity tracking and accounting.
You can edit the limit per node based on the requirements for your environment. See "Modifying the VM limit per node in peer pods" for more information.
A mutating webhook adds the extended resource kata.peerpods.io/vm to the pod specification. It also removes any resource-specific entries from the pod specification, if present. This enables the Kubernetes scheduler to account for these extended resources, ensuring the peer pod is only scheduled when resources are available.
The mutating webhook modifies a Kubernetes pod as follows:
-
The mutating webhook checks the pod for the expected
RuntimeClassNamevalue, specified in theTARGET_RUNTIME_CLASSenvironment variable. If the value in the pod specification does not match the value in theTARGET_RUNTIME_CLASS, the webhook exits without modifying the pod. If the
RuntimeClassNamevalues match, the webhook makes the following changes to the pod spec:-
The webhook removes every resource specification from the
resourcesfield of all containers and init containers in the pod. -
The webhook adds the extended resource (
kata.peerpods.io/vm) to the spec by modifying the resources field of the first container in the pod. The extended resourcekata.peerpods.io/vmis used by the Kubernetes scheduler for accounting purposes.
-
The webhook removes every resource specification from the
The mutating webhook excludes specific system namespaces in OpenShift Container Platform from mutation. If a peer pod is created in those system namespaces, then resource accounting using Kubernetes extended resources does not work unless the pod spec includes the extended resource.
As a best practice, define a cluster-wide policy to only allow peer pod creation in specific namespaces.
4.1.2. Installing the OpenShift sandboxed containers Operator Copy linkLink copied to clipboard!
You can install the OpenShift sandboxed containers Operator by using the OpenShift Container Platform web console or command line interface (CLI).
4.1.2.1. Installing the Operator by using the web console Copy linkLink copied to clipboard!
You can install the OpenShift sandboxed containers Operator by using the Red Hat OpenShift Container Platform web console.
Prerequisites
-
You have access to the cluster as a user with the
cluster-adminrole.
Procedure
-
In the OpenShift Container Platform web console, navigate to Operators
OperatorHub. -
In the Filter by keyword field, type
OpenShift sandboxed containers. - Select the OpenShift sandboxed containers Operator tile and click Install.
- On the Install Operator page, select stable from the list of available Update Channel options.
Verify that Operator recommended Namespace is selected for Installed Namespace. This installs the Operator in the mandatory
openshift-sandboxed-containers-operatornamespace. If this namespace does not yet exist, it is automatically created.NoteAttempting to install the OpenShift sandboxed containers Operator in a namespace other than
openshift-sandboxed-containers-operatorcauses the installation to fail.- Verify that Automatic is selected for Approval Strategy. Automatic is the default value, and enables automatic updates to OpenShift sandboxed containers when a new z-stream release is available.
- Click Install.
The OpenShift sandboxed containers Operator is now installed on your cluster.
Verification
-
Navigate to Operators
Installed Operators. - Verify that the OpenShift sandboxed containers Operator is displayed.
4.1.2.2. Installing the Operator by using the CLI Copy linkLink copied to clipboard!
You can install the OpenShift sandboxed containers Operator by using the CLI.
Prerequisites
-
You have installed the OpenShift CLI (
oc). -
You have access to the cluster as a user with the
cluster-adminrole.
Procedure
Create a
Namespace.yamlmanifest file:apiVersion: v1 kind: Namespace metadata: name: openshift-sandboxed-containers-operator
apiVersion: v1 kind: Namespace metadata: name: openshift-sandboxed-containers-operatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow Create the namespace by running the following command:
oc create -f Namespace.yaml
$ oc create -f Namespace.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Create an
OperatorGroup.yamlmanifest file:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create the operator group by running the following command:
oc create -f OperatorGroup.yaml
$ oc create -f OperatorGroup.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Create a
Subscription.yamlmanifest file:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create the subscription by running the following command:
oc create -f Subscription.yaml
$ oc create -f Subscription.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
The OpenShift sandboxed containers Operator is now installed on your cluster.
Verification
Ensure that the Operator is correctly installed by running the following command:
oc get csv -n openshift-sandboxed-containers-operator
$ oc get csv -n openshift-sandboxed-containers-operatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow Example output
NAME DISPLAY VERSION REPLACES PHASE openshift-sandboxed-containers openshift-sandboxed-containers-operator 1.6.0 1.5.3 Succeeded
NAME DISPLAY VERSION REPLACES PHASE openshift-sandboxed-containers openshift-sandboxed-containers-operator 1.6.0 1.5.3 SucceededCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.2. Deploying workloads by using the command line Copy linkLink copied to clipboard!
You can deploy OpenShift sandboxed containers workloads by using the command line.
4.2.1. Configuring a libvirt volume Copy linkLink copied to clipboard!
You must configure a libvirt volume on your KVM host. Peer pods use the libvirt provider of the Cloud API Adaptor to create and manage virtual machines.
Prerequisites
- You have installed the OpenShift sandboxed containers Operator on your OpenShift Container Platform cluster by using the OpenShift Container Platform web console or the command line.
- You have administrator privileges for your KVM host.
-
You have installed
podmanon your KVM host. -
You have installed
virt-customizeon your KVM host.
Procedure
- Log in to the KVM host.
Set the name of the libvirt pool by running the following command:
export LIBVIRT_POOL=<libvirt_pool>
$ export LIBVIRT_POOL=<libvirt_pool>Copy to Clipboard Copied! Toggle word wrap Toggle overflow You need the
LIBVIRT_POOLvalue to create the secret for the libvirt provider.Set the name of the libvirt pool by running the following command:
export LIBVIRT_VOL_NAME=<libvirt_volume>
$ export LIBVIRT_VOL_NAME=<libvirt_volume>Copy to Clipboard Copied! Toggle word wrap Toggle overflow You need the
LIBVIRT_VOL_NAMEvalue to create the secret for the libvirt provider.Set the path of the default storage pool location, by running the following command:
export LIBVIRT_POOL_DIRECTORY=<target_directory>
$ export LIBVIRT_POOL_DIRECTORY=<target_directory>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- To ensure libvirt has read and write access permissions, use a subdirectory of the libvirt storage directory. The default is
/var/lib/libvirt/images/.
Create a libvirt pool by running the following command:
virsh pool-define-as $LIBVIRT_POOL --type dir --target "$LIBVIRT_POOL_DIRECTORY"
$ virsh pool-define-as $LIBVIRT_POOL --type dir --target "$LIBVIRT_POOL_DIRECTORY"Copy to Clipboard Copied! Toggle word wrap Toggle overflow Start the libvirt pool by running the following command:
virsh pool-start $LIBVIRT_POOL
$ virsh pool-start $LIBVIRT_POOLCopy to Clipboard Copied! Toggle word wrap Toggle overflow Create a libvirt volume for the pool by running the following command:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.2.2. Creating a KVM guest image Copy linkLink copied to clipboard!
You must create a KVM guest image and upload it to the libvirt volume.
Prerequisites
- IBM z15 or later, or IBM® LinuxONE III or later.
- At least one LPAR running on RHEL 9 or later with KVM.
Procedure
- Log in to your OpenShift Container Platform cluster.
If you have a RHEL subscription, set the subscription environment variables for Red Hat Subscription Management:
Set the organization ID by running the following command:
export ORG_ID=$(cat ~/.rh_subscription/orgid)
$ export ORG_ID=$(cat ~/.rh_subscription/orgid)Copy to Clipboard Copied! Toggle word wrap Toggle overflow Set the activation key by running the following command:
export ACTIVATION_KEY=$(cat ~/.rh_subscription/activation_key)
$ export ACTIVATION_KEY=$(cat ~/.rh_subscription/activation_key)Copy to Clipboard Copied! Toggle word wrap Toggle overflow
If you do not have a RHEL subscription, set the subscription values for RHEL:
Set the organization ID by running the following command:
export ORG_ID=<RHEL_ORGID_VALUE>
$ export ORG_ID=<RHEL_ORGID_VALUE>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Specify your RHEL organization ID.
Set the activation key by running the following command:
export ACTIVATION_KEY=<RHEL_ACTIVATION_KEY>
$ export ACTIVATION_KEY=<RHEL_ACTIVATION_KEY>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Specify your RHEL activation key.
- Log in to your IBM Z® system.
Download the
s390xRHEL KVM guest image from the Red Hat Customer Portal to your libvirt storage directory to grant libvirt correct access.The default directory is
/var/lib/libvirt/images. This image is used to generate the peer pod VM image, which includes the relevant binaries.Set the
IMAGE_URLfor the downloaded image by running the following command:export IMAGE_URL=<path/to/image>
$ export IMAGE_URL=<path/to/image>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Specify the path of the KVM guest image.
Register the guest KVM image by running the following command:
export REGISTER_CMD="subscription-manager register --org=${ORG_ID} \ --activationkey=${ACTIVATION_KEY}"$ export REGISTER_CMD="subscription-manager register --org=${ORG_ID} \ --activationkey=${ACTIVATION_KEY}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow Customize the guest KVM image by running the following command:
virt-customize -v -x -a ${IMAGE_URL} --run-command "${REGISTER_CMD}"$ virt-customize -v -x -a ${IMAGE_URL} --run-command "${REGISTER_CMD}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow Set the checksum of the image by running the following command:
export IMAGE_CHECKSUM=$(sha256sum ${IMAGE_URL} | awk '{ print $1 }')$ export IMAGE_CHECKSUM=$(sha256sum ${IMAGE_URL} | awk '{ print $1 }')Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.2.3. Building a peer pod VM image Copy linkLink copied to clipboard!
You must build a peer pod virtual machine (VM) image and upload it to your libvirt volume.
Procedure
- Log in to your OpenShift Container Platform cluster.
Clone the cloud-api-adaptor repository by running the following command:
git clone --single-branch https://github.com/confidential-containers/cloud-api-adaptor.git
$ git clone --single-branch https://github.com/confidential-containers/cloud-api-adaptor.gitCopy to Clipboard Copied! Toggle word wrap Toggle overflow Change into the
podvmdirectory by running the following command:cd cloud-api-adaptor && git checkout 8577093
$ cd cloud-api-adaptor && git checkout 8577093Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create a builder image from which the final QCOW2 image is generated.
If you have a subscribed RHEL system, run the following command:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow If you have an unsubscribed RHEL system, run the following command:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Generate an intermediate image package with the required binaries for running peer pods by running the following command:
podman build -t podvm_binaries_rhel_s390x \ --build-arg BUILDER_IMG="podvm_builder_rhel_s390x:latest" \ --build-arg ARCH=s390x \ -f podvm/Dockerfile.podvm_binaries.rhel .
$ podman build -t podvm_binaries_rhel_s390x \ --build-arg BUILDER_IMG="podvm_builder_rhel_s390x:latest" \ --build-arg ARCH=s390x \ -f podvm/Dockerfile.podvm_binaries.rhel .Copy to Clipboard Copied! Toggle word wrap Toggle overflow This process takes a significant length of time.
Extract the binaries and build the peer pod QCOW2 image by running the following command:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create an image directory environment variable by running the following command:
export IMAGE_OUTPUT_DIR=<image_output_directory>
$ export IMAGE_OUTPUT_DIR=<image_output_directory>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Specify a directory for the image.
Create the image directory by running the following command:
mkdir -p $IMAGE_OUTPUT_DIR
$ mkdir -p $IMAGE_OUTPUT_DIRCopy to Clipboard Copied! Toggle word wrap Toggle overflow Save the extracted peer pod QCOW2 image by running the following command:
podman save podvm_rhel_s390x | tar -xO --no-wildcards-match-slash '*.tar' | tar -x -C ${IMAGE_OUTPUT_DIR}$ podman save podvm_rhel_s390x | tar -xO --no-wildcards-match-slash '*.tar' | tar -x -C ${IMAGE_OUTPUT_DIR}Copy to Clipboard Copied! Toggle word wrap Toggle overflow Upload the peer pod QCOW2 image to your libvirt volume:
virsh -c qemu:///system vol-upload \ --vol $LIBVIRT_VOL_NAME \ $IMAGE_OUTPUT_DIR/podvm-*.qcow2 \ --pool $LIBVIRT_POOL --sparse
$ virsh -c qemu:///system vol-upload \ --vol $LIBVIRT_VOL_NAME \ $IMAGE_OUTPUT_DIR/podvm-*.qcow2 \ --pool $LIBVIRT_POOL --sparseCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.2.4. Creating a secret Copy linkLink copied to clipboard!
You must create a Secret object on your OpenShift Container Platform cluster.
Prerequisites
-
LIBVIRT_POOL. Use the value you set when you configured libvirt on the KVM host. -
LIBVIRT_VOL_NAME. Use the value you set when you configured libvirt on the KVM host. LIBVIRT_URI. This value is the default gateway IP address of the libvirt network. Check your libvirt network setup to obtain this value.NoteIf libvirt uses the default bridge virtual network, you can obtain the
LIBVIRT_URIby running the following commands:virtint=$(bridge_line=$(virsh net-info default | grep Bridge); echo "${bridge_line//Bridge:/}" | tr -d [:blank:]) LIBVIRT_URI=$( ip -4 addr show $virtint | grep -oP '(?<=inet\s)\d+(\.\d+){3}')$ virtint=$(bridge_line=$(virsh net-info default | grep Bridge); echo "${bridge_line//Bridge:/}" | tr -d [:blank:]) $ LIBVIRT_URI=$( ip -4 addr show $virtint | grep -oP '(?<=inet\s)\d+(\.\d+){3}')Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Procedure
Create a
peer-pods-secret.yamlmanifest file according to the following example:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create the
secretobject by applying the manifest:oc apply -f peer-pods-secret.yaml
$ oc apply -f peer-pods-secret.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
If you update the peer pods secret, you must restart the peerpodconfig-ctrl-caa-daemon DaemonSet to apply the changes.
After you update the secret, apply the manifest. Then restart the cloud-api-adaptor pods by running the following command:
oc set env ds/peerpodconfig-ctrl-caa-daemon -n openshift-sandboxed-containers-operator REBOOT="$(date)"
$ oc set env ds/peerpodconfig-ctrl-caa-daemon -n openshift-sandboxed-containers-operator REBOOT="$(date)"
Restarting a daemon set recreates peer pods. It does not update existing pods.
4.2.5. Creating a config map Copy linkLink copied to clipboard!
You must create a config map on your OpenShift Container Platform cluster for your libvirt provider.
Procedure
Create a
peer-pods-cm.yamlmanifest according to the following example:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Apply the manifest to create a config map:
oc apply -f peer-pods-cm.yaml
$ oc apply -f peer-pods-cm.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow A config map is created for your libvirt provider.
If you update the peer pods config map, you must restart the peerpodconfig-ctrl-caa-daemon daemonset to apply the changes.
After you update the config map, apply the manifest. Then restart the cloud-api-adaptor pods by running the following command:
oc set env ds/peerpodconfig-ctrl-caa-daemon -n openshift-sandboxed-containers-operator REBOOT="$(date)"
$ oc set env ds/peerpodconfig-ctrl-caa-daemon -n openshift-sandboxed-containers-operator REBOOT="$(date)"
Restarting the daemonset recreates the peer pods. It does not update the existing pods.
4.2.6. Creating an SSH key secret Copy linkLink copied to clipboard!
You must create an SSH key secret object for your KVM host.
Procedure
- Log in to your OpenShift Container Platform cluster.
Generate an SSH key pair by running the following command:
ssh-keygen -f ./id_rsa -N ""
$ ssh-keygen -f ./id_rsa -N ""Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy the public SSH key to your KVM host:
ssh-copy-id -i ./id_rsa.pub <KVM_HOST_IP>
$ ssh-copy-id -i ./id_rsa.pub <KVM_HOST_IP>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create the
Secretobject by running the following command:oc create secret generic ssh-key-secret \ -n openshift-sandboxed-containers-operator \ --from-file=id_rsa.pub=./id_rsa.pub \ --from-file=id_rsa=./id_rsa$ oc create secret generic ssh-key-secret \ -n openshift-sandboxed-containers-operator \ --from-file=id_rsa.pub=./id_rsa.pub \ --from-file=id_rsa=./id_rsaCopy to Clipboard Copied! Toggle word wrap Toggle overflow The SSH key secret is created.
Delete the SSH keys you created:
shred -remove id_rsa.pub id_rsa
$ shred -remove id_rsa.pub id_rsaCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.2.7. Creating a KataConfig custom resource Copy linkLink copied to clipboard!
You must create a KataConfig custom resource (CR) to install kata-remote as a runtime class on your worker nodes.
Creating the KataConfig CR triggers the OpenShift sandboxed containers Operator to do the following:
-
Create a
RuntimeClassCR namedkata-remotewith a default configuration. This enables users to configure workloads to usekata-remoteas the runtime by referencing the CR in theRuntimeClassNamefield. This CR also specifies the resource overhead for the runtime.
OpenShift sandboxed containers installs kata-remote as a secondary, optional runtime on the cluster and not as the primary runtime.
Creating the KataConfig CR automatically reboots the worker nodes. The reboot can take from 10 to more than 60 minutes. Factors that impede reboot time are as follows:
- A larger OpenShift Container Platform deployment with a greater number of worker nodes.
- Activation of the BIOS and Diagnostics utility.
- Deployment on a hard disk drive rather than an SSD.
- Deployment on physical nodes such as bare metal, rather than on virtual nodes.
- A slow CPU and network.
Prerequisites
-
You have access to the cluster as a user with the
cluster-adminrole.
Procedure
Create a
cluster-kataconfig.yamlmanifest file according to the following example:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Optional: To install
kata-remoteon selected nodes, specify the node labels according to the following example:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Specify the labels of the selected nodes.
Create the
KataConfigCR:oc create -f cluster-kataconfig.yaml
$ oc create -f cluster-kataconfig.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow The new
KataConfigCR is created and installskata-remoteas a runtime class on the worker nodes.Wait for the
kata-remoteinstallation to complete and the worker nodes to reboot before verifying the installation.
Verification
Monitor the installation progress by running the following command:
watch "oc describe kataconfig | sed -n /^Status:/,/^Events/p"
$ watch "oc describe kataconfig | sed -n /^Status:/,/^Events/p"Copy to Clipboard Copied! Toggle word wrap Toggle overflow When the status of all workers under
kataNodesisinstalledand the conditionInProgressisFalsewithout specifying a reason, thekata-remoteis installed on the cluster.
See KataConfig status messages for details.
4.2.8. Optional: Modifying the number of peer pod VMs per node Copy linkLink copied to clipboard!
You can change the limit of peer pod virtual machines (VMs) per node by editing the peerpodConfig custom resource (CR).
Procedure
Check the current limit by running the following command:
oc get peerpodconfig peerpodconfig-openshift -n openshift-sandboxed-containers-operator \ -o jsonpath='{.spec.limit}{"\n"}'$ oc get peerpodconfig peerpodconfig-openshift -n openshift-sandboxed-containers-operator \ -o jsonpath='{.spec.limit}{"\n"}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow Modify the
limitattribute of thepeerpodConfigCR by running the following command:oc patch peerpodconfig peerpodconfig-openshift -n openshift-sandboxed-containers-operator \ --type merge --patch '{"spec":{"limit":"<value>"}}'$ oc patch peerpodconfig peerpodconfig-openshift -n openshift-sandboxed-containers-operator \ --type merge --patch '{"spec":{"limit":"<value>"}}'1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Replace <value> with the limit you want to define.
4.2.9. Configuring workload objects Copy linkLink copied to clipboard!
You deploy an OpenShift sandboxed containers workload by configuring kata-remote as the runtime class for the following pod-templated objects:
-
Podobjects -
ReplicaSetobjects -
ReplicationControllerobjects -
StatefulSetobjects -
Deploymentobjects -
DeploymentConfigobjects
Do not deploy workloads in the openshift-sandboxed-containers-operator namespace. Create a dedicated namespace for these resources.
Prerequisites
- You have created a secret object for your provider.
- You have created a config map for your provider.
-
You have created a
KataConfigcustom resource (CR).
Procedure
Add
spec.runtimeClassName: kata-remoteto the manifest of each pod-templated workload object as in the following example:Copy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift Container Platform creates the workload object and begins scheduling it.
Verification
-
Inspect the
spec.runtimeClassNamefield of a pod-templated object. If the value iskata-remote, then the workload is running on OpenShift sandboxed containers, using peer pods.