 Good evening everyone. My name is Orko Bhattacharya. I currently work with Solo and I'm here to talk about K9s which is a tool that I've been using for about one and a half years now and I truly love it. So I thought about sharing it with you all. So a couple of years back I started working with Kubernetes and like many others I started with Q-Cuddle, a simple Q-Cuddle get pods and the Q-Cuddle cheat sheet became my absolute favorite bookmark which I used to write for often. As time progressed I started working with aliases because it saves time so much time right and I want to give a big shout out to the Q-Cuddle ZSH plugin maintainers for making life so much easy that we still use it. As I started interacting with more and more power users of Kubernetes I got introduced to K9s and was simply blown away by it. So it's a terminal based user interface that you can use to interact with your Kubernetes clusters. So let's see it in action. So to start K9s you just have to type K9s in your terminal and you'll see the pods running in the default namespace in the beginning. So if you press zero, zero for all, you'll see all the pods running in the Kubernetes cluster. So I see on the left column on cube system namespace these pods are currently running. So I'm not going to now I'm going to install Argo CD in the Argo CD namespace and you'll see all the pods coming alive on your screen. This is all in the terminal so and you can click on any of the pods and you can see what's the container inside it or what's the image that is being used, whether it's passing readiness check, whether any container has completed or not and what are the pods exposed on the pods. So it gives a good summary. To delete a pod or any object you can just do a control D and the pod or any object that gets deleted. In this case it's a deployment so you can see that the pod is already coming up. So to see all the deployments of the cluster you have to do escape colon deploy and you'll see all the deployments in the cluster. I can see these are the deployments. So to scale up the deployment you press s for scale and I'm changing the replica count to two here so that the two pods for this deployment start up. Now to search for an object by keyword what you have to do is just press slash and then type the keyword. So I'm typing server and these are the deployments which has a server keyword. I'm selecting all of them using space bar and then scaling them up together with s for scale. So if I go to the pods I can see that the pods are coming up. It's all live so it's a very nice user interface. Let's go back to the deployment and let's scale them back down. Same way slash server selecting all by space bar and then reducing the replica to one. And when I go to the pods view I can see all the pods in the desired state. To do a port forward all you have to do is do a shift F for port forward and it gives helpful suggestions like what are the container ports on the pod and I'm port forwarding on localhost 8080 so that's where I'm going to go now and I'm going to try to log into Argo CD that I just installed. So to log into Argo CD you'll need a secret value which is stored in the form of Kubernetes secret so I'm going back and I'm typing escape colon sec for secret that will list all the secrets and to see the value I'm going to press x just one keystroke and I see the decoded value of the secret and I'm putting it as a password and I'm signing in so now I'm signed in I want to see the logs of the pod and for that I just have to go to the pod and press L for log and I can see all the logs if I want to see it in full screen the option is there F for full screen and W for word wrap. So it's really helpful when you when you're working with multiple contexts and you want to switch between contexts you can just type escape colon context or CTX it'll show you what all context are there in the Kubernetes cluster I right now have two more clusters running so it's very helpful when you're testing with multi cluster scenarios so I have two clusters running where I have Istio deployed in both of them and I have this product page application running in US East 2 which is in the top right and US West 2 US West 1 which is in the bottom right so I want to do a fail over testing and I'm tailing the log for the pod so I pressed L in both of these view and now I'm going to send some curl on the on the left tab and as I sent curl all the request is going to the US East 2 at the moment you can see all the logs on the top right if I send a few more curls you'll see the timestamp getting changed there but nothing is going to the US West 1 yet so what I'm going to do now is just forcefully scale down the deployment in US East 2 so I'm scaling it down to zero and now I'm going to send the curl once again but we won't see any request failing we'll see the request going to the US West 1 because that's how I set up the failover so it's pretty nifty when you're testing in a multi cluster environment so I've created this cheat sheet to help anyone who's just starting with canines and I hope you find this useful if you have any questions if you have any feedback or if you have any pro tips to share with me please do feel free to reach out and be happy to chat about it thank you so much for being such a lovely audience