事件规则用来对K8S中的Event资源进行评估和告警
事件规则结构
事件规则在KubeSphere平台存储在rules.events.kubesphere.io
所定义的资源中,其Spec结构如下:
spec
└──rules
|
| ┌──annotations
| |——condition
0——|——enable (取值true或false来启用或禁用规则,默认false)
| |——labels
| |——name
| └──type (取值alert或notification表示规则的类型)
|
|
1,2...
对于type=notification的非告警规则在当前的KubeSphere版本中未有应用,暂可忽略。
内置事件告警规则更新
这里仅针对用于告警目的的内置事件规则进行操作
KubeSphere内置了一些必要的事件告警规则,对平台各类事件进行告警。各内置事件告警规则的定义请参考后文的内置事件告警规则。
基本规则位于kubesphere-logging-system
项目下的ks-events-cluster-rules-default
资源中,通过以下命令可修改其中的规则:
kubectl -n kubesphere-logging-system edit rules.events.kubesphere.io ks-events-cluster-rules-default
该命令会进入到资源的编辑界面,编辑用法与linux中编辑文件的
vim
命令类似。
请参考前文的事件规则结构,对需要调整的告警规则进行操作,比如规则禁用、更新、删除等,然后保存后(同vim
命令的保存操作)即可自动同步更新至EventsRuler组件(该组件负责加载事件规则、触发事件告警)。
当只针对个别的告警规则进行删除操作时,可以参考使用以下删除单个告警规则的快捷命令:
# 这里将删除ks-events-cluster-rules-default资源中名称为ContainerBackoff、级别为warning的告警规则
# 若要删除其他规则,请调整命令中相应位置处的规则名称和规则级别
kubectl -n kubesphere-logging-system get rules.events.kubesphere.io ks-events-cluster-rules-default -ojson | jq 'delpaths([path(..|select(.type?=="alert" and .name?=="ContainerBackoff" and .labels.severity?=="warning"))])' | kubectl apply -f -
内置事件规则表
规则名称 | 级别 | 说明 |
---|---|---|
ContainerFailed | warning | 容器失败 |
ContainerPreempting | warning | 容器抢占中 |
ContainerBackoff | warning | 容器回退 |
ContainerUnhealthy | warning | 容器状态不良 |
ContainerProbeWarning | warning | 容器探测警告 |
PodKillingExceededGracePeriod | warning | pod终止超时 |
PodKillFailed | warning | pod终止失败 |
PodContainerCreateFailed | warning | pod容器创建失败 |
PodFailed | warning | pod失败 |
PodNetworkNotReady | warning | Pod网络异常 |
ImagePullPolicyError | warning | 镜像拉取策略错误 |
ImageInspectFailed | warning | 镜像检查失败 |
KubeletSetupFailed | warning | kubelet安装失败 |
VolumeAttachFailed | warning | 存储卷装载失败 |
VolumeMountFailed | warning | 存储卷挂载失败 |
VolumeResizeFailed | warning | 存储卷扩缩容失败 |
FileSystemResizeFailed | warning | 文件系统扩缩容失败 |
VolumeMapFailed | warning | 存储卷映射失败 |
VolumeAlreadyMounted | warning | 存储卷已被挂载 |
NodeRebooted | warning | 节点重启 |
ContainerGCFailed | warning | 容器GC失败 |
ImageGCFailed | warning | 镜像GC失败 |
NodeAllocatableEnforcementFailed | warning | 节点可分配资源更新失败 |
SandboxCreateFailed | warning | Sandbox创建失败 |
SandboxStatusFailed | warning | 获取Sandbox状态错误 |
DiskCapacityInvalid | warning | 磁盘容量配置不合法 |
DiskSpaceFreeFailed | warning | 磁盘空间释放失败 |
PodStatusSyncFailed | warning | Pod状态同步失败 |
ConfigurationValidationFailed | warning | 配置验证失败 |
LifecycleHookPostStartFailed | warning | 容器启动后的生命周期钩子运行失败 |
LifecycleHookPreStopFailed | warning | 容器停止前的生命周期钩子运行失败 |
HPASelectorError | warning | HPA选择器错误 |
HPAMetricError | warning | HPA对象指标错误 |
HPAConvertFailed | warning | HPA转换失败 |
HPAGetScaleFailed | warning | HPA规模获取失败 |
HPAComputeReplicasFailed | warning | HPA副本计算失败 |
HPARescaleFailed | warning | HPA规模调整失败 |
NodeSystemOOM | warning | 节点内存溢出 |
VolumeBindingFailed | warning | 存储卷绑定失败 |
VolumeMismatch | warning | 存储卷不匹配 |
VolumeRecycleFailed | warning | 存储卷回收失败 |
VolumeRecyclerPodError | warning | 存储卷回收器错误 |
VolumeDeleteFailed | warning | 存储卷删除失败 |
VolumeProvisionFailed | warning | 存储申请失败 |
VolumeProvisionCleanupFailed | warning | 清理存储失败 |
VolumeExternalExpandingError | warning | 存储外部扩展错误 |
PodScheduleFailed | warning | pod调度失败 |
PodCreateFailed | warning | pod创建失败 |
PodDeleteFailed | warning | pod删除失败 |
ReplicaSetCreateError | warning | 副本集创建错误 |
DeploymentRollbackFailed | warning | 部署回滚失败 |
DeploySelectorAll | warning | deploy选择了所有pod |
DaemonSelectorAll | warning | daemonset选择了所有pod |
DaemonPodFailed | warning | daemonset的pod失败 |
LoadBalancerSyncFailed | warning | 负载据衡器不可用 |
LoadBalancerUnAvailable | warning | 负载据衡器不可用 |
LoadBalancerUpdateFailed | warning | 更新负载据衡器失败 |
LoadBalancerDeleteFailed | warning | 负载据衡器删除失败 |
JobGetFailed | warning | 任务获取失败 |
JobCreateFailed | warning | 任务创建失败 |
JobDeleteFailed | warning | 任务删除失败 |
JobUnexpected | warning | 任务非预期 |
JobScheduleFailed | warning | 任务调度失败 |