Kris's Quick Cup of (A)K8S #2

It’s time for a new edition of Kris’s Quick cup of Kubernetes where I’m utilizing Azure Kubernetes Service (AKS) for demo purposes!😺 In second edition of this tech tip series I would like to share a few tips related to CronJobs, Rolling Updates and AKS add-ons that can make your life easier when working with Kubernetes and specifically Azure Kubernetes Service. #1 - Run CronJob instantly Sometimes you may need to run a CronJob (scheduled Job) instantly, for example, when you’re debugging some execution errors. So, can you do that instantly or do you need to wait for the next time slot that the CronJob is scheduled for to execute? Well, you can pretty easily create a regular Job based on CronJob definition and in that way trigger it instantly - here’s how you can do that with kubectl: ...

May 16, 2022 · 3 min · Kristina Devochko

Continuous Delivery to AKS with Azure DevOps Environments - Part 1

In the first part of this blog series I would like to talk about Azure DevOps Environments, benefits of using it for deployment of applications to AKS or any other Kubernetes distribution (or even a VM), and provide a few tips and tricks for how ADO environments and resources can be created. In Part 2 of this blog post series we'll deploy a test application to AKS with Azure DevOps Environments and take a look at how we can migrate Kubernetes resources between Azure DevOps Environments with a sprinkle of automation. Check out Part 2 here: Continuous Delivery to AKS With Azure DevOps Environments - Part 2 ...

April 30, 2022 · 8 min · Kristina Devochko

Kris's Quick Cup of K8s #1

Starting a totally new Tech Tips subsection feels great - especially when it’s going to be purely dedicated to Kubernetes utilizing Azure Kubernetes Service (AKS) for demo purposes! :-) In this first edition I would like to demonstrate 4 helpful commands that can make your life easier when working with Kubernetes. AKS will be my Kubernetes distribution of choice. #1 - Live streaming of Pod logs Sometimes it can be really useful to monitor application’s logs, for instance when there are errors happening during application’s start-up or while it’s up and running. If you use kubectl logs <pod_name> -n <namespace> you will only get what’s been logged until the execution of command. In order to stream logs and follow them in real-time you will need to use -f flag (“f” for “follow”) with kubectl logs command, i.e. kubectl logs <pod_name> -n <namespace> -f. ...

March 4, 2022 · 3 min · Kristina Devochko

How to upgrade NGINX Ingress Controller with zero downtime in production

Introduction to the needs for upgrading Ingress Controller In some scenarios you may need to perform maintenance work on the Ingress Controller which can potentially result in downtime - in my case the time has come to move away from NGINX Ingress Controller for Kubernetes Helm chart located in stable repo and fully embrace the new Helm chart located in ingress-nginx repository. The reason for that is related to higher maintenance costs for the Helm repositories' maintainers which has become significantly more challenging with release of Helm 3. Therefore EOL timeline has been officially announced by CNCF and Helm back in 2020. You can read the official announcement as well as the reasoning behind deprecation of Helm repositories here: Important Helm Repo Changes & v2 End of Support in November. ...

January 14, 2022 · 16 min · Kristina Devochko

How to include new Kubernetes resource into existing Helm release

Helm is extremely useful and efficient when it comes to distributing, installing and upgrading applications hosted in Kubernetes. But sometimes you may have a need to patch an existing release and there is a quick way to do that which I would like to share with you today. A scenario I had to face was that I discovered missing PodDisruptionBudget on one of the production deployments and after this has been fixed in the source code I had therefore a need to add it to the existing Helm release to ensure configuration consistency. ...

October 21, 2021 · 8 min · Kristina Devochko