Kubernetes is a powerful orchestrator for docker containers with an impressive number of adopters and a large community around the world. Yet it is notorious for its complexity when it comes to configuration and maintenance. No wonder the community is busy developing new extensions and plugins to facilitate cluster management.
Apart from well-established platforms widely used in production, there're also some interesting evolving projects. Containerum is a Kubernetes-based platform that first was launched as a commercial cloud-based product but was recently released as open source.
I think it's a natural step for proprietary software in DevOps market since (as I believe) open source and DevOps are made for each other.
So. Containerum is a project that works on top of Kubernetes and offers some interesting features. I used the Online version for some time and what I instantly liked about that is easy CI/CD pipeline configuration (I used Travis to build and deploy a website built with gulp and hugo). The open source version offers the same features, but before exploring its features, let's try to install it. I'll be using a 3 RAM 1 CPU machine on Digital Ocean for test purposes. Let's start!
To launch Containerum you will need
- working Kubernetes cluster (1.5 or higher)
- Helm installed
- nginx ingress-contoller (see this guide)
We are going to do three things in this guide:
- Install nginx ingress controller
- Create a service for the ingress controller
- Install Containerum
I tried several nginx ingress-controller and the one I like more is the ingress-controller from the Kubernetes repository. To install it, run:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/mandatory.yaml
After we've installed the ingress-controller, it's necessary to create a service that will be used for connecting the ingress controller with the Containerum ingress. Create a
yaml file with the following content:
apiVersion: v1 kind: Service metadata: name: ingress-nginx namespace: ingress-nginx spec: ports: - name: http port: 80 targetPort: 80 protocol: TCP - name: https port: 443 targetPort: 443 protocol: TCP selector: app: ingress-nginx externalIPs: - 127.0.0.1
Don't forget to add your machine's external IP address in the last line instead of
Save it as
ingress-svc.yaml and run from the same directory:
kubectl apply -f ingress-svc.yaml
Ok, now let's install Containerum. To install all components, run:
helm repo add containerum https://charts.containerum.io helm repo update helm install containerum/containerum --version 1.0.17-rc.2
Now check that all pods are running:
kubectl get pods
To access the Web UI, add an entry to your
hosts file. Open
sudo nano /etc/hosts
and add your machine's IP address to the list of hosts:
127.0.10.1 local.containerum.io api.local.containerum.io
where 127.0.10.1 is the IP address of the machine.
Now go to
Congratulations! You've just installed Containerum platform in your cluster! You can use the default login/password:
I will continue exploring the platform, so stay tuned!
Thanks for reading!