Performing pre-installation tasks

The following conditions must be met before the installation:

  • Ensure that the IBM Spectrum Scale version 5.x.x or above is installed along with the IBM Spectrum Scale management API (GUI).
  • Verify that there is a proper communication link between the IBM Spectrum Scale Management API Server (GUI) and the Kubernetes cluster.
  • Ensure that all Kubernetes worker nodes have the IBM Spectrum Scale client installed on them.
  • Verify that quota is enabled for all the file systems being used for creating persistent volumes.
  • The file system used for the persistent volume must be mounted on all the worker nodes at all times.
  • Ensure that all the worker nodes are running RedHat Enterprise Linux (RHEL) x86_64, ppc64le, s390x or SLES 12 SP3 s390x. For more information on supported RHEL versions, check the IBM Spectrum Scale support matrix at IBM Spectrum Scale FAQs.
  • All worker nodes must be running the same platform (hardware and Linux distribution).
  • It is recommended to use the kubeadm tool to install a Kubernetes cluster.
  • Kubernetes controller-manager process must be run as root.
  • Ensure that IBM Cloud Private (ICP) or Kubernetes is installed. For supported version, see the release notes of IBM Storage Enabler for Containers.
  • Ensure that SELinux is in disabled mode.
  • Ensure that the node kubelet service has the attach/detach capability enabled. The enable-controller-attach-detach is set to True by default. However, confirm that this option is set to True if you are debugging a functional problem.
  • If the controller-manager is configured to run as a pod in your Kubernetes cluster, you must allow the events to be recorded in the controller-manager log file. To enable this, add the default path /var/log to the log file as a host path. You can change this directory by configuring the FLEX-LOG-DIR parameter in the ubiquity-configmap.yml file.
  • Run the # mmlsmount all -L command to ensure that the GPFS file systems are mounted before starting Kubernetes on the nodes.
    The command gives an output similar to the following:
    
    File system gpfs0 is mounted on 6 nodes:
      192.168.138.94     borg45
      192.168.138.62     borg48
      172.16.7.41        borg44
      192.168.138.59     borg50
      192.168.138.95     borg47
      192.168.138.92     borg43
  • Run the # mmlsfs gpfs0 -Q command to ensure that the quota is enabled on the file systems.
    The command gives an output similar to the following:
    flag                value                    description
    ------------------- ------------------------ -----------------------------------
     -Q                 user;group;fileset       Quotas accounting enabled
                        user;group;fileset       Quotas enforced
                        none                     Default quotas enabled

    If you fail to obtain this output, run the # mmchfs gpfs0 -Q yes command.

  • Run the following command to ensure that the GUI server is running and can communicate with the Kubernetes nodes: curl -k -u gui_admin_user:gui_adm_user_password -X GET --header 'accept:application/json' 'https://gui_node:443/scalemgmt/v2/filesystems'.
    The command gives an output similar to the following:
    {
      "filesystems" : [ {
        "name" : "gpfs0"
      } ],
      "status" : {
        "code" : 200,
        "message" : "The request finished successfully."
      }
  • Run the mmchconfig enforceFilesetQuotaOnRoot=yes command to set the enforceFilesetQuotaOnRoot value to yes. This ensures that quotas are enforced for the PVC created with root user ID.
  • Run the # mmlsnodeclass command to ensure that the Kubernetes are not installed or configured on the nodes running the IBM Spectrum Scale GUI. This prevents port number conflicts and memory usage concerns.
    The command gives an output similar to the following. In this example, the name of the node running the IBM Spectrum Scale GUI is defined by the Node Class Name with value GUI_MGMT_SERVERS. In this example, the hostname is borg43.<domain>.
    
    Node Class Name       Members
    --------------------- -----------------------------------------------------------
    GUI_MGMT_SERVERS      borg43.<domain>
    GUI_SERVERS           borg45.<domain>,borg47.<domain>
                          borg48.<domain>,borg43.<domain>
    
  • Ensure that IBM Spectrum Scale is tuned for the Kubernetes pod workload and the memory requirement of pods.