Skip to content

DevOps

How To Deploy InfluxDB / Telegraf / Grafana on K8s?

This article follows our first blog post related to deployment on Kubernetes. It is a step-by-step guide explaining how to deploy the InfluxDb/Telegraf/Grafana stack.

More importantly we will se:

Here again we rely on declarative configuration of K8s to install the InfluxDB/Grafana stack. It's the easiest way to do since there are many configuration objects to create.

How To Deploy a Frontend on Kubernetes?

Kubernetes (commonly referred to as "K8s") is an open source system that aims to provide a platform for automating the deployment, scalability and implementation of application containers on server clusters. It works with a variety of container technologies, and is often used with Docker. It was originally designed by Google and then offered to the Cloud Native Computing Foundation.

This blog post belongs to a series that describe how to use Minikube, declarative configuration files and the kubectl command-line tool to deploy Docker micro-services on Kubernetes. It focuses on the installation of an Angular 8 frontend application served by an NGinx Ingress controller.

While being the most complex kind of Kubernetes object management, the declarative object configuration allows to apply and revert configuration updates. Also, configuration files can easily be shared or saved into a version control system like Git.

But before going to the configuration of our frontend and its proxy, let's see what is needed in order to follow this tutorial.

Elasticsearch: Snapshot Backups on a Shared NFS

Disasters can happen. We experienced data loss on our Elasticsearch cluster a few weeks ago after a failed upgrade. That's why data redundancy isn't enough: even when you data is replicated on multiple nodes, your data isn't safe!

Backuping your elasticsearch cluster is another layer of security in case things go wrong:

  • Failed Upgrade: in our case, that's what happened. The data was upgraded but elasticsearch was unable to read it. Several nodes had corrupted data,
  • Intrusions: what if a hacker gains access to your database,
  • Multiple node failures: data is usually replicated on 1+ nodes, but what if several nodes fail simultaneously? It's highly improbable, that's true.

This tutorial is going to explain how we use a shared Network File System connected to all our Elasticsearch nodes to save incremental snapshots of the database every night. Let's see how we can leverage NFS to store Elasticsearch snapshots.

Elasticsearch: Optimization Guide

You may already have setup an Elasticsearch cluster but you're struggling with numerous issues:

  • Indexing is slow: somehow you're not getting the ingestion performance you expected,
  • Out of Memory: your nodes are regularly hitting the Java Xmx mark and you don't know why,
  • all CPU cores are not used: somehow you are struggling to vertically scale the database to take advantage of multiple CPU cores,
  • and much more.

After spending several years maintaining, upgrading and tweaking Elasticsearch, we've learnt a lot of things along the way. We feel like the tips and tricks to optimize Elasticsearch provided here can be useful to others.

With tools like Kubernetes or Rancher, it's becoming much easier to exploit physical hardware without the need of an entire IT department. The optimizing guide below intends to provide a solid foundation for people willing to setup Elasticsearch at scale in production. Let's start!

Rancher 2: Getting Started

You may be in the situation like me: you have already extensively used Rancher v1.6.x but would like to migrate to Rancher v2.0.x. For those who don't know, Rancher is a Docker Orchestration tool.

While trying to setup a development machine with Rancher 2 installed, I came accross numerous different issues. I've spent hours figuring out how to fix them.

This tutorial is all about sharing the tips and tricks to avoid you waste time:

  • The requirements to run Rancher 2 (based on Kubernetes)
  • How to configure Rancher 2 to run on different ports (other than the default 80 and 443),
  • How to run Rancher 2 with an Ingress Controller on the same machine,
  • How to link your Ingress to an external service (like Jenkins),
  • Migrating existing services from Rancher v1.6.x to Rancher v2.0.x,
  • And many other tips along the way!

Let's see how to setup and run Rancher 2.