GlusterFS with Kubernetes

Steps to use GlusterFS in Kubernetes for Seldon.

AWS

Assumes you wish to create your glusterfs cluster in a separate VPC from Kubernetes so its lifetime is not connected to that of the Kubernetes cluster.

  1. Create an AWS VPC
    1. Ensure ip range does not overlap with Kubernetes default, e.g. use 192.*
  2. Create a GlusterFS cluster in VPC
    1. Two t2.micro instances minimum
  3. Create a Kubernetes Cluster
  4. Add glusterfs software for client to each minion and also master if you wish
  5. Create a VPC Peering connection in glusterFS VPC to Kubernetes VPC
    1. Create Peering connection and accept request.
    2. Edit glusterfs routing table to allow traffic to kubernetes
      1. There will be two routing tables. Choose the routing table with the subnet. Add the ip range for kubernetes (usually 172.20.0.0/16). Choose the Peering connection as destination.
    3. Edit kubernetes routing table to allow traffic to glusterfs
      1. There will be two routing tables. Choose the routing table with the subnet. Add the ip range for glusterfs (for example 192.168.0.0/16). Choose the Peering connection as destination.
    4. Update security group for glusterfs inbound to allow kubernetes traffic
    5. Update security group for kubernetes inbound to allow glusterfs traffic
  6. Test mount glusterfs volume on master or minion node, e.g. mkdir /mnt/glusterfs, mount.glusterfs 192.168.0.149:/gv0 /mnt/glusterfs
  7. Ensure you follow docs for glusterfs use in Seldon

Other Cloud Providers

Contributions welcome.