Code, Platform Engineering, YAML

Running a Kubernetes Cluster with Dashboard on Raspberry Pi 4

A Raspberry Pi can be used for many things - including running a Kubernetes cluster. This can be a fun way to learn more about Kubernetes as well as provide you with your own resources to run various containers. As an example, I use my cluster to run things like Kafka for my open source work. In this post I will describe how to set up a cluster of Pi devices to run Kubernetes 1.18.x. ...

July 2, 2020 · Jeppe Andersen

.NET Core Diagnostics Tools and Containers

The story around diagnostics tools is still evolving, but now have a good set of tools available. In my previous post, we tested the counters tool a bit. The most problematic part, currently, is to use these tools where the application is running as containers and extracting the dumped files for anaysis. In this post I will show examples of using these tools to troubleshoot .NET Core containers. I will focus on the dump, trace and counters tools, but anything should go for others as well. ...

June 17, 2020 · Jeppe Andersen

Observing .NET Core Counters (in CloudWatch)

Diagnostics have received nice improvements over the past few .NET Core releases. Especially 3.0 brought a good set of improvements and a a set of tools to diagnose running applications. While some of it is still in the early days, the cross platform story on runtime diagnostics is improving. A set of metrics I find particularly interesting to continuously optimize is the set of memory / GC related metrics. Especially for high throughput applications, this is particularly interesting, when it might be difficult to replicate production traffic in a test harness. ...

May 16, 2020 · Jeppe Andersen

My Consumer Group Is Not Balanced

The Kafka consumer groups concept is a great and easy-to-approach abstraction over multi-instance consumption of records from topics. In certain cases, however, you might end up with a scenario where only a subset of all consumers in a group is assigned to any partitions. As a result, the balanced spread of partitions amongst consumers one would expect, is not happening. In this post I will describe the consumer group partition assignment process and why it matters. ...

October 31, 2019 · Jeppe Andersen

Access Host Services from Containers on Windows Server 2016

Occasionally it is necessary to access services running on the host machine from a container. You may be inclined to use localhost to reach the host, but this will not work as the container itself is localhost. Here is how to access host services from a container running on Windows Server 2016. This applies to containers running with NAT networking mode. This is the default, so unless you explicitly use something else, this should work for you. ...

January 31, 2017 · Jeppe Lund Andersen

Accessing a Running Windows Server 2016 Container

Occasionally it can be useful to access a running container. On Linux it is possible to open a bash session with a new instance of the container’s shell with docker exec -it [containername] bash. Because the Docker interface works the same way on Windows it is surprisingly easy to open a command prompt for a running container. Simply execute docker exec -it [containername] cmd. When you want to exit again, just use the exit command. ...

December 18, 2016 · Jeppe Lund Andersen

Access Docker Registry with Self-Signed Certificate on Windows Server 2016

With Windows Server 2016 available it’s time to find out all the little details when using Docker to administrate containers. A common scenario is accessing a private/internal hosted Docker Registry protected with a self-signed certificate (Details). Here is how you enable the Docker daemon and CLI on Windows Server 2016 to use your certificate when talking to the registry. Have your certificate (.crt) file available on the server Copy it to C:\ProgramData\docker\certs.d\[hostname][port]\ca.crt Example with internal registry on DNS and port myinternalregistry:5000: ...

October 26, 2016 · Jeppe Lund Andersen

Update to VSTS Build Extension for Visual Studio Code

An extension that I otherwise thought to be obsolete as a result of an official VSTS extension for Visual Studio Code having been released, has received an update! The number of downloads keep increasing, and it appears it brings some value in addition to the official extension. will be spending some time over the next weeks bringing a couple of new features to it and trying to get feature requests implemented as well. ...

October 2, 2016 · Jeppe Lund Andersen

No Downtime, Continuous Deployment Setup With Visual Studio Team Services and Azure

The goal of this article is to describe a fast way to get started with creating an end-to-end continuous deployment setup with Visual Studio Team Services and Azure. With few resources and in little time you should be able to get a full setup going that deploys a web application to Azure without any downtime for users. The article is split into three parts. This first part will provide a brief overview of the practices applied and services used in the setup. The remaining two parts will go into the details of setting it up. The parts are outlined as follows: ...

May 21, 2016 · Jeppe Lund Andersen

Debugging Python 3.x with Visual Studio Code on OSX

OSX comes with Python 2.x by default, and setting the default Python version to 3.x is not without trouble. Here is how you debug Python 3.x applications with Visual Studio Code and the Python extension. Open the application folder in VS Code Create a new launch configuration based on the Python template Add "pythonPath": "/Library/Frameworks/Python.framework/Versions/3.5/bin/python3" to the configuration so that it looks similar to the following: { "name": "Python", "type": "python", "request": "launch", "pythonPath": "/Library/Frameworks/Python.framework/Versions/3.5/bin/python3", "stopOnEntry": true, "program": "${file}", "debugOptions": [ "WaitOnAbnormalExit", "WaitOnNormalExit", "RedirectOutput" ] } And start debugging!

May 7, 2016 · Jeppe Lund Andersen