Are you looking to begin your cloud architect or cloud engineering career? If so,
this video is for you.
Hi, my name is Michael Gibbs and I'm the founder and CEO of Go Cloud Architects. And
we're an organization dedicated towards building high performance cloud computing and networking
careers. I've been working in technology for over 25 years now, and I've been coaching or mentoring
others to get their first tech job or get promoted in tech for over two decade now. And I absolutely
love doing that. Today, we're going to be talking about some cloud architect fundamentals,
specifically we're going to be talking about containers. Now, if you're new to containers
versus virtual machines, please see the previous video for which we talked about virtual machines
and containers. I'll leave the link in the description below. In this video, we're going
to dive just a little bit deeper into containers and knowledge of containers, which are one of
the two primary computing platforms on the cloud, is an absolutely critical cloud architect skill.
So let's talk about containers. What is a container? A container is a very lightweight,
modern form of virtualization. Effectively containers work as follows.
Basically you have your host. Its got operating system installed. You've got some type of a
container engine. And then basically you have these logically separated applications
that are completely secure and logically separated from each other. And basically what happens is
inside the container, you basically have the operating system, any critical dependencies that
it needs and that's it. And you can take this container and you can move it to another system
or another cloud provider. So this technology is really vendor agnostic. You make a Linux
container, it can work on a Linux system and you could take that with you from your data
center to a new data center, to AWS, back to your data center, to Azure, back to your data center,
to GCP. Or you can keep them on all the data center or all the clouds all at the same time.
So containers are lightweight and they're very versatile and they're very standards based,
which makes it fantastic for cloud computing.
Now let's talk about what is Kubernetes. So when we're talking about containers,
you've got multiple ways to do this. We're going to talk about containers because that's the
enterprise wide container management strategy. So Kubernetes, which some people call is K8s
is really an open source system for automating the deployment, the scaling, and the management
of containerized applications. And this is an industry standard and it's used everywhere.
Think of it this way. At a high level, Kubernetes and the container applications are going to work
this way. The applications and their dependencies are put into a standardized image. And the image
is then placed into a container which could be placed upon a fleet of computing instances, maybe
a bunch of virtual machines, maybe a bunch of physical servers, anywhere you want to put them.
So that's, what's going on with Kubernetes. You've got your applications, you pack it up
and you can move these applications for the most part, wherever they need to be.
So why do organizations use containers? Well, first it makes your workloads very
portable because these containers scale easily and Kubernetes is widely used to
go to the cloud and back. It's also used with machine learning applications, AI applications.
Realistically speaking, it just simplifies your deployment so much because you can very
quickly deploy and manage many, many, many microservice based applications very simply.
And most importantly, I'm going to say it again, it's provider agnostic, which means you can use it
with any cloud you want and your data center, you can move on and off clouds very simply.
So this is your chance to go to the cloud. This is a highly efficient service and you can try things.
And if it doesn't work, you can just move back so easily or move to a new cloud. Because these
things are very portable. So portable, efficient, and lower cost than a virtual machine. This is
just great technology. What is Kubernetes actually doing? Well for the most part,
it's providing an orchestration of your container services. So look at it this way. It enables you
to basically automatically mount a storage system of your choice, whether it be a local store, a
public cloud provider, et cetera, then it enables you to roll out and roll back new applications
that are containerized very quickly. Basically you can describe the state of the container for your
desired deployment and basically speaking, when you do that with Kubernetes and you can change it
to the actual state at a controlled rate. So you can figure out your desired state and then move it
over and do it in a controlled weight to improve your deployments, the accuracy of deployment.
So this is really great. So for example, you can automate Kubernetes to basically create a
new container for deployment, resume existing containers, and adopt all the resources to the
new container when it's appropriate. So this is kind of great. So let's talk about some other
features that you get with Kubernetes, which is why organizations love this. You get something
called automatic bin packing, and basically you provide Kubernetes with a cluster of nodes
that it can use to run these containerized tasks. You tell Kubernetes how much CPU,
how much memory in terms of Ram each container needs. And Kubernetes can then fit the containers
to your nodes, where you have the compute passage to run these nodes. So it makes great
use of your resources and you know what, it's all also self-healing. So Kubernetes is able
to look at a container that's going to fail and it's going to be able to replace the containers
or kill any of the processes or any of the containers that don't pass the health check.
So then you can basically have a new one come up that's healthy. So really fantastic way to
modularize your services, decouple your services, and give them almost unlimited scalability.
So that's why we like this. So let's talk about how Kubernetes work. Well, like anything you're
going to have a control plane and a data plane. So let's talk about what happens at the control plane
or the orchestration level. So Kubernetes running this control plane software, which typically runs
on multiple master nodes. You've got high availability, so something's got to control
the situation. You've got multiple master nodes. And then the control plane basically will make
decisions, which clusters are going to do the workload. It's going to schedule it. It's going
to maintain the target manage and target state of the cluster. So you've got something that's
watching all of your resources and it's going to deploy the resources to places that are healthy.
So keep that in mind. You've got a lot of things that are part of this control plane. We're going
to talk about a few of them. We're going to talk about the kube API server. Now this API
server is really the front end of the control plane. This is which exposes your Kubernetes AP
and arrest API format. This is going to consume the YAML templates or the JSON input. So
let's talk about some more things that goes on. We'll talk about the cluster store.
So this is realistically basically a database. It's a key value store that maintains the
information of the cluster. It persists, the cluster stayed in your configurations. So you're
also going to have something called the kube manager and inside of your control plane, there's
basically going to be several controllers, such as a node controller, a job controller, a deployment
controller. As the name simply suggests, the kube controller manages all the containers.
So you might want to call it the controller of the controllers. And the last part we'll
talk about from the control plane perspective is the kube scheduler, which realistically actively
listens to the API server for new worker tasks. And then it's going to assign a worker node to
complete the worker task after it found one, because remember it's listening for new tasks.
Now, you know how the control plane works. Now the control plane is doing the orchestration,
but the data plane is where the computing is actually done. So where is this going to be?
This is going to be done on your worker nodes. So basically speaking,
you're going to have worker nodes that are going to do the work and the worker nodes
are going to have components which basically maintain the running pods and provide the
Kubernetes runtime environment. So your worker nodes are where the work's going to be done.
And basically what's going to happen is these running pods are an encapsulation of containers.
So more often there is only one container running in a pod, but it's possible to have
multiple containers running in a pod. Part of your data plan is going to be this kubelet service
and kubelet is the main Kubernetes agent running on each node. It's what registered nodes with the
control plane and listens for the API server for a work task. So after that happens, it's going to
create and execute a pod. And once that's done, it's going to report back to the control plane.
You've got the data plan doing the work and reporting back to the control plane.
So basically it's like a manager and agent environment that you should understand.
Let's talk about the kube proxy. And the kube proxy realistically speaking is a network
proxy that you have running on each node. It controls the communication between the pods
via the pods IP address from network sessions inside and outside of the cluster.
And realistically speaking, the container run time is really the software that is responsible
for the containers. So what do we talk about? Organizations love Kubernetes. Kubernetes
is an open source container management and orchestration service. It's got two components.
It's got a control plane that manages all of your resource from the preliminary containers.
And basically speaking, it has a data plane where the computing platforms are used.
Organizations love it because it's vendor neutral. It works in the data center. It
works on all clouds, and enables application portability, self-healing environments,
and basically near unlimited scalability. I hope you've enjoyed this video on Kubernetes
services and containers. This is a video in our cloud architect fundamental series as in
something that is absolutely essential knowledge for the cloud architect or the cloud engineer.
And realistically speaking, anyone that wants to build a cloud competing career.
Thank you so much for watching this video and I will see you in another video very soon. It was so
nice having you join us for this video today. Let me tell you about some free services we do for the
cloud community. Twice per week, we have a free how to get your first cloud architect job webinar,
where we tell you all the things you need to do and know to get your first cloud architect job.
In addition to that, once per week, we actually have a free question and answer session on live
on YouTube, where you can come and ask us any questions you want about building your career
related to cloud computing or networking. And we'll answer them in real time for you. Because
we want to get you to your goals. Several more times per week, we have guests from industry,
industry experts that I have known for decades that are mover and shakers that have changed
the world that can give you information so you can build the best career. I invite them
periodically. They are on my show. If there's a chance to do some free training on our channel,
we'll do it live because we want you to all, to have the best skills for the best career. So
please subscribe and hit the bell. I look forward to seeing you and I look forward to assisting you
in your technology career. Thank you so much. This is Michael Gibbs from Go Cloud Architects.