RISC stands for Research Interactive Services and Collaboration, a Kubernetes&Openstack-based platform, on top of which multiple applications can be rapidly deployed and maintained with enjoying its flexibility and resilliance.
RISC features load-balancing, multiple storage backends, single-sign-on, auto-mapping, and auto-scaling (under-development), etc.
The aim of RISC project is to provide end-users the convenience of using different applications, as well as system admins a rapid deployment environment behind those applications.
It includes the following core-components:
- Kubernetes controller-manager/apiserver/scheduler/etcd/proxy/coredns/etc
- Openstack-cloud-controller
- Cinder-CSI
- Cephfs-CSI
- Manila-CSI
- Weave-CNI
- Worker nodeplugins
- An Allocator
- A lbnodeagent for each worker node
- Ingress-controller, edge-stack
- API-gateway, emissary
- Host/Listener/Mapping
- OIDC adaptor (Google and Alliance IdPs)
- A dedicated CVMFS deployment/daemonset that provides CVMFS software repos to different applications.
- Certificate management tool
- Nginx
- Jupyterhub
- Overleaf
- Mattermost
Note: More applications can be added to this platform using the same approach shown in setup_fullchain.sh.
The code is verified on CentOS 7 however it can be run on most Linux distributions with a bit tweaks. An operating system with above 8 CPU cores, 16GB RAM and 100GB disk space is recommended. Minimum requirements can be at 2 vCPUs, 8GB RAM and 50GB disk space.
For a proof-of-concept, it minimumly needs two VMs with the above system requirements. One will be the master node and the other will be a worker node.
Download the CA certificate of the cloud service provider (for Openstack, from the Horizon dashboard) and place it into /etc/ssl/certs
Create a cloud-config file. Refer to the template auth/cloud-config.
Now, simply run the automation script (setup_fullchain.sh) on the master node it will automatically create the control plane and set up the worker and then deploy all the above components on both nodes.
More worker nodes can be easily added to the cluster and will be automatically deployed/configured, by runnig the following commands:
export KUBEADM_JOIN_COMMAND=`kubeadm token create --print-join-command`
ssh $WORKER $KUBEADM_JOIN_COMMAND
erming.pei at westdri.ca