Dok Talks #121 – Running Stateful Apps in Kubernetes Made Simple

I am giving a talk for the Data on Kubernetes Community (DoKC) Community next week. They are a user group like community that focuses on how to build and operate data-centric applications on Kubernetes. Be sure to check them out! The DoK website is: https://dok.community.

My talk is titled: “Running Stateful Apps in Kubernetes Made Simple

ABSTRACT OF THE TALK

Eventually, the time will come to run a stateful app in Kubernetes. This can be a scary thing adding more moving parts to a Kubernetes cluster and deploying as well as managing your app on Kubernetes when it requires state.

In this talk, Steve Buchanan will take you through a journey of understanding how storage works in Kubernetes, how to Persistent state with pods, what storage options are available with Azure Kubernetes Service, best practices, and a demo of deploying a stateful app to AKS.

In the demo, I will show how to deploy stateful Worpress & Jenkins workloads on Azure Kubernetes Service using the GitOps model with Argo CD.

KEY TAKE-AWAYS FROM THE TALK

Overview of Storage in Kubernetes covering Storage Classes, Persistent Volumes, & Persistent Volume Claims. Overview of Azure Storage, Best Practices to running stateful apps in Kubernetes.

Register here:

https://www.meetup.com/Data-on-Kubernetes-community/events/284283907/

——-Update——-

If you missed the session you can stream it here:

Read more

Cloudbusting Podcast Guest EP130 – Diving into Jucy Lucy, & Root Canal’s with a little Kubernetes, Azure Arc, & GitOps on the side

This was a fun podcast with Jez Ward, and Dave Chapman of Cloudreach. They run a podcast called Cloudbusting. On the podcast they focus on transformation, leadership, ways of working and emerging technology they explore the significant impact that cloud is having on people and businesses.

On this podcast episode, we set out to answer very important questions such as what are Jucy Lucy’s?, what are root Canals like today? oh, and yeah we also spend some time talking about what Containers, Kubernetes, & GitOps are and how they fit in the cloud.

Check out the podcast episode here:

https://www.cloudreach.com/en/podcasts/diving-into-kubernetes-azure-arc-gitops-episode-130

Read more

New Rancher Course Published for Multiple Kubernetes Management

My 14th course has been published on Pluralsight! This course is titled “Getting Started with Rancher” and can be found here: https://app.pluralsight.com/library/courses/rancher-getting-started

With the growth of Kubernetes, the complexity & needs have also grown. IT Professionals need help with the operational & security challenges of managing Kubernetes clusters across multiple clouds, on-premises, & the edge.

My new course will teach you how to use Rancher for multi-Kubernetes cluster management, streamlining Kubernetes cluster deployments, & unified multi-Kubernetes cluster app management. When you’re finished with this course, you’ll have the skills and knowledge of Rancher needed for multi-K8s cluster management.

There is a learning path on Pluralsight focused on Kubernetes management. This is my 3rd course in the Kubernetes Management path titled “Kubernetes Tooling and Techniques” on Pluralsight. My other courses in the path are: “GitOps: The Big Picture” and “Getting Started with Argo CD“. You can get to the path using this link: https://app.pluralsight.com/paths/skills/kubernetes-tooling-and-techniques

Again you can check out my new Rancher course here: https://app.pluralsight.com/library/courses/mulesoft4-big-picture

I hope you find value in this new Getting Started with Rancher course. Be sure to follow my profile on Pluralsight so you will be notified as I release new courses related to Kubernetes and other topics! 

Here is the link to my Pluralsight profile to follow mehttps://app.pluralsight.com/profile/author/steve-buchanan

Read more

Azure Arc Book Published

I am excited to kick off the new year announcing that my 8th book has been published! This book is “Azure Arc-Enabled Kubernetes and Servers“.

I had the honor to co-author this book with a long-time friend and fellow Microsoft MVP John Joyner. This is John’s latest book since his last 8 years ago!

The forward was written by Thomas Maurer a former MVP and now Microsoft Azure Evangelist. This book was reviewed by fellow Microsoft MVP Adnan Hendricks and a chapter contributed by a buddy of mine Fred Limmer.

