Get started with Argo CD & Azure Kubernetes Service

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:

-DEPLOYING ARGO CD ON AKS-

Log onto the Azure portal (https://portal.azure.com)

Launch Azure Cloud Shell

Connect to your AKS cluster from the Azure Cloud Shell by running the following:

# Set your subscription

az account set –subscription YOURSUBSCRIPTIONIDHERE

# Connect to your KS cluster

az aks get-credentials –resource-group YOURRESOURCEGROUPNAME –name CLUSTER NAME

Next let’s create a namespace for Argo CD to deploy all of its components in. To do this run:

kubectl create namespace argocd

Next we can install Argo CD into the new namespace we created. We will reference Argo CD’s GitHub repository for the latest Argo CD operator. Run the following:

kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml

You should see the following:

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:

kubectl patch svc argocd-server -n argocd -p ‘{“spec”: {“type”: “LoadBalancer”}}’

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:

kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath=”{.data.password}” | base64 -d && echo

You will see the password in readable format so you can copy it such as shown in the screenshot.

Note the default Argo CD username is admin.

To access the Argo CD web portal you need to access the Argo CD API Server. To do this you can either do this from the external IP of the argo-cd object or the via the Argo CD CLI using the following:

 argocd login <ARGOCD_SERVER>

The Argo CD web portal will look like:

That’s it! You have Argo CD deployed on your AKS cluster. In the next post, I will walk through deploying a simple app to your Kubernetes cluster via Argo CD.

Read more

Pluralsight Author Talk – GitOps: The Big Picture

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.

More information here: https://www.pluralsight.com/events/2021/delta-author-talk-q4

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

Speaking at DevOpsDays Minneapolis 2021

I have been attended DevOpsDays Minneapolis for 4 years. Its always a great event with rockstar speakers and great content. I also always meet some great folks in the DevOps space.

This year I will be speaking at DevOpsDays Minneapolis! This is a huge honor for me as I have a lot of respect for the event organizers and its always world-class event! I will be speaking about Kubernetes and GitOps. My session can be found here: https://devopsdays.org/events/2021-minneapolis/speakers/steve-buchanan

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.

Check out the full program for the event here: https://devopsdays.org/events/2021-minneapolis/program

For those that won’t be attending in person you can Live stream it on YouTube here:

https://www.youtube.com/channel/UC_L5NW8kmClZyYz-HFgKsKA

———-Update 7/21/21———-

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 stream recording of my session:

NOTE: If you are interested in learning more about GitOps check out my Pluralsight course titled “GitOps: The Big Picture” here: https://app.pluralsight.com/library/courses/gitops-the-big-picture

Read more

Guest on Azure Arc Jumpstart Lightning

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.

Check it out here:

Here is the link to my Azure Arc enabled Kubernetes course on Pluralsight: https://app.pluralsight.com/library/courses/azure-arc-enabled-kubernetes-getting-started

Here is the link to the full Azure Arc path on Pluralsight: https://app.pluralsight.com/paths/skills/managing-environments-with-azure-arc

Read more

Azure Arc enabled Kubernetes: Getting Started – Pluralsight Course

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.

NEW 
RELEASES 
(-18 _ 
Google Cloud 
Understanding Google Cloud 
Security and Operations 
Google Cloud 
lh 17m 
Beginner 
Jun 2021 
Azure Arc Enabled 
Kubernetes: Getting Started 
Steve Buchanan 
Intermediate 
lh 57m 
Jun 2021 
Using the Xamarin.Forms 
Shell 
Christopher Miller 
Intermediate 
Jun 2021 
(30) 
lh 33m 
Demystifying the AWS 
Certified Developer: Associ... 
Ryan Lewis 
Intermediate 
Jun 2021 
57m 
(32)

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.

Azure Arc Enabled Kubernetes: Getting Started 
by 
w i u how end A«

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                

Understanding Azure Arc Enabled Kubernetes Architecture                

Summary

 

Working with Kubernetes Clusters Using Azure Arc                

Intro and Topics                

Connecting Kubernetes Clusters to Azure Arc                

Demo: Connecting a Kubernetes Cluster to Azure Arc                

Monitoring projected Kubernetes Clusters with Azure Monitor and Azure Arc                

Demo: Setup Azure Monitor of Projected Kubernetes Cluster in Azure Arc                

Defining Authorization on Azure Arc Projected Kubernetes with Azure RBAC                

Protecting Azure Arc Projected Kubernetes Clusters with the Azure Defender                

Administering Projected Kubernetes Clusters with Azure Policy and Azure Arc                

Summary

 

Deploying Applications to Projected Kubernetes Clusters Using Azure Arc and GitOps                

Intro and Topics                

Understanding How GitOps Works with Azure Arc Enabled Kubernetes                

Deploying Applications and Configurations to Projected Kubernetes Clusters with Azure Arc and GitOps                

Demo: Deployment of an Application to a Projected Kubernetes Cluster via GitOps and Azure Arc K8s                

Deploying Helm Charts to Projected Kubernetes Clusters with Azure Arc and GitOps                

Deploying IoT Workloads with Azure Arc and GitOps                

Understanding the Future of Azure Arc Enabled Kubernetes                

Summary               

Here is a preview of the Azure Arc enabled Kubernetes course:

Here is a link to the full Azure Arc enabled Kubernetes course on Pluralsight: https://app.pluralsight.com/library/courses/azure-arc-enabled-kubernetes-getting-started

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.

Managing Environments with Azure Arc 
This learning path introduces you to Microsoft's latest Azure offering: 
Anne Arc. With able to and 
deployed within of Azwe through the same 
control plane. As pu watch the courses in this path, first gain a 
of Arc and its befMe rm•mg 
to leaming product's specific including 
Azure Arc-enabled servers, Azure Arc-enabled data services, Azure Arc- 
«labled SOL 
leaming. Azure Arc and Amre At end of 
this learning path, you'll have a good foundation of knowledge to get 
started with Anne 
Related Topics 
Azure. SOL Server. Kubernetes. Machine Learning. Azure 
Light o 
Prerequisites 
Learners interested in path have experience With Azure administration and be familiar With the 
fund—Ital coruepts of data SOL 
What You Will Learn 
F u nd—-vtal Äpts 
AA' re with 
AA' re Arc's vah_æ and off«ings 
HOW Azure Arc enabled Se•rvetS work 
How Azure Arc enabled SOL Server works 
HOW Azure Arc enabled machine learning works 
How Azure Arc and Azure 
Authors 
Add ed to channel 
New questions are jn_theworks. 
with the courses below. 
Ben a Data MVP. with SOL siQ SOL 
Sewer mainly in the al/Datawarehousing held, Besides his muralsi9ht courses, Ben is_ 
Steve Buchanan is a Director, & Midwest Containers Services Lead on a Cloud 
Trarßfotmati•M/DevOps team with a large He is a 9-time '&rOSOft 
Niraj is a AWS/Azure Specialist with over a decade of work experience "Ito 
Data Modeling with Databases like Cassarudra, M0090Da, SparkSG•L ElasticSearch and SOL

Here is a link to check out the new Azure Arc path: https://app.pluralsight.com/paths/skills/managing-environments-with-azure-arc

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! 

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

Read more

Guest on New Relic Observy McObservface Podcast – GitOps, Kubernetes, Linux on Azure, AI, Blockchain, and more

I was recently a guest on New Relic‘s Developer Relations team podcast “Observy McObservface” with Jonan Scheffler.

Jonan Scheffler and I talk about Microsoft’s Azure Kubernetes Service (AKS), Linux on Azure, how Microsoft’s been successful at working in enterprise and open source, where I believe GitOps & Kubernetes is eventually going to go, and my excitement in regards to AI and blockchain as well as how they’re going to impact the world. You can listen to the podcast and read the article links below.

Listen to the Podcast:
https://www.buzzsprout.com/1225223/8618776-open-is-not-optional-shifting-sands-and-faxing-on-blockchains-with-steve-buchanan

Read the Article:
https://www.therelicans.com/mandymoore/open-is-not-optional-shifting-sands-and-faxing-on-blockchains-with-steve-buchanan-495p

Read more

New ebook – Azure Arc enabled Kubernetes for Multicloud on O’Reilly

After 6 books with many authors from Packt, APress, & Sams/Pearson I finally had the chance to author a book with O’Reilly. This is an ebook so it can be found and read on the O’Reilly online platform.

It is a great platform that I use personally for my own learning. On their platform, you can find ebooks, books across many publishers (most of my books are on there), video training, and even live training.

This book brings together 4 exciting technologies/topics including Azure, Kubernetes, GitOps, and multi-cloud. The book is shorter than my typical books since it is an ebook. It is only 35 pages and is designed for fast & easy consumption to get an overview of the technology and get an early start.

In this book, we take a journey into one of Microsoft’s newest cloud services Azure Arc enabled Kubernetes (Arc K8s). We explore what Azure Arc K8s is, how it extends the Azure control plane to Kubernetes clusters to manage, secure, and govern them, as well as how GitOps sits are the core of application deployment to Kubernetes clusters and a driver of consistent configuration management for Kubernetes clusters.

Azure Arc is a Microsoft product that promises to extend the Azure control plane for Kubernetes across multiple clouds and on-premises, but how does it do this? In this ebook we will dissect Azure Arc K8s and how it becomes a secret weapon for managing Kubernetes clusters across on-premises, multiple clouds, and regardless of your own rolled Kubernetes clusters or managed services based Kubernetes clusters such as GKE, EKS, etc. I also want to give a shout-out to Michael Levan for reviewing this ebook!

Key Areas from the ebook include:

-Understand the new management challenges that multicloud brings
-Learn how Azure Arc drives consistent governance, security, and management across multicloud
-Gain valuable insights into Microsoft’s Azure ARM control plane for Kubernetes
-Learn how Azure Arc manages Kubernetes clusters across on-premises and multiple cloud deployments
-Explore the GitOps technology pattern and operating model for cloud native applications and Kubernetes
-Use Azure Arc-enabled Kubernetes and GitOps to deploy configurations and applications to Kubernetes clusters

Check out the new ebook here: https://www.oreilly.com/library/view/azure-arc-enabled/9781098102647

Also keep an eye on my O’Reilly author page here https://www.oreilly.com/pub/au/8326 for any future projects I have with them.

Read more

Speaking on “Containers in Azure” at Lagos State University (LASU) TechX conference

I will be speaking at the LASU TechX conference on Friday. I will be talking about the “Available Container Technologies in Azure”. I will go into what containers are, how they compare to VM’s, types of containers, things to consider before containerizing applications, what container service in Azure to use in what case, and more.

About The Event:

LASU TechX conference is an event that is aimed at attracting students and all tech enthusiasts within and outside the university (Lagos State University). This event is co-organized by Kazeem Adegboyega.

Speakers include:

Microsoft MVP – Samuel Erskine
Microsoft MVP – Isidora Kitanic
Chris Hoard
Microsoft MVP – Adnan Hendricks
Microsoft Employee – Holly Lehman
Microsoft MVP – Steve Buchanan
Ayodeji Folarin

Here is a flyer for the event:

For more details on the event and to register go here:

https://www.eventbrite.com/e/lasu-techx-conference-2021-tickets-135555055821

Read more

GitOps: The Big Picture

There is another wave coming. This wave is GitOps. GitOps is a technology pattern and operational framework. It is often used for Kubernetes however is really for cloud-native applications in general. Being that a large amount of cloud-native applications these days are designed and built to run on Kubernetes it is no surprise that GitOps is commonly adopted in Kubernetes environments. If you are running Kubernetes or looking at it chances are you may have heard of GitOps. This is how I define GitOps:

GitOps is an operating model pattern for cloud native applications storing application & declarative infrastructure code in Git as the source of truth used for automated continuous delivery.”  

Well, that sums up with GitOps is but it still is a mouthful and can take a bit to wrap ones head around it. In a nutshell GitOps is shifting everything to code, storing everything in Git, making Git the source of truth, and using an operator deploy what is described in Git in your environment including the application and the configuration. With GitOps you describe the desired state of your entire system and GitOps makes it so. It simplifies operations and makes the experience for developers much better allowing them to work out of a tool they are familiar with (Git). Here is a basic sample diagram to give you a visual idea about what GitOps is and how it works:

So in the case of Kubernetes you would have your app code in Git, your container images in Git, and your Kubernetes manifest files. Now there is more to it and how it works but we will not get into all of that in this blog post. This is a good Segway to purpose of this blog post.

The purpose of this blog post is that I just dropped my 7th Pluralsight course GitOps: The Big Picture! This was a fun course to build as I am passionate about and like working with Containers, Kubernetes, and cloud.

A quick shoutout to both Fellow Microsoft MVP/Pluralsight Author Tim Warner and Jason Alba for amplifying my new course!

This course teaches the fundamentals of GitOps, the need for GitOps, GitOps architecture, GitOps workflow, GitOps principles, practices, & tooling such as Flux, Argo CD, AND Jenkins X. Also in this course, GitOps: The Big Picture, you’ll learn what it takes to adopt GitOps. First, you’ll explore what GitOps is and its benefits. Next, you’ll discover GitOps Tooling NS Architecture. Finally, you’ll learn how to use GitOps Workflows. When you’re finished with this course, you’ll have the skills & knowledge of the GitOps framework needed to take the next steps with GitOps.

In the course I give a couple of demos so you can see GitOps in action. The first demo is on “deploying an application using Argo CD” and the second demo is on “GitOps in Action with Azure Arc Enabled Kubernetes using Flux”. Another interesting fact about GitOps is we are starting to see the major cloud providers bring GitOps into their offerings such as Azure Arc and or couple GitOps with their services like with GCP GKE as well as create content on using GitOps with their managed Kubernetes services like with AWS EKS.

GitOps is going to continue to grow right along with the continued growth of Containers, Kubernetes, and Cloud. I am all in and you will see blogs, books, courses, speaking at events, and more from me around GitOps as I continue on my personal journey with it.

Check out the “GitOps: The Big Picture” course here: https://app.pluralsight.com/library/courses/gitops-the-big-picture

Be sure to follow my profile on Pluralsight so you will be notified as I release new courses! I will be releasing more courses soon on topics around Azure, GitOps, SAP on Azure, & Kubernetes courses soon!

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

Read more