A Comprehensive Guide to Taints, Tolerations, Logging, and Monitoring

mesrar

Mesrar

Posted on February 1, 2024

A Comprehensive Guide to Taints, Tolerations, Logging, and Monitoring

Taints (on nodes) and Tolerations (on pods)
Understanding Taints on Nodes
To inspect taints on a specific node, use the following command:

kubectl describe node <node-name> | grep -i "taint"

Enter fullscreen mode Exit fullscreen mode

Tainting a Node
Create a taint on a node with a specific key, value, and effect:

kubectl taint node <node-name> spray=mortein:NoSchedule

Enter fullscreen mode Exit fullscreen mode

spray: Key of the taint.
mortein: Value associated with the key.
NoSchedule: Effect that defines the behavior of pods that do not tolerate this taint.

Tolerations on Pods

When deploying pods, use tolerations to allow them to tolerate specific node taints. In the pod specification, add a tolerations section under spec with properties like key, operator, value, and effect:

#yaml

apiVersion: v1
kind: Pod
metadata:
  name: mypod
spec:
  tolerations:
  - key: "spray"
    operator: "Equal"
    value: "mortein"
    effect: "NoSchedule"
  containers:
  - name: mycontainer
    image: myimage
Enter fullscreen mode Exit fullscreen mode

Removing Taints
To remove a specific taint from a node:

kubectl taint node <node-name> key=value:effect-

Enter fullscreen mode Exit fullscreen mode

For example, to remove all taints with key 'dedicated' from node 'foo':

kubectl taint node foo dedicated-

Enter fullscreen mode Exit fullscreen mode

Logging
Viewing Container Logs
Check the standard output of a container using the logs command:


kubectl logs -f <pod-name> <container-name> # Follow the logs
kubectl logs <pod-name> --previous # Dump pod logs for a 
previous instantiation of a container
Enter fullscreen mode Exit fullscreen mode

Monitoring
Resource Usage Metrics
Get resource usage metrics for nodes and pods:

kubectl top node
kubectl top pod
Enter fullscreen mode Exit fullscreen mode

Identifying CPU-Intensive Pod
To find the pod consuming the most CPU:


kubectl top pod --namespace=default | head -2 | tail -1 | cut -d " " -f1
kubectl top pod --sort-by cpu --no-headers
Enter fullscreen mode Exit fullscreen mode

Empower your Kubernetes journey with insights into taints, tolerations, efficient logging, and real-time monitoring.

Happy Kuberneting!

💖 💪 🙅 🚩
mesrar
Mesrar

Posted on February 1, 2024

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related