Preparing the worker node

All of the worker nodes in the Kubernetes cluster need to be able to mount the volumes that users have provisioned for their pods.

If you are using the ontap-nas, ontap-nas-economy, ontap-nas-flexgroup driver for one of your backends, your workers need the NFS tools. Otherwise they require the iSCSI tools.

Recent versions of RedHat CoreOS have both NFS and iSCSI installed by default.

Warning

You should always reboot your worker nodes after installing the NFS or iSCSI tools, or else attaching volumes to containers might fail.

NFS

Install the following system packages:

RHEL / CentOS

sudo yum install -y nfs-utils

Note

You should ensure that the NFS service is started up during boot time.

Ubuntu / Debian

sudo apt-get install -y nfs-common

iSCSI

Keep in mind the following considerations when using iSCSI volumes:

  • Each node in the Kubernetes cluster must have a unique IQN. This is a necessary prerequisite that must be fulfilled.
  • If using RHCOS >=4.5 or RHEL or CentOS >=8.2 with the solidfire-san driver ensure that the CHAP authentication algorithm is set to MD5 in /etc/iscsi/iscsid.conf
sudo sed -i 's/^\(node.session.auth.chap_algs\).*/\1 = MD5/' /etc/iscsi/iscsid.conf
  • When using worker nodes that run RHEL/RedHat CoreOS with iSCSI PVs, make sure to specify the discard mountOption in the StorageClass to perform inline space reclamation. See RedHat’s documentation here.

Note

You should ensure that the iSCSI service is started up during boot time.

RHEL / CentOS

  1. Install the following system packages:

    sudo yum install -y lsscsi iscsi-initiator-utils sg3_utils device-mapper-multipath
    
  2. Check that iscsi-initiator-utils version is 6.2.0.874-2.el7 or higher:

    rpm -q iscsi-initiator-utils
    
  3. Set scanning to manual:

    sudo sed -i 's/^\(node.session.scan\).*/\1 = manual/' /etc/iscsi/iscsid.conf
    
  4. Enable multipathing:

    sudo mpathconf --enable --with_multipathd y --find_multipaths n
    

    Note

    You should ensure the /etc/multipath.conf file contains find_multipaths no under the defaults section.

  5. Ensure that iscsid and multipathd are running:

    sudo systemctl enable --now iscsid multipathd
    
  6. Start and enable iscsi:

    sudo systemctl enable --now iscsi
    

Ubuntu / Debian

Note

For Ubuntu 18.04 you must discover target ports with iscsiadm before starting open-iscsi for the iSCSI daemon to start. You can alternatively modify the iscsi service to start iscsid automatically.

  1. Install the following system packages:

    sudo apt-get install -y open-iscsi lsscsi sg3-utils multipath-tools scsitools
    
  2. Check that open-iscsi version is 2.0.874-5ubuntu2.10 or higher (for bionic) or 2.0.874-7.1ubuntu6.1 or higher (for focal):

    dpkg -l open-iscsi
    
  3. Set scanning to manual:

    sudo sed -i 's/^\(node.session.scan\).*/\1 = manual/' /etc/iscsi/iscsid.conf
    
  4. Enable multipathing:

    sudo tee /etc/multipath.conf <<-'EOF'
    defaults {
        user_friendly_names yes
        find_multipaths no
    }
    EOF
    

    Note

    You should ensure the /etc/multipath.conf file contains find_multipaths no under the defaults section.

    sudo systemctl enable --now multipath-tools.service
    sudo service multipath-tools restart
    
  5. Ensure that open-iscsi and multipath-tools are enabled and running:

    sudo systemctl status multipath-tools
    sudo systemctl enable --now open-iscsi.service
    sudo systemctl status open-iscsi
    

Note

If you want to learn more about automatic worker node preparation, which is a beta feature, see Automatic worker node preparation.