Hey friends, you know, Azure Arc
simplifies governance and management by delivering a
consistent multi-cloud and on-premises management platform.
Lior is here to show me how it enables you to do cool things
like apply GitOps configurations on Arc enabled Kubernetes
clusters wherever they may be from Azure. I'm going to learn
how, today on Azure Friday. Hey friends, I'm Scott
hanselman. It's Azure Friday. I'm here to learn all about
Azure Arc and specifically how you can manage your Kubernetes
with GitOps. I'm here with Lior. How are you? I'm good, I'm good. Happy
Friday the 13th to you. Indeed, this is going to be
lucky. It's going to make all of our demos work brilliantly.
That's when things go really well, on Friday the 13th. Right, so tell me about Azure
Arc. Why are people so excited about it? Well, if you think
about it, what's what was really missing? I think in the hybrid
story is the fact that there was no real story around stretching
a control plane, right? And if we have Azure Resource Manager
which is our control plane, or you know if you made the
operating system of Azure what we're doing with, that is we're
stretching at outside the boundaries of Azure and with
Azure Arc we are able specifically with our cable
Kubernetes, we're able to stretch the control plane and
actually get access to Kubernetes clusters that out. That are diploid outside of
Azure, and by doing so we are able to do some cool things,
which is what we're going to show today. Part of it is good
apps, you know, policy monitoring, so really it's about
reaching outside of Azure and projecting resources as first
class citizens inside Azure. That's really interesting. That
term projecting resources right? 'cause I've had folks on to talk
about the Azure Stack Edge, which is a physical machine, but
when you go into the Azure portal it shows up there, so it
is Azure. So these resources that you're going to be showing us. Don't live in Azure, they're
not running on Azure hardware, but they're in Azure because
they're projected into that space. Right, and it's really
about reaching out to platforms that until now we didn't have
any access to that, because if you think about Azure stack,
it's you know it's an Azure product. It's controlled by us.
All the APIs is something that we are governing, but now the
challenge is how do you actually approach these different APIs on
different platforms, different infrastructure and actually
being able to do something about that? So that's really what's
cool about that. Very cool. And you brought me a demo, of
course. Yeah, yeah, so today. What we're going to show is how
we are using Git OPS, which is a very great approach to governing
your applications and cluster configuration. I'll talk about
that and how do you use that against clusters? Kubernetes
clusters that are diploid outside of Azure, so if you
think about it right, you have multiple clusters spread across
the board, right? They can. They can be in different countries,
different continent, right? But you want to have one place that
you can manage those, but it's not really about managing just
the cluster. It's also about the applications, right? Because this is. You know, again today
what's driving the business, So what we're going to, we're going
to show three clusters that are diploid outside of Azure, and
then we're going to do a real time update on an application
and web application, and that is deployed on all three clusters,
and we're going to see that real time. So to start the demo you
can see here in my Azure portal I have triarc enabled clusters,
right? So these are represented as Kubernetes Azure Arc, and
those clusters are compared from AG cluster. Raspberry Pi Cluster
an if VMware cluster diploid with rancher catria. So you can
see already the spaghetti of platforms in infrastructure that
we're going to touch, right? So the first cluster is the Arg key
one and to show you that this is really a demo about resources
that are outside of Adderall, zoom in it a bit right? You can
see that this is an Arg key demo it's deployed on on story on Google platform. And this one is
the Raspberry Pi cluster diploid with ranch OK Treos and I know
that you are a big geek like me when it comes to hardware so I
have this right here and this is actually the cluster. It's
disconnected one but I have another one diploid in my
garage, which is what we're going to demo again. So if you
can see that this is kind of the prototype for that, so I hope
you can see that that's great. That's a beautiful case. So that
is a little piece of Azure right there. You've actually taken 6
Raspberry Pis, installed Kubernetes on them, put them in
a case and now you have a tiny cloud. Yeah, yeah, exactly
exactly. And this is what we're going to be using a second here.
So to show you that this is actually a Raspberry Pi cluster
because we are, you know, when we're talking about Azure, are
one of the biggest use cases. The edge, right and low power
devices. So to show you that this is actually a cluster that
that is deployed on Raspberry Pi, I'm going to open here my
terminal here and just do a quick you cuddle, get nodes and
you can see that this is a six node cluster, right? Sorry 7 old
cluster including the control plane. An to take it one step
further, I'm going to SSH to it. An I'm going to run
this uname command. Show that this is actually an
ARM CPU cluster, right? So that is a Raspberry Pi cluster, so
will minimize that and the third cluster is Kate Rias again,
Rancher cluster that is deployed on top of Ymir. So again a
different platform on premises platform, right that has a
single virtual machine that has Kubernetes cluster, a single
node Kubernetes cluster that is deployed on top of that, any
file zoom into that to that virtual machine, right? You'll
be able to see that the 170, two, sixteen, 1061 IP. Which will come later on in this
demo, so I do also later make sorry I was just going to say
just to make sure that folks who are listening they are maybe
familiar with Kubernetes that they've heard of as being K and
then the number 8 S even saying K 3S, which is a lighter weight.
Smaller Kubernetes for devices like this print, right, right?
And a lot of you know a lot of these IoT and edge scenarios are
required. Maybe a lower footprint. Kubernetes
distributions. An rancher did a great job on. Creating one, so
that's what we'll be using. You know, in this demo. OK, so I'll
go back to Azure here and we talked about the tops right? And
how is that being translated in the world of Azure Arc enabled
Kubernetes? So I'll click on one of the clusters, and this is
actually something that you will see on all clusters. Or just
pick the G1 and you can see here under configuration. I have a
couple of configurations and those are the tops configuration
that we are making approachable and easy to deploy as part of
our cable clusters, right so? Once you have these cluster on
boarded and projected as an arc resource, you can deploy tops
configuration now. Once in off the back right that you notice
is that there are a couple of configuration your couple of
operator scope scopes that we're deploying. So to explain, you
know for the viewers that don't know what the tops is all about.
So in a natural guitars is really a process or methodology
to use Git repository's as your source of truth for a desired state configuration. For your
application or cluster configuration, right? So if you
think about the situation when you are deploying, you know
hundreds of Kubernetes clusters and then you are making a change
to your ingress controller. For example, you want that change to
be applied on all these clusters, but how do you do that
in a fleet management manner? That's that's the challenge and
what Azure Arc does. It's basically make that
approachable. So what we have here is we have a couple of
configurations you can see here. Cluster configuration and
namespace configuration. Let's talk about it for one second,
cluster configuration really talks about how do you govern
the cluster configuration literally. So let's say you have
service meshes or or security applications or ingress
controllers, right? Like we have in this cluster. And how do you
make changes horizontal changes across the board on all
clusters? So this is where you're going to use the cluster
scope, and the namespace is really where the application
kicks in, right? So you're deploying applications against Kubernetes namespaces. And This
is why we have the the operator scope for a namespace. Now I'll
zoom into, you know, to one of the configurations and let's
talk about it before we actually going to make the change right
and see how that changes being done real time. What we're doing
with Azure Arc enabled communities in Git OPS. We're
actually leveraging another open source project which called flux
coming from we work San Fluxes and Kubernetes operator that
responsible for creating this handshake between your cluster. And the Git repository that you
are using for your applications right? And the flux also has
another operator, which is the fluxed Helm operator so you know
Helm is kind of the defector standards for package management
for Kubernetes applications, and we're leveraging that as well.
So what we're doing is we're listening with the Flex
operator. We're listening to a Git repository, and then we're
going to make a change to that Git repository and see what's that all about. If you look at
the at the operator parameters here, one thing to notice is the
path right? And you can see here releases and prod, so I'll go
here to my to my demo application. And first of all
let's let's see kind of the repository. This is a
repository, we call it a low arc demo application, right? It's a
simple node JS web application that is deployed on all the
clusters. The interesting part about the web application is if
I'll go here 2 releases. We'll be able to see the engine
EXE and the prod releases, and if you remember from the
previous screen I showed you that there is. Leases and then
prod. So what we're doing with the flex operator in Azure Arc
enabled, Kubernetes is basically handshaking with Helm Helm
release CRD that basically act as a proxy to the actual YAML
files and held package right that is responsible for
deploying the actual application. Right? So it's
really about simplifying that process that all we need to do
is to talk to the helm release. So here in that helmet really as
you can see it's a it's a straightforward. File that has
the release name, the repository that we are at right now replica
counts and the message and the message that we're seeing. So
what we're going to do is we're going to make a change on that.
I'll minimize the screen here and to show the viewers on how
that changes actually translated in real time. So what is it that
we're seeing here on the top of the screen, you'll see the web
application that we just showed diploid on all three clusters,
right? Remember the Raspberry Pi deployed with rancher khatris. We have a G key cluster in the
middle and we also have the rancher khatry S diploid on a
single virtual machine. If you are single virtual machine right
on the bottom, what we have is we have the terminal that
actually looking at those clusters and specifically what
we're going to do is. We're going to listen to the prod
namespace and the prod namespaces where the the web
application that we're seeing is actually deployed, right? So
let's go ahead and listen to that to that prod namespace. On all tree clusters. And you can see that here we
have the prod Helm operator which is the one that I
mentioned before. This is the operator that responsible for
actually listening to the Git repository an asking the git
repository. Hey, are you seeing any changes? Are you seeing any
changes and the moment that he will see that there's actually a
change, it will go ahead and do a rolling update for the
application that is deployed on the Kubernetes cluster, right?
So right now we have this application deployed on all
three clusterin we have. A single replica, which is
basically no replicas in the world of Kubernetes, right? So
let's go ahead and make a change and see how does that fit into
the rolling update and the and the kind of auto update process
and the entire Git OPS flow. One thing you notice is that the
screen is flickering and there is a reason why is that. What I
did is I have an extension here that basically does a refresh
every 2 seconds for each and everyone of these browsers
because that way you will be able to see the change. Coming in real time, so let's go
ahead and do that. I'll go back to the. Oark repository and what
we're going to do here. We're going to change the message, and
we're going to change the number of replicas and see what's going
on, right? So the first thing is, I'm going to do, I'm going
to change the number of replicas to tree, right? And here I'm
going to change the message to. Hello Azure. Friday and now I'm going to commit the
change. Now, obviously in a production environment you're
going to have. It may be a more thorough process on how those
changes are being made, but once we want to show really is we
want to show the guy tops flow, right? So I'm going to commit
those changes, right? He ran quickly, minimize the window and
let's see what's happening. You can already see on the on
the bottom that pods are starting to spin up right and in
the second year you're going to see the application update at
real time on the top right. So what you're saying is we're
seeing the flux operator actually doing its thing,
listening to the Git repository. Seeing that there is a change,
and now you can see the application is starting to
change. Now, the reason that you are seeing the message bouncing
between the new one and the old one, because if you remember, we
also changed the number of replicas so the engine EXE the
load balancer that is deployed on the cluster on the cluster. Is also actually doing its thing
right? It's bouncing and load balancing between the new pods
that now gets deployed, right? So this is what's happening and
you can see that the viewer one already updated. We can see the
G1 already updated and also the Raspberry Pi so you can see
three different platforms, three different types of
infrastructure and the same application got updated in real
time. And the last thing to notice is that you can see here
that the pods name are actually changing right because? Remember from zero replicas or
one replica, we change it to three replicas, right? So if
I'll kind of make make the screen here a bit cleaner, you
can see now that we have three replicas of this application,
and this is what actually going to be on all three clusters. So
what we did is basically kind of show a guy top slow end to end
the top slow on three different platforms using Azure Arc
enabled Kubernetes and this is really the demo, the last. You know the last piece of that
is, you know, we always get in. Ask how to do this kind of
demos. How to do this kind of configurations and what we did
is we create an open source project humans back which called
the Azure argue Jumpstart and I'll switch back to my full
screen browser. Here an into the jumpstart repository. So the
jump start repository is really about taking all the arc
scenarios that we can think of when it comes to Azure Arc
enabled servers. Azure Arc enabled Kubernetes SQL Server
data Services right, Azure Arc as many pillars and more to
come. But what we wanted to do is we want to make that very
approachable. We wanted to make sure that you have a good
experience, kinda zero to hero experience that you can start
actually try out Azure Arc, but. The real challenge with this is
because Azure Arc Touch is by definition everything that is
outside of Azure and projected into Azure. We wanted to provide
a way for, you know, for our customers for people that really
don't know a lot about other platforms outside of Azure, but
really wants to start taking advantage of Azure Arc. What we
did is we created those jump start scenarios and today we
already have 50 plus scenarios and those jumpstart scenarios
are here in this repository. We take you by the hand and tell you. A bit about Azure arc. How
you can use how you can use it. What is it that you supposed to
do with that right? But the real meat around the bone is these
scenarios that you can see here, right? So you can see we are
actually covering all the major cloud providers and all the
major infrastructure providers and providing them with an
automated way to deploy arc environments. Start doing the
demo. Start doing PEO CS, right start? Actually getting their
hands dirty when it comes to. When it comes to Azure arc
right? And the demo that I just showed you right? If a score
here scroll here to Azure Arc enabled Kubernetes you can see
here for example this is what I used to deploy the cluster that
I just showed you an here. We also have day two scenarios and
use cases right? So we're not just showing you how to do the
bootstrap of the environment we're actually taking you by the
hand and showing you what is it that you can do and how you can
get that automated so you can quickly spin up the environment and do that. Over and over
again, right? So here is, for example, the the Git OPS demo
that I just did. It's here part of the you know part of the part
of the repository takes you by the hand with screenshot with
code samples with all the automation that is needed in
order for you to actually get going. So that's the jumpstart
repository and we have more to come. Fantastic, that is a
really impressive demo like that when we sometimes I think even
the word demo isn't big enough for demos like that because
that's all real. You know what I mean? Like you could have filmed
all that, but you've got a real Raspberry Pi cluster you've got.
I mean, when was the last time we had Google Cloud on Azure
Friday, you know? I mean that was extraordinary and this is
the real magic, you know, this is really the real magic when it
comes to Azure Arc enabled servers. Kubernetes, you know data services is. Stretching,
you know, and really taking the notion of hybrid cloud to the
next level. This is really the jello in for agile for hybrid
cloud because it really touches the software layer and not just
the infrastructure layer. It's really jelling those together
fantastic. I am learning all about Azure Arc enabled
Kubernetes with Kid ups today on Azure Friday. Hey, thanks
for watching this episode of Azure Friday. Now I need you to
like it. Comment on it, tell your friends, retweet it. Watch
more Azure Friday.