5.2. Environment Requirements

The requirements for Red Hat Enterprise Linux Atomic Host, Red Hat OpenShift Container Platform, Red Hat Enterprise Linux, and Red Hat Gluster Storage are described in this section. A Red Hat Gluster Storage Container Native with OpenShift Container Platform environment consists of Red Hat OpenShift Container Platform installed on either Red Hat Enterprise Linux Atomic Host or Red Hat Enterprise Linux.

5.2.1. Installing Red Hat Gluster Storage Container Native with OpenShift Container Platform on Red Hat Enterprise Linux 7 based OpenShift Container Platform Cluster

This section describes the procedures to install Red Hat Gluster Storage Container Native with OpenShift Container Platform on Red Hat Enterprise Linux 7 based OpenShift Container Platform 3.6.

5.2.1.1. Setting up the Openshift Master as the Client

You can use the OpenShift Master as a client to execute the oc commands across the cluster when installing OpenShift. Generally, this is setup as a non-scheduled node in the cluster. This is the default configuration when using the OpenShift installer. You can also choose to install their client on their local machine to access the cluster remotely. For more information, see https://access.redhat.com/documentation/en/openshift-container-platform/3.6/single/cli-reference/#installing-the-cli.
Install heketi-client and cns-deploy packages

Execute the following commands to install heketi-client and the cns-deploy packages.

# subscription-manager repos --enable=rh-gluster-3-for-rhel-7-server-rpms
# yum install cns-deploy heketi-client
After installing the heketi-client and the cns-deploy packages, disable the gluster repo by executing the following command:
# subscription-manager repos --disable=rh-gluster-3-for-rhel-7-server-rpms

5.2.1.2. Setting up the Red Hat Enterprise Linux 7 Client for Installing Red Hat Gluster Storage Container Native with OpenShift Container Platform

To set up the Red Hat Enterprise Linux 7 client for installing Red Hat Gluster Storage Container Native with OpenShift Container Platform, perform the following steps:
Install heketi-client and cns-deploy packages

Execute the following commands to install heketi-client and the cns-deploy packages.

# subscription-manager repos --enable=rh-gluster-3-for-rhel-7-server-rpms
# yum install cns-deploy heketi-client
# subscription-manager repos --disable=rh-gluster-3-for-rhel-7-server-rpms
Subscribe to the OpenShift Container Platform 3.6 repository

If you are using OpenShift Container Platform 3.6, subscribe to 3.6 repository to enable you to install the Openshift client packages

# subscription-manager repos --enable=rhel-7-server-ose-3.6-rpms --enable=rhel-7-server-rpms
# yum install atomic-openshift-clients
# yum install atomic-openshift

5.2.2. Installing Red Hat Gluster Storage Container Native with OpenShift Container Platform on Red Hat Enterprise Linux Atomic Host OpenShift Container Platform Cluster

Red Hat Enterprise Linux Atomic host does not support the installation of additional RPMs. Hence, an external client is required on Red Hat Enterprise Linux to install the required packages. To set up the client for Red Hat Enterprise Linux Atomic Host based installations, refer Section 5.2.1.2, “Setting up the Red Hat Enterprise Linux 7 Client for Installing Red Hat Gluster Storage Container Native with OpenShift Container Platform”

5.2.3. Red Hat OpenShift Container Platform Requirements

The following list provides the Red Hat OpenShift Container Platform requirements:
  • Configuring Multipathing on all Initiators

    To ensure the iSCSI initiator can communicate with the iSCSI targets and achieve HA using multipathing, execute the following steps on all the OpenShift nodes (iSCSI initiator) where the client pods are hosted:

    1. To install initiator related packages on all the nodes where initiator has to be configured, execute the following command:
      # yum install iscsi-initiator-utils device-mapper-multipath
    2. To enable multipath, execute the following command:
      # mpathconf --enable
    3. Add the following content to the devices section in the /etc/multipath.conf file
      device {
                      vendor "LIO-ORG"
                      user_friendly_names "yes" # names like mpatha
                      path_grouping_policy "failover" # one path per group
                      path_selector "round-robin 0"
                      failback immediate
                      path_checker "tur"
                      prio "const"
                      no_path_retry 120
                      rr_weight "uniform"
              }
    4. Execute the following command to restart services:
      # systemctl restart multipathd
  • The OpenShift cluster must be up and running. For information on setting up OpenShift cluster, see https://access.redhat.com/documentation/en/openshift-container-platform/3.6/paged/installation-and-configuration.
  • A cluster-admin user must be created. For more information, see Appendix B, Cluster Administrator Setup
  • All OpenShift nodes on Red Hat Enterprise Linux systems must have glusterfs-client RPMs (glusterfs, glusterfs-client-xlators, glusterfs-libs, glusterfs-fuse) installed.
  • It is recommended to persist the logs for the Heketi container. For more information on persisting logs, refer https://access.redhat.com/documentation/en/openshift-container-platform/3.6/single/installation-and-configuration/#install-config-aggregate-logging.

