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.
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:
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.
In my last post on Argo CD with AKS, I mentioned the next post would explore deploying an app via Argo CD. Well, in this post we are going to do just that. I am going to walk through deploying an app from Argo CD to AKS. Note this same process would work for any Kubernetes cluster. This is not going to be a long post as the process is straightforward.
First of all, you can deploy an app from the Argo CD web UI or CLI. Ready your application in a Git-based repository. It does not matter what source control system you use for your repository as long as it is Git-based. You can use Azure DevOps, Gitlab, Bit Bucket etc. In my case I use GitHub. To deploy an app you need to point to a Git repository of either K8s manifest, Helm, or Kustomize. In this blog post I am going to keep it simple and use the Hello K8s app from Paul Bouwer. Ok, now let’s jump in.
Here are the steps for Deploying an App to Argo CD within the Web UI:
In the Argo CD web UI ensure you are on the Applications page
Click the + NEW APP button
Give the app the namehellok8s, use the project default (I used a dev project in my example), select Automatic for the sync policy, check AUTO-CREATE NAMESPACE
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:
Argo CD’s core concepts and architecture.
An overview of Containers, Kubernetes, Helm, Kustomize, GitOps, and how these work with Argo CD.
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.
How to deploying and manage Applications with Argo CD.
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.
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!
As Kubernetes adoption continues to grow so does GitOps. GitOps has been increasing in adoption and popularity among enterprises at a fast rate as well. Here is what GitOps is: “GitOps is an operating model pattern for cloud-native applications & Kubernetes storing application & declarative infrastructure code in Git as the source of truth used for automated continuous delivery.” GitOps puts Git at the center of continuous delivery making git the Source of Truth describing the desired state of your entire system. For a deeper dive into GitOps check out my GitOps course on Pluralsight here: https://app.pluralsight.com/library/courses/gitops-the-big-picture
In the GitOps model, you need GitOps operators. GitOps Operators are software agents that continuously monitor your apps running on your Kubernetes clusters comparing the live state of your app against the desired state you have defined in your Git repository. These GitOps Operators ensure the desired state is in place on your Kubernetes clusters performing create, update, delete activities on your Kubernetes clusters as needed.
This is where Argo CD comes into the picture. Argo CD is one of the top GitOps Operators. It provides declarative, continuous delivery to your Kubernetes clusters. It was created by a team at Intuit in 2018 and later open-sourced. I am going to write a few blogs exploring the use of Argo CD with AKS. This will be the first of the series walking through the deployment of Argo CD to AKS. In the next post, we will deploy an app to Kubernetes using Argo CD and see where the topic goes from there. Now let’s dive into deploying Argo CD to AKS. Here are the steps:
You should end up with many objects in the Argo CD namespace.
By default, the Argo CD is not accessible externally. It is deployed with a service type of ClusterIP.
Leaving it at ClusterIP is fine but for the purposes of this blog/lab and getting started lets change this so we can easily access the ArgoCD Server website. # Change the argocd-server service type to LoadBalancer. To do this run the following:
Now you will be able to see that the argocd-server service type has been changed to a LoadBalancer type. This means that it now has a public Azure load balancer attached to it with an external IP.
NOTE: This is not recommended in production environments. Only use in a lab or dev environment. In production environments, it is recommended to use an ingress for the Argo CD API server that is secured.
Argo CD auto generated a password during the deployment. We need to get the Argo CD password so we can log into it. To get the password run the following:
Coming up soon I will be giving my first Pluralsight Author Talk. This live session will be on GitOps. I will cover a fundamental understanding of GitOps, the need for GitOps, GitOps architecture, GitOps workflow, GitOps principles, practices, & tooling such as Flux, Argo CD, AND Jenkins X.
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
The event is July 20th-21st. It will be a hybrid event (in-person & virtual). I will be speaking in person on the 20th.
Here is my session info:
GitOps and Kubernetes: a Winning Combo
GitOps is an emerging pattern for cloud-native applications. This operating model simplifies Kubernetes ops while simultaneously improving the developer experience. GitOps enables continuous delivery of configuration updates and application deployments to Kubernetes.
Through the lens of GitHub, Argo CD, and Azure Kubernetes Service, we’ll explore use cases and benefits, principles and practices, architecture and tooling, and what GitOps changes in our day-to-day.
Today I delivered my session on GitOps and Kubernetes: a Winning Combo. This was my first in-person event since the pandemic in the US started. I went on stage right after Ian Coldwater gave the keynote. Ian had an amazing keynote talking about community, how the pandemic and the murder of George Floyd impacted Minneapolis last year along with how the community came together. I presented to a crowd of a few hundred as well as another couple hundred online.
The online reach of this event was amazing. I even received a message that my session was watched by some folks in Japan!
In my session, we went on a journey through how companies should focus on being software businesses moving to digital, how the pandemic accelerated companies and consumers going digital as well as companies using Kubernetes and GitOps as a way to help power digital transformation.
The conference organizers did a great job pulling off another excellent event while ensuring everyone followed safety guidelines.
Here is the day 1 stream recording. You can find my sessions at 54:23:
I was recently a guest on Microsoft’s Azure Arc Jumpstart Lighting show. In the episode of Jumpstart Lightning, I shared with Lior my thoughts around Azure Arc-enabled Kubernetes, industry trends, GitOps, and my new Azure Arc enabled Kubernetes Getting Started course on Pluralsight.
Today Pluralsight published 1 of 2 Azure Arc courses I am building. This marks my 10th course on Pluralsight! This first course is Azure Arc enabled Kubernetes: Getting Started. Azure Arc is a key service in the Azure story extending Azure to the on-premises data center and or multiple clouds outside of Azure.
This course is just under 2 hours and packed full of information & demos to help you get started with the topic. I go into a deeper understanding of the multi-cloud market, Kubernetes in the enterprise, and Azure Arc enabled Kubernetes. Azure Arc enabled Kubernetes architecture. Setting up and using Azure Arc enabled Kubernetes. And using GitOps with Azure Arc enabled Kubernetes.
I am excited about releasing this course for several reasons: #1 Azure Arc is a newer technology from Microsoft and I am happy to share my knowledge about it, #2 This one is a combination of Azure Arc, Kubernetes, & GitOps all technologies I have been working with regularly, #3 Azure is growing, Kubernetes is growing, and multi-cloud is growing all in the enterprise and this course covers all three of these.
Here is the description of the course:
Managing Kubernetes clusters across on-premises and multiple clouds can be disjointed and overly complicated. In this course, Azure Arc Enabled Kubernetes: Getting Started, you’ll learn to how to manage external Kubernetes clusters with Azure Arc. First, you’ll explore what Azure Arc k8s is and how to use it. Next, you’ll discover the features of Azure Arc K8s and how to use them. Finally, you’ll learn how to how to use Azure Arc K8s and GitOps to deploy applications. When you’re finished with this course, you’ll have the skills and knowledge of Azure Arc enabled Kubernetes needed to manage Kubernetes clusters across on-premises and multiple clouds.
Here are the areas and topics of the course:
Understanding Azure Arc Enabled Kubernetes
Intro and Topics
Understanding Azure Arc Enabled Kubernetes
Understanding Azure Arc Enabled Kubernetes Use Cases
This course is also a part of the all new Azure Arc path titled “Managing Environments with Azure Arc” on Pluralsight. There are other courses in the path already such as Azure Arc: The Big Picture, Azure Arc-enabled Data Services: The Big Picture, and Azure Arc and Azure Lighthouse: First Look and many more Azure Arc courses on the way.
I hope you find value in this new Azure Arc enabled Kubernetes: Getting Started course. Be sure to follow my profile on Pluralsight so you will be notified as I release new courses including my second Azure Arc related course!