 Let's talk about seven tip and tricks on how to make the most of your Kubernetes journey. Okay, so you might be starting with Kubernetes or, you know, you better be experienced and there are a few tips and tricks that I want to share with you today. So the first one, which I'm going to show you, which I'm going to share with you today is to actually take it easy. So you might, you might have used other tools in the past to deploy your application or to just to scale them. And most of them, you know, they are okay. They are complex to start with, but sort of, sort of towards the middle, you start mastering them and you become an expert. When it comes to Kubernetes, Kubernetes is a little bit more complicated than anything else you've tried before. And then as soon as you start deploying it, things become increasingly complex until they become impossibly complex. And then even if you master things such as, you know, network policies or pod disruption budgets, you might find yourself falling off the cliff. So first tip is take it easy. It takes time to learn Kubernetes. You cannot learn Kubernetes in three hours. Okay. That's just not doable and not even, you know, in a weekend. The second tip I've got for you is you'll find yourself typing the same thing over and over again. Okay. That's very, very common. So you will take, you know, the way we get pods of deployment usually is by typing the command line. So what if I can auto-complete that? What if I can augment my productivity by using things such as kubectl auto-completion or by mastering how to navigate the documentation by using the CLI? Okay. There are projects like kube context and kube namespace where you can easily switch context and namespaces in Kubernetes. There is a very interesting plugin called, an interesting plugin manager called crew, and in which you can install new plugins from kubectl and extend how kubectl works. And then there are also projects like kube ps1 where you can have a nice prompt of the current context in your terminal. Okay. So all of those, if you're interested in the kind of stuff, I think I just posted a couple of links and those dive a little bit more into how you can optimize your productivity when it comes to Kubernetes. The third tip I've got for you is a don't drop connection. So this is so, so, so common. That we get questions all the time. So what happens is, if you're familiar with Kubernetes, but even if you're not familiar with Kubernetes, what you will find is that Kubernetes, every time you upgrade a version of your application, it will do what's called a rolling deployment. So we'll bring up a new version of the application and then we'll replace it with the previous one. And then we'll do the same for all of the applications inside your cluster. But replacing an application means that we need to know when that application can receive connections. If my application takes a minute to start, what happens if I replace it with a new version and I just start and I pass to the next one, right? That's actually, that, that sort of behavior is controlled through something called liveness and readiness probes. So those are crucial. So when you do a rolling update, Kubernetes will wait for liveness and readiness probe before it's going to move on to the next one. So if you don't put those ones in, it's very, very easy to take down your production infrastructure. Okay. So my tip for you is just check your liveness and readiness probes, right, and make sure that it works. The first tip I've got today is click and play. So you might be tempted to use GCP, right? Just click on the UI, create a project, click on GKE, create a cluster, just select a number of nodes, the type of nodes, and then click on connect and connect to the cluster, right? And then if you are in EKS or this Amazon offering, you might do the same, right? You might log in and consult in AWS and just click on a couple of buttons and create a cluster. If you are an Azure fund, same thing, right? But all of these are good when you're getting started, but if you're building production infrastructure, that's not necessarily the best way to approach things. The reason is quite simple. If you start clicking the UI, it's very hard to synchronize the changes across environments. If you want to create a new environment, you need to copy and paste the same values. So do I have two tabs open on my browser, just copying the values in and out? And it takes a lot of time to do it. I still need to go and click every single page and just go through making sure that I haven't missed anything, right? So rather than doing that, my suggestion would be just look at something like infrastructure as code. So Terraform is a good example of that, but also projects such as Pulumi are pioneering in what you can do when it comes to creating your own cluster as code. So you write a little code and you say, create. And what will that look like? It's like this, right? I go inside a folder called dev. I do a Terraform apply that it brings up 10 nodes for my cluster. I want to do that in prod. I switch into a different folder. There is a different set of configuration using the same code. I create another cluster. Tip number five, know how to expose your services. So most of the time in Kubernetes and Hunter just describe how services and pod works in Kubernetes. Most of the time, what we have is an internal load balancer which distributes the traffic to our applications. When we have multiple services, right, we need to find a way to distribute this traffic across all of these internal load balancers. So what do we do? We bring another load balancer on top, which does the load distribution. But this load balancer, it comes in all sorts of flavors. You could use NGINX, you could use HAProxy, you could use Glue, Istio, Citrix, you could use Kong, Ambassador. Which one is the right one for me? Well, it's really, really hard. But a project like this from Cube DAX gives you a good idea of what kind of options you have when it comes to selecting an ingress. For example, not all the ingress have things such as being working across the cluster. So for example, Kong doesn't, right? It's on a per name space basis. So projects like this are really, really useful. So tip number six is automated governance. So if you're building a cluster or just using a cluster as part of a team, particularly if you're talking about very large teams in the range of hundreds of thousands, what you will see is that there is a need to validate these resources that you submitted to the cluster. So these YAML files. So ideally you want to validate them, you want to make sure that all of the developers or all of your colleagues are using the same images, the same structure, the same labels. So you want to standardize what the YAML is and ideally you want to catch the error earlier, right? So we don't want to let anyone publish anything to the cluster, which is not what it's supposed to be. So if you have any of these sort of challenges, the solution is to use something like the Open Policy Agent, where you can define things such as, I only want this container to be published in my cluster, reject all the other containers, or you can look at a project called Copper from Cloud 66, which is basically just a validator for YAML. And a very similar one is Cubival from Instrumenta. They are designed, as you can see here, they are designed to basically just look at the YAML files and run some sort of linting, so you know if your resources are good. So the last tip I've got for you today, so the best way to make the most of your Kubernetes journey is to actually enjoy the journey. So I was lucky enough to be in KubeCon Barcelona earlier this year, and I had the opportunity to meet a lot of people that I would normally only meet online. So I think that really made a difference for me. So that was everything I wanted to show you today. My name is Daniele. I work for a company called Learn Kubernetes. Thank you very much. So the talk that I presented, lasted five minutes when I presented it at KubeCon China. So I was at KubeCon China, and I was lucky enough to be at KubeCon Barcelona. And as you can imagine, there were like loads of places with vendors and stickers. So what I did, I know that not everyone is lucky as me, and can go to conferences across the globe and just collect stickers. So I collected the stickers for you. So if you haven't had the opportunity to go to KubeCon, the opportunity is actually right there. You can go and collect any stickers you want. I only ask you to be mindful of others though. So just don't go there and grab all the stickers. Just make sure you share them with others, okay? There's only another things I wanted to say and I'm done. So what we do is as a company, we do training for Kubernetes. So we just released a free course on Kubernetes. So everything that Hunter just explained, you can try on our mini course. You can just take an application and just deploy it in Kubernetes. The application that you will develop is a note-taking application. So this course guides you from building the application and deploying it. So this first part is actually building it, and then you learn how to package it out in Docker containers. Hopefully this is a video. And then the other part is actually deploying it inside Kubernetes. And this goes and explain how to do that. The application is built in such a way that you understand how storage works. So this one used Minio, which is an S3 compatible sort of storage engine. And then it also goes dive into how to deploy this in EKS, which is the Amazon offering. So if you wanna have a look, this is all completely free and it's gonna guide you through how to do the deployment and how to try it. Just go to this URL. And that's it. Thank you very much.