This book covers an exciting technology from Microsoft exploring Azure Arc-Enabled Kubernetes and Servers. This book is for DevOps professionals, system administrators, security professionals, cloud admins, and IT professionals that are responsible for servers or Kubernetes clusters both on-premises and in the cloud.

Author copies!

This book covers:

  • Introduces the basics of hybrid, multi-cloud, and edge computing and how Azure Arc fits into that IT strategy
  • Teaches the fundamentals of Azure Resource Manager, setting the reader up with the knowledge needed on the technology that underpins Azure Arc
  • Offers insights into Azure native management tooling for managing on-premises servers and extending to other clouds
  • Details an end-to-end hybrid server monitoring scenario leveraging Azure Monitor and/or Azure Sentinel that is seamlessly delivered by Azure Arc
  • Defines a blueprint to achieve regulatory compliance with industry standards using Azure Arc, delivering Azure Policy from Azure Defender for Servers
  • Explores how Git and GitHub integrate with Azure Arc; delves into how GitOps is used with Azure Arc
  • Empowers your DevOps teams to perform tasks that typically fall under IT operations
  • Dives into how to best use Azure CLI with Azure Arc

You can order the book and watch for its official release here:

https://www.amazon.com/gp/product/1484277678

Read more

End of Year (2021) Review

This year was another abnormal year with ups and downs for many. Salute to everyone that kept pushing through any and all hardships you experienced. For me, my focus continued to be family and seizing all presented opportunities while blocking out as much unnecessary noise as possible.

Highlights:

I consider 2021 a spectacular year with several milestones and firsts for me. This year kicked off with me being featured in the Star Tribune (the 5th largest newspaper in the United States) in Superbowl Sunday’s paper! Other major highlights included being renewed as a Microsoft MVP for the 10th year, being promoted to an Azure Platform Offering Lead at work, developing 6 new courses for Pluralsight, publishing my 7th and 8th book one of them being my 1st book with O’Reilly, appearing on 5 podcasts/webinars, & speaking at 7 conferences/user groups of them being DevOpsDays MPLS! I also continued my virtual world tour speaking at events in Africa and even Jamaica!

Here is the full list of activities from 2021:

February 2021: Featured as a technology leader in Minnesota’s largest newspaper Star Tribune. Was a full page story. Bonus this was the super bowl Sunday newspaper.  https://m.startribune.com/twin-cities-technologist-steve-buchanan-sees-a-more-inclusive-expanding-future-for-young-minorities/600019839

February 2021: Published GitOps course on Pluralsight showcasing knowledge in AKS, Azure Arc, Kubernetes and GitOps.

February 2021: Presented at Omaha Azure User group on Azure Arc enabled Kubernetes & GitOps. 

February 2021: Presented on Containers in Azure for Lago’s (Nigeria) LAGOS STATE UNIVERSITY (LASU) TECHX CONFERENCE. 

Read more

Registering an Azure Kubernetes Service Cluster with Argo CD

Argo CD is a GitOps operator and the goal of it is to be able to deploy apps to Kubernetes. In the majority of cases, we want to use Argo CD to deploy apps to many clusters.

