-
MySQL Online DDL Operations Made Simple with gh-ost
What’s an online DDL operation? In a nut shell, a DDL(Data Definition Language) operation is something like alter table … which will change the data structure of a table. Some changes only touch metadata, eg. index, etc. so those can be updated in-place. But if a field definition needs to change, eg. UTF8mb3 –> UTF8mb4,…
-
How I Upgraded Sail Operator And How I Would Do It Next Time
It’s been a while since I installed Istio with Sail Operator in my home lab Kubernetes cluster. The version of Sail Operator was 0.2 and now 1.26 is available. There are so many releases between 0.2 and 1.26! Can I upgrade directly to the latest and skip all the middle ones? It’s my home lab…
-
Resource Optimisation Made Simple in Kubernetes Clusters
TL; DR: I made a shell script which prints out the CPU and memory usage vs allocation for each pod in a Kubernetes cluster. Then it’s easy to tell where to optimise. Here it is: Just in case, you need the metrics-server for the kubectl top command to function. 🙂
-
How to Upgrade Kubeadm Kubernetes Clusters The Fast Way
My home lab Kubernetes cluster built with kubeadm hasn’t got an upgrade for a while, still at 1.29 which was first released roughly 2 years ago. And the latest is 1.33 already. According to the official kubeadm docs Skipping MINOR versions when upgrading is unsupported. Which basically says, if you try to upgrade from 1.29…
-
Slow Refresh in ArgoCD? Scale It Up
TL; DR: I merged a few ArgoCD clusters together into a central ArgoCD last week, just to have 1 ArgoCD to manage multiple GKE clusters. Obviously this will cause some performance issue – the more apps I have, the longer it takes to refresh in ArgoCD. Here’s a simple way to scale it up. For…
-
How to Drop Unwanted Metrics with Google Managed Prometheus
TL; DR: some prometheus exporters such as kube-state-metrics do emit a LOT of metrics and that will make a difference in your next bill so here’s how to drop them. 🙂
-
Solved: Couldn’t Delete istio-system Namespace
The other day, I was playing with ArgoCD application sets and by mistake renamed an application owned by its application set. What’s worse is, the application is istio. By the default logic an application set will delete the old application and create one with the new name, so the istio application was being deleted. I…
-
How to Deploy to Multiple Clusters with ArgoCD
TL; DR: here are the steps to deploy to multiple Kubernetes clusters using a single ArgoCD server + Application Sets. Let’s get to it. Add a Kubernetes Cluster to ArgoCD First, we’ll use the argocd CLI. Just in case you don’t have it yet, it’s easy to install. Assuming kubectl is already configured and has…