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!
Prerequisites
To launch Containerum you will need
- working Kubernetes cluster (1.5 or higher)
- Helm installed
- nginx ingress-contoller (see this guide)
Installation
We are going to do three things in this guide:
- Install nginx ingress controller
- Create a service for the ingress controller
- Install Containerum
Nginx ingress-controller
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
Done!
Create a service for ingress-controller
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
127.0.0.1
.
Save it as ingress-svc.yaml
and run from the same directory:
kubectl apply -f ingress-svc.yaml
Done!
Installing Containerum
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
As we can see, Containerum is running. Now let's access the Web UI.
Accessing the Web UI
To access the Web UI, add an entry to your hosts
file. Open /etc/hosts
:
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 local.containerum.io
Congratulations! You've just installed Containerum platform in your cluster! You can use the default login/password:
login: admin@local.containerum.io
password: verystrongpassword
I will continue exploring the platform, so stay tuned!
Thanks for reading!
Vlad
Top comments (0)