Kubernetes has been adopted by many enterprises and organizations thanks to its convenient and powerful features for container management. People use it to flexibly deliver complex applications running on clusters of multiple servers. Although it provides such an extensive range of features to users, sometimes, things can go wrong. When that happens, it could be difficult to exactly find the cause and fix it. This article discusses some of the best ways of troubleshooting Kubernetes.
Kubernetes has a broad ecosystem. This means you will have to first understand the spot that is currently experiencing trouble. Once you spot it, you can then narrow down the number of options to tackle the problem.
Application Troubleshooting
Let’s first assume that your application is having a problem. For an application problem, you need to know if Pods, Replication Controller, or Service is experiencing the trouble. For debugging your Pods, you can execute the following command to see the status.
kubectl describe pods ${POD_NAME}
If your returned status is “Pending”, this means that there are not enough resources to schedule a node. If the status says it is “Waiting”, this means it has been scheduled but it couldn’t run on that machine. To find more detailed reasons, read through the message from the command above. Also, if your pod is running but not in a way that’s defined by you, check your pod description in your yaml file on your local machine.
When there is a problem in your replication controllers, fixing it can be quite straightforward. If your controllers could not create a pod, try the same approach as explained right above. You can also consider executing the following command to identify the cause of the problem.
kubectl describe rc ${CONTROLLER_NAME}
Cluster Troubleshooting
When your problem is not related to your application, check your clusters. Firstly, list your clusters to see if their nodes are registered correctly.
kubectl get nodes
Check if all the nodes appear and they are in the Ready state. If you want to retrieve detailed information, you can try:
kubectl cluster-info dump
As you get the result from the command above, you may want to dig deeper. In that case, you need to start looking at logs. There are two major log groups and, depending on the group, you will want to check different log files.
Master:
/var/log/kube-apiserver.log (API server)
/var/log/kube-scheduler.log (scheduler)
/var/log/kube-controller-manager.log (controller)
Worker nodes
/var/log/kubelet.log (Kubelet)
/var/log/kube-proxy.log (Kube Proxy)
Kubernetes lists potential root causes of your problems with possible scenarios in its documents. It can be beneficial for you to familiarize the potential causes so that when one of the symptoms appears, you can quickly diagnose the problem and start debugging it.
Getting Help From Communities
Even if you don’t experience any trouble at the moment, following through with the guides above will help you to prepare your approaches when things happen. When you see a familiar symptom or a message, you can quickly take corrective actions. Of course, you will also face unfamiliar problems. In that case, as Kubernetes recommends, you can consider relying on communities.
The most frequently referred source would probably be Stack Overflow. If you are a developer, you should already know the website. There are numerous Kubernetes questions in Stack Overflow and they are tagged as “kubernetes”. You can first search your problem and, when you can’t find any, you might want to post your question with the hashtag.
Another good source can be the Kubernetes Slack channel. It requires an invite, but it is open for anyone. You can freely communicate with all Kubernetes users and get tips and clues to debug your problems.
Study a Complete Guide
Just like the Kubernetes documents, this k8s troubleshooting guide shares strategic approaches as well as specific debugging techniques for Kubernetes troubleshooting. The material contains sample commands to investigate your symptoms and finally identify the root cause. Again, even if your Kubernetes isn’t experiencing any problem, reading through the guide will definitely enhance your knowledge and let you head-start to debug your issues.
Wrapping Up
This article shared important tactics to resolve Kubernetes issues and general troubleshooting materials you can study in normal times. Try to explore the community websites and register in advance so that you can quickly reach out to ask for help. The guide also lists essential debugging strategies, so have a read and try its sample codes to become familiar with them.