Creating Grafana dashboards for Kubernetes

Categories: Kubernetes
In this blog post I will show you how to get started with grafana custom dashboard for Kubernetes. We will also be learning basics of Prometheus query language. Both of those tools are very useful in everyday of cluster admin’s and user’s life. Why you should learn Prometheus query language Grafana and Prometheus are very powerful tools that enable you to monitor almost anything about your Kubernetes cluster. They are, though, difficult to master.

Read More →

Custom vNet on Kubernetes on Azure with acs-engine

Categories: Kubernetes
These are a few quirks you might encounter when you deploy Kubernetes using acs-engine onto Azure cloud with pre-defined custom vNet. Deploying custom vNet is a common scenario in most of the use-cases. You usually want to run Kubernetes along other services on your Azure cloud, such as legacy applications. This article is intended to provide you with some guidance on how to avoid the same issues I have experienced during acs-engine deployments.

Read More →

Some Kubernetes notes on Azure acs-engine

Categories: Kubernetes
Summary Recently I've worked on deploying Kubernetes clusters using Azure acs-engine as a part of our automation effort at the firm. It is a very useful tool that generates ARM (Azure Resource Manager) templates with ready to-use deployments of Virtual Machines and Kubernetes components on them. It also supports other container orchestrators, such as DC/OS or Swar. However, I will focus only on Kubernetes in this article as this is the only ochestrator I use.

Read More →

Prometheus problem with container metrics (cAdvisor)

Categories: Kubernetes
Summary I've been fighting for the whole day with Prometheus and Grafana. It turns out the documentation about Prometheus and Grafa get outdated very quickly. Let me shed some light on both the problem and the solution. Intro I've been trying very hard to setup perfect grafana/prometheus configuration that I can apply to all of my clusters. This requires me to configure both of those services from YAML files, so that both prometheus and grafana start with prope configuration in place that are ready to be used.

Read More →

I have broken my Kubernetes cluster

Categories: Kubernetes
My Kubernetes cluster is down My single-node baremetal cluster using kubeadm and on calico networking plugin is down (link to the article here). The machine won't startup anymore and there is very mysterius error from cephlib reporting that it was unable to start. Few days ago I was playing with rook (https://github.com/rook/rook). Rook uses ceph to give you easy to use persistent volume experience. Everything was fine at this point until I started doing research on advanced Prometheus configuration.

Read More →

Persistent Volumes in your home Kubernetes cluster

Categories: Kubernetes
Summary We will deploy rook cluster storage service into the baremetal cluster. Prerequisites You should have a Baremetal Kubernetes cluster at least version 1.8. If you don't, I recommend taking a look at: Home Kubernetes cluster in 15 minutes with kubeadm and calico According to rook's documentation you should also have at least 5GB of disk space on the drive you want to use for storage. Let's do it First we need to prepare the baremetal machine for rook's persistent volumes:

Read More →

Watch out for faulty ingress definitions

Categories: Kubernetes
Summary Ingress objects can interfere between each other in the cluster. If you deploy incorrect ingress definition (and kubernetes won't detect the error), Nginx Ingress Controller will fall into restart loop and won't accept any new configuration. This will lead to broken deployments from that time onwards. Description I have been trying out how wildcards in Nginx Ingress Controller work. This is required when you want to have an URL prefixed with the application's language or a country.

Read More →

Kubernetes automatic SSL certificate provisioning

Categories: Kubernetes
Summary There is an open source project from JetStack called kube-lego. It allows you to automatically request SSL certificates for your Kubernetes cluster using Let’s Encrypt free service. Working with Let’s Encrypt using Kube-lego is quite straightforward. Nginx Ingress Controller has built-in support for kube-lego. Having RBAC might seem like a complication but in fact it doesn’t add much of a complexity to the solution. Requirements Kubernetes 1.8.0 or higher with Nginx Ingress Controller deployed 30 minutes of spare time Description Let’s Encrypt is a service that provides you with automatic TLS/SSL certificate provisioning for your website.

Read More →