类型为的所有可能的Kubernetes事件



我想对某些Kubernetes/Openshift事件做出反应,因此,我需要一个所有可能的(Kubernetes(事件及其类型的列表(正常与警告(。

Openshift事件列表(但没有类型信息(

事件数据示例:

{
"metadata": {
...
},
"involvedObject": {
...
},
"reason": "Created",
"firstTimestamp": "...",
"lastTimestamp": "...",
"count": 1,
"type": "Normal",
"eventTime": null,
}

事件的类型和原因之间有什么关系吗?

如何创建/找到这样一个全面的列表(事件原因+类型+涉及对象类型(?

将此答案作为社区wiki发布,以便为问题提供比实际解决方案更多的基线。请随意扩展。

我还没有找到类似于问题中使用的OpenShift文档的Kubernetes等价物:

  • Docs.openshift.com:容器平台:3.11:开发指南:事件

从Kubernetes的角度来看,您可以查看组件的源代码,看看它们可以发送什么事件。

Kubelet示例:

  • Github.com:Kubernetes:Kubelets:Events:event.go

const (
FailedToKillPod                = "FailedKillPod"
FailedToCreatePodContainer     = "FailedCreatePodContainer"
FailedToMakePodDataDirectories = "Failed"
NetworkNotReady                = "NetworkNotReady"
)
const (
CreatedContainer        = "Created"
StartedContainer        = "Started"
FailedToCreateContainer = "Failed"
FailedToStartContainer  = "Failed"
KillingContainer        = "Killing"
PreemptContainer        = "Preempting"
BackOffStartContainer   = "BackOff"
ExceededGracePeriod     = "ExceededGracePeriod"
)

事件的类型和原因之间的关系可以描述为:

  • Github.com:Kubernetes:Pkg:Apis:Core:types.go:Line 4670
// Valid values for event types (new types could be added in future)
const (
// Information only and will not cause any problems
EventTypeNormal string = "Normal"
// These events are to warn that something might go wrong
EventTypeWarning string = "Warning"
)

正如您在下面所看到的,Normal类型事件用于未导致任何问题的信息。在出现问题(尝试下载不存在的映像:fake(时创建了Warning类型事件:

11s         Warning   Failed              pod/fake-f68cd66bc-hgxxv      Error: ErrImagePull
11s         Normal    BackOff             pod/fake-f68cd66bc-hgxxv      Back-off pulling image "fake"
11s         Warning   Failed              pod/fake-f68cd66bc-hgxxv      Error: ImagePullBackOff
14s         Normal    SuccessfulCreate    replicaset/fake-f68cd66bc     Created pod: fake-f68cd66bc-hgxxv
14s         Normal    ScalingReplicaSet   deployment/fake               Scaled up replica set fake-f68cd66bc to 1
50s         Normal    Scheduled           pod/nginx-6799fc88d8-ks76h    Successfully assigned default/nginx-6799fc88d8-ks76h to docker-desktop

要获得集群中发生的事件的列表,您可以尝试使用Kubernetes集群中的专用应用程序来监视事件,并将其存储在您选择的存储选项中。


其他资源:

  • Cncf.io:博客:2020-12-10:云原生可观察性的顶级Kubernetes API:第1部分:Kubernets度量服务容器API 3
  • Kubernetes.io:Docs:Reference:生成:Kubernetes api:v1.20:事件v1核心

最新更新