Monitoring Blog
Release announcements, technical guides and monitoring insights from the ConSol team.
Security guide for Amazon Kubernetes Cluster (AWS EKS)
Friday, May 31, 2019 in Insights

One of the most challenging questions in cloud environments is about how secure is my application when its deployed in the public cloud ? Its no secret that security aspects are much more important in a public cloud than it was in classic environments. But dont be surprised that many applications even in public cloud dont follow best practice security patterns. This has several reasons for example time and costs are very high trying to achieve a high security level. But in fact AWS and Kubernetes offer many options which let you improve your security level without too much effort. I like to share some of the possibilities that you have when creating a secure AWS EKS cluster. Encrypt communication Basically its a good idea to encrypt all data traffic the hole way. Steps in the chain: Step …
Introduction to Spring Boot and GraphQL for API Design
Thursday, May 02, 2019 in Insights
GraphQL is a nice way to publish a highly customizable API. In combination with Spring Boot, which makes development really easy and offers features like database integration and security, you can quickly build your API service from scratch. This is the start of a series from articles showing you the way to a Spring Boot powered REST-Service with an API running Spring Boot and Graphql. Introduction As it seems that I always tend to jump on the last wagon of a hype train, I finally discovered GraphQL for a customer project. The task was to implement a lightweight solution to query data from an existing database via web techniques.We wanted to use the data in some simple sort of smoke test implemented as a bash script using curl. So what we actually wanted were some fields (sometimes only …
Hello Kubernetes on AWS! A simple way to test-drive EKS
Monday, April 29, 2019 in Insights

Under the name of “Managed Kubernetes for AWS”, or short EKS, Amazon offers its own dedicated solution for running Kubernetes upons its cloud platform. The way this is provided is quite interesting: While the Kubernetes Master Infrastructure is offered “as a service” (and also billed separately) the Kubernetes Worker Nodes are simply EC2 instances for which Amazon provides a special setup procedure. These now also offer the potential to use well known AWS features like Autoscaling for Kubernetes workloads. However, manually setting up this infrastructure is still quite a complex process with multiple steps. To be able to quickly have an EKS Kubernetes Cluster up and running, and also to deploy a software project on it, we created a small helper project that offers the creation of a …
Avoid Kubelet OOM errors on Amazon Kubernetes Cluster (AWS EKS)
Tuesday, April 16, 2019 in Insights

AWS offers a great service called “Amazon Elastic Container Service for Kubernetes” (AWS EKS). The setup guide can be found here: Offical AWS EKS getting started guide If you overload such a cluster it easily happens that your Kubelet gets “Out of Memory” (OOM) errors and stops working. Once the Kubelet is down you can see kubectl get nodes that node is in state “NotReady”. In addition if you describe your node kubectl describe $NODE you can see the status description is: “System OOM encountered”. If you look on your pods kubectl get pods --all-namespaces you can see that pods are in state “Unknown” or in “NodeLost”. Kubelet OOM errors should be avoided by all costs. It causes to stop all pods on that node and its quite complicated for K8s to maintain high availability for applications in …
Of VPCs, Subnets and ACLs
Friday, April 12, 2019 in Insights
In the first article of this series, Getting started with AWS Lambda, we used a Cloudformation template to provision and deploy all needed parts for our REST application. In this and the following articles, we are going to explore components used in the template. The focus of this article is the network infrastructure components. What you will need: A basic understanding of IPv4 Subnetting and CIDR notation An AWS account An SSH client About 35-40 minutes of time Attention When following along with this article, you will deploy AWS resources. Amazon will charge you for those instances, which may cost some money. Although, we will delete all resources at the end. Motivation Modern DevOps practices promote cross-functional teams, collaboration and trust while leading to faster release …
oc patch unleashed
Monday, April 08, 2019 in Insights
Recently, I stumbled on a situation where I wanted to add a couple of values to an OpenShift deployment configuration. Previously I had modified or added a single attribute in a yaml file with oc patch. So I started to wonder whether it is possible to update multiple attributes with oc patch as well. To get right to the result: Yes, it is possible. This article will show you which features oc patch and likewise kubectl patch really have, beside a simple modification of one attribute. The following deployment configuration will be used throughout the article as an example. The other example deployment configurations shown below are only abstracts and contain only the important bits to show the effect of the oc patch command. apiVersion: apps.openshift.io/v1 kind: DeploymentConfig metadata: …
Comparing Kubernetes and OpenShift
Monday, February 11, 2019 in Insights
Kubernetes and OpenShift have a lot in common. Actually OpenShift is more or less Kubernetes with some additions. But what exactly is the difference? It’s not so easy to tell as both products are moving targets. The delta changes with every release - be it of Kubernetes or OpenShift. I tried to find out and stumbled across a few blog posts here and there. But they all where based on not so recent versions - thus not really up-to-date. So I took the effort to compare the most recent versions of Kubernetes and OpenShift. At the time of writing v1.13 of Kubernetes and v3.11 of OpenShift. I plan to update this article as new versions become available. Before we dive into the comparision let me clarify what we are actually talking about. I will focus on bare Kubernetes, i.e. I will ignore all …
Java Licensing Is the Free Lunch over?
Tuesday, February 05, 2019 in Insights

The license change to Java SE 8, as well as the new license for Java SE 9 and onwards lead to confusion within the Java community. Looking for information on the web, one finds results in the spectrum from “Is Java in Jepoardy?" to “Java is still free!". The good news is: yes, Java is still free. The bad news: not necessarily Oracle’s Java distribution. In this article, we discuss the situation revolving around Oracle’s license change and its consequences. For this, we need to understand how the Oracle JDK is connected to OpenJDK. Furthermore, we take a look at some alternatives to Oracle’s Java distribution and how divergence between the different distribution is avoided. What you will need: about 15-20 minutes of time Oracle’s Java Distribution and OpenJDK Oracle started the OpenJDK …
Getting Started with AWS Lambda
Monday, February 04, 2019 in Insights
Lambda is AWS’ realization of a serverless architecture. Instead of deploying instances and scaling them manually, developers deploy only their code and AWS executes the code. Different triggers for code executions can be defined, e.g. when a new event in an AWS Kinesis stream is published or when a REST endpoint is accessed. Since AWS takes care of Lambda execution, the Lambda does automatically scale in and out to current needs. Coupled with its “pay only for what you use” pricing and the fact that lambda execution can scale to zero when no lambda is executed, AWS Lambda is an interesting technology. This blog article is the first in a series of articles, taking a closer look at AWS Lambda, as well as the whole AWS ecosystem that is necessary for a successful deployment. In this article …
Advanced OpenShift command line interface
Wednesday, January 09, 2019 in Insights
The OpenShift command line interface is a very powerful tool which is quite useful for beginners and advanced user of OpenShift alike. Some of its features are not well documented or not documented at all. In this article I would like to shed some light on commands that I personally find useful and that are, from my observation, not widely in use. So without further ado, let’s start with the commands: We all have been in the situation where we have been playing around with a deployment or build and checking regularly how our pods are doing. If you are using the command oc get pods it is hard to see what’s going on with the active pods as they are always displayed together with stopped pods. The parameter --show-all shows by default all active pods and inactive pods. To hide inactive or …