Argo CD itself is deployed as a set of pods on a Kubernetes cluster. By default with an Argo CD deployment, the cluster it is running on is set as “in-cluster” (https://kubernetes.default.svc). When apps are configured for deployment a Kubernetes Cluster under Destination is required. They can be deployed to either the “in-cluster” K8s cluster or an external K8s cluster.

In order to deploy apps to an external Kubernetes cluster, you will need to register an external K8s cluster with Argo CD.

If you want to see the clusters you have registered with your Argo CD one way is through the web UI. Once you log in navigate to Settings and then Clusters to see them.

You can also see the clusters you have in the Argo CD CLI. To use the Argo CD CLI you need to log into the Argo CD API Server as shown in the following screenshot.

To see what clusters are registered from the CLI you can run

argocd cluster list

You will notice that you will only see the In-Cluster K8s cluster until you add an external one. Also, note that you are not able to register a new K8 cluster in the Argo CD web UI. You can only register a new K8s cluster from the Argo CD CLI. Within the Argo CD web UI you can delete the default in-cluster K8s cluster. This is not recommended.

If you click on the In-Cluster K8s cluster you can modify some settings of the in-cluster K8s cluster in the Argo CD web UI such as the name of it and its namespace. Not useful when you want to have more control over the settings around the K8s cluster you will be deploying apps to.

In my example, my Azure subscription has two AKS clusters. You can see this in the following screenshot. The arriving-gelding-k8s cluster is my In-Cluster object in Argo CD. The selected-worm-k8s is not my In-Cluster so I want to add this one to my Argo CD.

To add the new external cluster run use the following steps.

Step 1: Add your target K8s cluster to ArgoCD via the context in your kubectl config.

-For AKS you can simply log into your Azure subscription from VS Code on your computer and then run

 az aks get-credentials –resource-group RGNAME –name AKSCLUSTERNAME

This will add the context for your AKS cluster to your kubeconfig file.

-For the process on your setup refer to the following link as it may differ:  https://kubernetes.io/docs/tasks/access-application-cluster/configure-access-multiple-clusters

Step 2: List the K8 cluster contexts in your current kubeconfig file to ensure your target cluster has been added. Do this by locally running:

kubectl config get-contexts -o name

Step 3: Install a Service Account (argocd-manager), into the kube-system namespace of your kubeconfig file context:

argocd cluster add CONTEXTNAME

It will look like this:

After completing the previous steps you can run argocd cluster list again or go into the portal. You will see your new cluster added.

That wraps up this blog post. Now you should be able to deploy to more than just your In-Cluster Kubernetes cluster. Check back soon for more posts on Argo CD, GitOps, Kubernetes, and Azure topics.

Read more

Argo CD Course Published on Pluralsight

Yesterday my 12th course on Pluralsight was published! This course is “Getting Started with Argo CD“. In this course, you’ll learn the ins and outs of Argo CD a GitOps Operator tool, its core concepts, architecture, and how to use it with Kubernetes clusters so you can get started using it.

I am really excited about this course because it gave me a chance to continue sharing my GitOps and Kubernetes knowledge. You can view this course as a continuation of my “GitOps: The Big Picture” course. My GitOps course educates you on what GitOps is. This Argo CD course shows GitOps and a GitOps Operator in action!

Many organizations today have adopted cloud & Kubernetes. Organizations multiple production Kubernetes clusters online often across multiple clouds the complexity of management increases. GitOps has risen as a pattern used to reduce the complexity of managing Kubernetes clusters and cloud-native applications. Argo CD is a GitOps Operator that can help with the management of Kubernetes and deployment of applications to it. Some of the major topics that I covered in the Argo CD course include:

  1. Argo CD’s core concepts and architecture.
  2. An overview of Containers, Kubernetes, Helm, Kustomize, GitOps, and how these work with Argo CD.
  3. What it takes to deploy and operate Argo CD including areas such as user management, secrets, webhooks, monitoring and more, as well as how to use the Argo CD API server, Web UI, and use its command line interface.
  4. How to deploying and manage Applications with Argo CD.

Check out the course here: https://app.pluralsight.com/library/courses/argo-cd-getting-started

This is my 1st course in the Kubernetes Tooling and Techniques path on Pluralsight. I am working on another course for this path. This path focuses on the additional tools and techniques that you can integrate with your Kubernetes operations to improve efficiency, scalability, and a whole host of other factors. There are some other great courses in the Kubernetes Tooling and Techniques path.

Check the Kubernetes Tooling and Techniques path here: https://app.pluralsight.com/paths/skills/kubernetes-tooling-and-techniques

I hope you find value in this new Getting Started with Argo CD course. Be sure to follow my profile on Pluralsight so you will be notified as I release new courses including more GitOps related courses and a Rancher course in the Kubernetes Tooling and Techniques path! 

Here is the link to my Pluralsight profile to follow mehttps://app.pluralsight.com/profile/author/steve-buchanan

Read more

Pre-Order: Azure Arc-Enabled Kubernetes and Servers Book

I am excited to announce my 8th book is complete and is available for pre-order. I am even more excited that long-time friend and fellow Microsoft MVP John Joyner joined me on the journey of writing this book. John is one of the few people I have looked up to when coming into the MVP program. He also was like an OG showing me the ropes of being an MVP. This is John’s latest book since his last 8 years ago! Thanks again John for saying yes to being a part of this!

Microsoft Ignite 2016 with Fellow MVP’s Sam Erskine, and John Joyner.

In this book, we also had the honor of having the forward written by Thomas Maurer a former MVP and now Microsoft Azure Evangelist. This book was reviewed by fellow Microsoft MVP Adnan Hendricks and a chapter contributed by a buddy of mine Fred Limmer.

This book covers an exciting technology from Microsoft exploring Azure Arc-Enabled Kubernetes and Servers. This book is for DevOps professionals, system administrators, security professionals, cloud admins, and IT professionals that are responsible for servers or Kubernetes clusters both on-premises and in the cloud. This book covers:

  • Introduces the basics of hybrid, multi-cloud, and edge computing and how Azure Arc fits into that IT strategy
  • Teaches the fundamentals of Azure Resource Manager, setting the reader up with the knowledge needed on the technology that underpins Azure Arc
  • Offers insights into Azure native management tooling for managing on-premises servers and extending to other clouds
  • Details an end-to-end hybrid server monitoring scenario leveraging Azure Monitor and/or Azure Sentinel that is seamlessly delivered by Azure Arc
  • Defines a blueprint to achieve regulatory compliance with industry standards using Azure Arc, delivering Azure Policy from Azure Defender for Servers
  • Explores how Git and GitHub integrate with Azure Arc; delves into how GitOps is used with Azure Arc
  • Empowers your DevOps teams to perform tasks that typically fall under IT operations
  • Dives into how to best use Azure CLI with Azure Arc

You can pre-order the book and watch for its official release here:

https://www.amazon.com/gp/product/1484277678

Read more

Set Idle timeout and TCP Reset on Azure Load Balancer via a Service in AKS

Short post here. On a recent project, we had been deploying a workload on AKS that included a load balancer service type. This app has some long-running processes and we needed to stop the Azure load balancer from timing out so fast.

In order to better handle the long-running processes, I needed to enable the TCP reset and change the idle timeout (minutes) in the load balancing rule on the Azure Load Balancer. This is shown in the following screenshot:

So you can configure these settings by adding annotations to your Kubernetes manifest file. The full list of load balancer annotations can be found here: https://kubernetes-sigs.github.io/cloud-provider-azure/topics/loadbalancer/#loadbalancer-annotations The ones I needed specifically are:

  annotations:

    service.beta.kubernetes.io/azure-load-balancer-disable-tcp-reset: true

    service.beta.kubernetes.io/azure-load-balancer-tcp-idle-timeout: 30

This was great however it was not clear if the TCP Reset annotation was deprecated or not (see the following screenshot).

I tried it anyway and it worked. It looks like it will be removed at some point. This meets the need for now but is something to keep an eye on.

Read more

Speaking at the Jamaica Azure User Group on Intro to GitOps and AKS

On September 30th I will be speaking at the Jamaica Azure User Group giving an intro to GitOps and AKS!

Here is a breakdown of what I will be covering in this session:

CI/CD with Kubernetes on top of management of Kubernetes configuration management can be complex and intimidating. Application definitions, configurations, management, and continuous delivery for Kubernetes can be simplified, automated, and declarative. This can be achieved via GitOps.

Microsoft simplifies running Kubernetes with Azure Kubernetes Service (AKS) but it can still be complex when it comes to the management you are responsible for and application deployment.

In this session we will take a look at:

-An intro into AKS
-An intro into GitOps
-How you can utilize GitOps and git-based techniques with AKS to drive easier application deployment
-How to use GitOps for configuration management of Kubernetes from your source control system

More Info:

https://www.linkedin.com/events/jamaicaazureusergroup-introtogi6842930876523851776/

Register here:

https://events.jamazure.com/

Read more