A.2. Deploying the Containers

Execute the following commands to deploy the Red Hat Gluster Storage container on the nodes:
  1. List out the hostnames of the nodes on which the Red Hat Gluster Storage container has to be deployed:
    # oc get nodes
    For example:
    # oc get nodes
    
    NAME                    STATUS                     AGE
    node1.example.com       Ready                      12d
    node2.example.com       Ready                      12d
    node3.example.com       Ready                      12d
    master.example.com      Ready,SchedulingDisabled   12d
  2. Execute the following command to label all nodes that will run Red Hat Gluster Storage pods:
    # oc label node <NODENAME> storagenode=glusterfs
    For example:
    # oc label nodes 192.168.90.3 storagenode=glusterfs
    node "192.168.90.3" labeled
    
    Repeat this command for every node that will be in the GlusterFS cluster.
    Verify the label has set properly by running the following command:
    # oc get nodes --show-labels
    192.168.90.2   Ready                      12d   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/hostname=192.168.90.2,storagenode=glusterfs
    192.168.90.3   Ready                      12d   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/hostname=192.168.90.3,storagenode=glusterfs
    192.168.90.4   Ready                      12d   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/hostname=192.168.90.4,storagenode=glusterfs
    192.168.90.5   Ready,SchedulingDisabled   12d   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/hostname=192.168.90.5
  3. Execute the following command to deploy the Red Hat Gluster Storage pods:
    # oc process glusterfs | oc create -f -
    daemonset "glusterfs" created

    Note

    This does not initialize the hardware or create trusted storage pools. That aspect will be taken care by heketi which is explained in the further steps.
  4. Execute the following command to grant the heketi Service Account the neccessary privileges:
    # oc policy add-role-to-user edit system:serviceaccount:<project_name>:heketi-service-account
    # oc adm policy add-scc-to-user privileged -z heketi-service-account
    For example:
    # oc policy add-role-to-user edit system:serviceaccount:storage-project:heketi-service-account
    # oc adm policy add-scc-to-user privileged -z heketi-service-account
  5. Execute the following command to deploy deploy-heketi:
    # oc process deploy-heketi | oc create -f -
    For example:
    # oc process deploy-heketi | oc create -f -
    
    service "deploy-heketi" created
    route "deploy-heketi" created
    deploymentconfig "deploy-heketi" created
  6. Execute the following command to verify that the containers are running:
    # oc get pods
    For example:
    # oc get pods
    NAME                    READY     STATUS    RESTARTS   AGE
    storage-project-router-1-pj9ea     1/1       Running   0          1d
    deploy-heketi-1-m7x8g   1/1       Running   0          1m
    glusterfs-41lfl         1/1       Running   0          1m
    glusterfs-dtyr4         1/1       Running   0          1m
    glusterfs-ral2d         1/1       Running   0          1m