Before attending Icinga Berlin in May this year, Daniel Bodky and Markus Opolka from our partner NETWAYS developed the very first Icinga Kubernetes Helm Charts and released it in an alpha version. If you have ever wanted to deploy an entire Icinga stack in your Kubernetes cluster, now is your chance. I also want to highlight Daniel’s talk again on how Icinga can run on Kubernetes and the challenges involved. Although the Helm charts are still in alpha version, they are already in a pretty good state to try them out. First, you need to add the Icinga Helm repository, which in our case is hosted on GitHub Pages and can be added to your environment by running the following commands:
helm repo add icinga https://icinga.github.io/helm-charts helm repo update
Once the repository is known, you can install Icinga by running the following commands. We will first create a namespace and then deploy Icinga 2, Icinga DB, Icinga Web, Director and necessary dependencies like databases and Redis using the Icinga Stack Helm chart:
Please note the various CHANGEME
placeholders that need to be replaced.
kubectl create namespace icinga helm install icinga-stack \ --namespace icinga \ --set icinga2.config.ticket_salt=CHANGEME \ --set icingaweb2.auth.admin_password=CHANGEME \ --set global.api.users.director.password=CHANGEME \ --set global.api.users.icingaweb.password=CHANGEME \ --set global.databases.director.password=CHANGEME \ --set global.databases.icingaweb2.password=CHANGEME \ --set global.databases.icingadb.password=CHANGEME \ icinga/icinga-stack
And that is how easy it is to run Icinga on Kubernetes with our Helm charts. You can use Icinga Web with the password provided above using the preconfigured username icingaweb
. To conclude, here is a list of what has been deployed. Enjoy trying out Icinga on Kubernetes. And a big kudos to Daniel and Markus.
kubectl get all --namespace icinga NAME READY STATUS RESTARTS AGE pod/icinga-stack-director-database-0 1/1 Running 0 21h pod/icinga-stack-icinga2-0 1/1 Running 0 21h pod/icinga-stack-icingadb-77f464bb88-5rsjb 1/1 Running 1 (5h49m ago) 21h pod/icinga-stack-icingadb-database-0 1/1 Running 0 21h pod/icinga-stack-icingaweb2-797f9746cf-cnckq 2/2 Running 3 (21h ago) 21h pod/icinga-stack-icingaweb2-database-0 1/1 Running 0 21h pod/icinga-stack-redis-0 1/1 Running 0 21h NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/icinga-stack-director-database ClusterIP 10.108.104.166 3306/TCP 21h service/icinga-stack-icinga2 ClusterIP 10.102.227.137 5665/TCP 21h service/icinga-stack-icingadb-database ClusterIP 10.106.96.84 3306/TCP 21h service/icinga-stack-icingaweb2 ClusterIP 10.110.14.92 8080/TCP 21h service/icinga-stack-icingaweb2-database ClusterIP 10.100.17.234 3306/TCP 21h service/icinga-stack-redis ClusterIP 10.99.63.169 6379/TCP 21h NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/icinga-stack-icingadb 1/1 1 1 21h deployment.apps/icinga-stack-icingaweb2 1/1 1 1 21h NAME DESIRED CURRENT READY AGE replicaset.apps/icinga-stack-icingadb-77f464bb88 1 1 1 21h replicaset.apps/icinga-stack-icingaweb2-797f9746cf 1 1 1 21h NAME READY AGE statefulset.apps/icinga-stack-director-database 1/1 21h statefulset.apps/icinga-stack-icinga2 1/1 21h statefulset.apps/icinga-stack-icingadb-database 1/1 21h statefulset.apps/icinga-stack-icingaweb2-database 1/1 21h statefulset.apps/icinga-stack-redis 1/1 21h