k -n taskon logs taskon-backend-golang-withlog-667dbd4468-rnbfb -p
查看上一个pod的日志,如果是异常结束的pod,很可能会在最后看到panic
其中 -p 是 previous
本文是对 K8S工程师必备问题排查指南学习与记录
Pod相关问题及排查
kubectl describe pod [pod_name] -n [namespace_name]
节点的taints和toleration是什么?请详细介绍
在Kubernetes中,节点的taints(容忍标记)和tolerations(容忍设置)是一种机制,用于控制Pod是否可以被调度到具有特定特征的节点上。它们为集群管理员提供了一种灵活的方式来限制Pod的调度,并确保Pod仅在满足特定条件的节点上运行。
Taints(容忍标记):
Taint是一种在节点上设置的标记,用于指示节点具有某些限制或特性。节点的taint可以包含三个主要属性:
- Key(键):用于标识taint的唯一键名。
- Value(值):用于对taint进行分类或进一步细分。
- Effect(效果):定义了taint的效果,有三种选择:
- NoSchedule(不调度):阻止任何新的Pod被调度到带有该taint的节点上。
- PreferNoSchedule(优先不调度):尽量避免在带有该taint的节点上调度新的Pod,但并不是强制的。
- NoExecute(不执行):从节点上驱逐已经存在的不符合taint的Pod。
通过设置节点的taint,可以阻止一些Pod调度到特定的节点上,或者通过优先级设置来减少Pod在特定节点上的调度。
Tolerations(容忍设置):
Toleration是应用于Pod的属性,用于指示Pod是否可以容忍节点上的特定taint。通过设置tolerations,可以使Pod在调度时选择那些带有匹配taint的节点。
每个Pod可以设置多个toleration规则,每个规则包含以下属性:
- Key(键):指定匹配的taint的键名。
- Value(值):指定匹配的taint的值。如果未设置值,则匹配任何值。
- Effect(效果):指定容忍规则的效果,有三种选择:
- NoSchedule(不调度):表示Pod可以容忍NoSchedule效果的taint。
- PreferNoSchedule(优先不调度):表示Pod可以容忍PreferNoSchedule效果的taint。
- NoExecute(不执行):表示Pod可以容忍NoExecute效果的taint。
当Pod具有与节点上taint匹配的toleration规则时,调度器将允许将Pod调度到带有匹配taint的节点上。
总结起来,taints和tolerations是一对机制,用于在Kubernetes集群中控制Pod的调度。taints定义了节点的特定特征,而tolerations允许Pod容忍节点上的特定taint。这使得管理员可以更精确地控制Pod的调度位置,以满足不同的需求和策略。
Node相关问题及排查
集群层面问题及排查
原文链接: https://dashen.tech/2023/06/20/K8S工程师必备问题排查指南/
版权声明: 转载请注明出处.