Azure VPN Gateway’s SSTP Point-to-Site (P2S) connections to private VNETs can cause networking issues in WSL. Symptoms include hanging SSL connections, frozen database clients, and DB clients failing in Docker/Kubernetes networks. I encountered this with a SSL secured MySQL connection which would just hang with nothing informative. Worked fine from the Windows host.
The culprit: MTU mismatches.
The Problem MTU (Maximum Transmission Unit) is the largest packet size that can be transmitted over a network connection.
Let’s progress from checking Kubernetes logs in a terminal to using structured log data for searching, visualising and setting alerts within a web based user interface. We will use our Nginx deployment to demonstrate.
Structured logging involves defining shapes for log data, most often represented in JSON using key value pairs.
As compared to unstructured text log entries, structured logs make it easier to find events and turn log data into insights.
Let us walk through setting up an Actions Runner Controller (ARC) for GitHub in a Kubernetes cluster. This will enable running continuous integration and continuous deployment (CI/CD) pipelines using GitHub Actions on our infrastructure, or on cloud based Kubernetes.
First, we’ll introduce a bit of the terminology:
Runner a container which runs code in response to a trigger. They may be used to test, build and deploy code, as well as far more creative use-cases.
This post will explore deploying Hashicorp Vault to K3s (Kubernetes distribution) using Helm and then configuring it with Terraform. This will enable us to store our secret state data in Vault and make those secrets available to our K3s resources.
Vault is an enterprise level secrets manager configurable for high availability which integrates with Kubernetes and many CI toolsets.
In the previous two posts journaling the evolution of this site’s delivery, we have been managing a single secret, the Cloudflared tunnel token.
In this post, we will look at migrating Docker Compose run services to K3s, a lightweight version of Kubernetes.
K3s provides an approachable way to experience Kubernetes. It is quick to spin up and takes care of a lot of boilerplate, which suits a test environment. We can work our way up to full Kubernetes (K8s) in the future.
We will continue using this site as an example and build upon the previous post which got our GitHub repo to here.