5.2.4. Red Hat Gluster Storage Requirements

The following list provides the details regarding the Red Hat Gluster Storage requirements:
  • Installation of Heketi packages must have valid subscriptions to Red Hat Gluster Storage Server repositories.
  • Red Hat Gluster Storage installations must adhere to the requirements outlined in the Red Hat Gluster Storage Installation Guide.
  • The versions of Red Hat Enterprise OpenShift and Red Hat Gluster Storage integrated must be compatible, according to the information in Section 5.1, “Supported Versions” section.
  • A fully-qualified domain name must be set for Red Hat Gluster Storage server node. Ensure that the correct DNS records exist, and that the fully-qualified domain name is resolvable via both forward and reverse DNS lookup.

Important

Restrictions for using Snapshot

  • After a snapshot is created, it must be accessed though the user-serviceable snapshots feature only. This can be used to copy the old versions of files into the required location.
    Reverting the volume to a snapshot state is not supported and should never be done as it might damage the consistency of the data.
  • On a volume with snapshots, volume changing operations, such as volume expansion, must not be performed.

5.2.5. Planning Guidelines

To prevent potential deployment or scaling issues, review the following guidelines before deploying Red Hat Container-Native Storage or Container-Ready Storage with OpenShift Container Platform..
Ensure that the Trusted Storage Pool is appropriately sized and you have room for dynamic scaling on demand. This action ensures that you do not scale beyond the following maximum limits:
  • Sizing guidelines on Container-Native Storage 3.6 or Container-Ready Storage 3.6:
    • Persistent volumes backed by the file interface: For typical operations, size for 300-500 persistent volumes backed by files per three-node Container-Native Storage or Container-Ready Storage cluster. The maximum limit of supported persistent volumes backed by the file interface is 1000 persistent volumes per three-node cluster in a Container-Native Storage or Container-Ready Storage deployment. Considering that micro-services can dynamically scale as per demand, it is recommended that the initial sizing keep sufficient headroom for the scaling. If additional scaling is needed, add a new three-node Container-Native Storage or Container-Ready Storage cluster to support additional persistent volumes
      Creation of more than 1,000 persistent volumes per trusted storage pool is not supported for file-based storage.
    • Persistent volumes backed by block-based storage: Size for a maximum of 300 persistent volumes per three-node Container-Native Storage or Container-Ready Storage cluster. Be aware that Container-Native Storage 3.6 and Container-Ready Storage 3.6 supports only OpenShift Container Platform logging and metrics on block-backed persistent volumes.
    • Persistent volumes backed by file and block: Size for 300-500 persistent volumes (backed by files) and 100-200 persistent volumes (backed by block). Do not exceed these maximum limits of file or block-backed persistent volumes or the combination of a maximum 1000 persistent volumes per three-node Container-Native Storage or Container-Ready Storage cluster.
    • 3-way distributed-replicated volumes is the only supported volume type.
    • Each physical or virtual node that hosts a Red Hat Gluster Storage Container-Native Storage or Container-Ready Storage peer requires the following:
      • a minimum of 8 GB RAM and 30 MB per persistent volume.
      • the same disk type.
      • the heketidb utilises 2 GB distributed replica volume.
  • Deployment guidelines on Container-Native Storage 3.6 or Container-Ready Storage 3.6:
    • In Container-Native Storage mode, you can install the Container-Native Storage nodes, Heketi, and all provisioner pods on OpenShift Container Platform Infrastructure nodes or OpenShift Container Platform Application nodes.
    • In Container-Ready Storage mode, you can install Heketi and all provisioners pods on OpenShift Container Platform Infrastructure nodes or on OpenShift Container Platform Application nodes
  • Red Hat Gluster Storage Container Native with OpenShift Container Platform supports up to 14 snapshots per volume by default (snap-max-hard-limit =14 in Heketi Template).