 In this video, we're going to talk a little bit about Kubernetes ingress. So ingress is how we get in and out of the cluster as far as in a networking perspective. So if we want to make a request that is going to be handled by a Kubernetes cluster, we will be going through some type of ingress into the cluster. So you can see here, we've got some important terminology we have noted. So worker machine and part of the Kubernetes cluster. And one of the things that we're against is in our demo right here is that we are running on our local machine. So we are a single node quotes cluster. So Kubernetes when it's deployed, it can be clearly on multiple machines might even be in multiple data centers. So there's literally thousands, if not more ways to deploy Kubernetes. So a cluster is going to be a set of nodes. And again, for our purposes, we only have one node in our cluster because we are running on our local machine. If we were running on AWS, we might have a set of servers that we've provisioned for Kubernetes. So there's just a lot of a lot of different things that we can do. As far as how things are going to be deployed, the edge router, again, that's going to be some type of device that could be routing traffic into your Kubernetes cluster. So let's come up here and talk about this, what is Ingress? So the client is going to make a HTTP or HTTPS request to a host name, some type of a host name and path. And that path is going to be serviced by something. Now some type of endpoint, that Ingress endpoint that is going to be coming into the cluster. Now your service and pods, that is all handled by Kubernetes now working layer. So this is kind of like a virtual networking layer that typically we are not going to be interacting with at all. Kubernetes has tools to manage that. And what I want to stress in this video is that there's a lot of different ways that we can skin this as far as how we get into this. And let me come up here to Ingress controllers. And here we can see some popular Ingress controllers for Kubernetes itself. Let's see here. You can see here Kubernetes itself, there are controllers specifically for AWS, Amazon, Google Cloud, and then EngineX. These are all very popular Ingress controllers. Again it's highly dependent on what your environment is. So if you're using AWS, obviously you might want to be using AWS load balancers likewise for Google Cloud Foundry. Might want to do that. Next that could be some type of custom cloud environment. If you are running your own data center, here we have F5. I don't know a lot about F5, so other than that they are very expensive and they can handle a crazy amount of network traffic. But the key takeaway that I want you to have here is come back here is coming into this Ingress controller here. There's going to be a component that is going to be routing traffic into that. We are somewhat limited because we have a single node. To emulate that, the simplest thing for me to do showing you that what we are going to be doing is taking Spring Cloud Gateway and setting that up as our Air Quotes Ingress controller. So I'm going to be setting that up. We will be exposing it on a port on our node port. So we'll get a random port assigned by Kubernetes that we will be able to go through the Spring Cloud Gateway into our microservices. I decided to record this as a specific video to allow us to think about the deployment and understand the limitations of running on a single machine and also all the deployment options. A lot of times you will be standing up services and pods behind all this and the actual Ingress is going to be handled by a DevOps team and you as a developer is really not going to have a lot of control over that. You need to be aware of that and that they will be routing traffic to that and you might have. So using our example, your bear service could be running in a cluster of machines on one Kubernetes cluster. Your inventory might be on a completely different Kubernetes cluster and there might be some type of Ingress controller in front of that, managing all that. So there's a lot, I cannot stress this enough, there's a lot of different ways that we can control that. Here, the takeaway I want you to have is understanding that there's a lot of diversity and really there's no right answer. There's just a lot of people have opinions, a lot of people have dependencies on the deployment environment that they're in, personal preferences. Here we are going to be mimicking this piece using Spring Cloud Gateway and a service type of a node port and we'll be looking at that in the next video as we set things up using Spring Cloud Gateway as our, I'm saying this in air quotes, a Ingress controller for Kubernetes. And again, there's a lot of different ways that we could do this for the purposes of this class. I felt that Spring Cloud Gateway was probably the simplest approach because it allows us to see a couple of things as far as service discovery and whatnot and routing to our services within the Kubernetes cluster. Understanding that the Kubernetes cluster is going to be handling all the networking between Spring Cloud Gateway and the actual services and the pods that it's deployed on.