Do you remember this slide?
It's one of the most important slides
you should keep in mind when you think about Kubernetes
and deploying projects with Kubernetes.
It is important to always keep in mind
that Kubernetes will manage your containers and pods
and scale them and balance incoming traffic
and it allows you to deploy your multi container application
with ease, as you saw throughout the last sections.
But there is one key thing which Kubernetes won't do.
It will not create or spin up any remote machines,
any virtual instances,
it will not create a load balancer for you.
Instead, it will hand these tasks off
to the cluster in which you use it.
And therefore this cluster, the nodes,
the concrete machines which belong to this cluster,
all of that needs to be set up
and Kubernetes needs to be installed on those nodes,
both the control center as well as the worker node parts,
like the kubelets or kube proxy services.
All of that needs to be set up.
And that is why we use Minikube
because Minikube gives us such a dummy cluster
in a virtual machine on our local machine.
So it simulates that we have these nodes
with the software on it.
Now, we wanna do this for real, not on our local machine,
and therefore it's key to understand
that you need to set up the infrastructure
for Kubernetes to run on.
Kubernetes will not do that for you.
And that, of course has implications
on the deployment of Kubernetes' managed projects.
How do you deploy that if it's not on Minikube?
Well, in the end, it all starts with one important choice.
Are you going to use your own data center
or are you going to leverage a cloud provider?
And I would argue, in most cases,
you will probably go for a cloud provider.
If you're going for a custom data center,
then you probably know what you're doing,
or at least you should,
and therefore you will definitely not need
any recommendations from my side.
But having your own data center, your own machines,
which you build and manage on your own,
of course means that you need to install
and set up everything on your own.
The machines, so the computers,
and all the Kubernetes software running on them.
But again, if you do own your own data center,
you probably know what you're doing.
If you go with a cloud provider, however,
you, again, have two choices to make.
You can use the individual low level resources
most cloud providers offered to you
to set up your cluster entirely on your own.
That means you spin up your own virtual instances,
your own machines, through the cloud provider.
And on these machines,
you install and configure all the required software.
For example, if you are working with AWS,
that would mean that you go to their EC2 service,
which allows you to spin up your own instances,
which are just remote machines and the end,
and you create your own EC2 instances,
you launch your own instances,
which are just computers you manage,
and then you SSH into these instances.
So you connect to them with SSH,
and you then install all the Kubernetes' software
which is required, you create multiple instances,
you create a network for them.
And these are all things you can do with AWS.
And you do that all on your own. That's one option.
You can either do that manually,
or leverage tools like Kops,
which is, well, a tool, a service,
you can use to have an easier time
setting up all these AWS resources
which you need for Kubernetes.
And it does not just work for AWS
but also for other providers.
And that will then actually make it way easier for you
to manage that cluster and the resources needed for it
because then you have some tool, in addition to Kubernetes,
which handles this cluster orchestration.
However, if you wanna have an even easier time,
you can go for a managed service right away.
The difference being that there
you just define your general cluster architecture,
for example in some Graphical User Interface,
and then this managed service
will spin up all the required machines,
install all the required software
and set up the required network.
That would then happen automatically,
and that, therefore, of course, ensures that
you don't have to worry about the technical infrastructure
and the steps to set that all up correctly,
but instead you just get your Kubernetes environment
in the cloud,
and you can then apply your Kubernetes configuration
to that infrastructure.
And there are services like AWS EKS,
which stands for Elastic Kubernetes Service, can help you.
And indeed, in this module we are going to use AWS EKS
for deploying our Kubernetes cluster with these.