searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

浅谈k8s的Event

2024-09-11 09:53:31
16
0

1.Event概述

在日常开发中,查询pod的启动或者运行出现问题时,除了日志,Event也是一个关键排查问题手段。以下为官网对Event的定义Event 是集群中某个事件的报告。它一般表示系统的某些状态变化。 Event 的保留时间有限,触发器和消息可能会随着时间的推移而演变。 事件消费者不应假定给定原因的事件的时间所反映的是一致的下层触发因素,或具有该原因的事件的持续存在。 Events 应被视为通知性质的、尽最大努力而提供的补充数据。

2. Event字段定义

Kubernetes 事件对象包含多个字段,以下是一些关键字段及其含义:

Type​: 事件的类型,如 Normal、Warning 等。
Reason​: 事件的原因,简短的描述,例如 Killing 表示 Pod 被终止。
Message: 事件的详细描述,提供更多上下文信息。
FirstTimestamp​: 事件首次发生的时间。
LastTimestamp: 事件最后一次发生的时间。
Count: 事件的发生次数,特别是对于重复发生的事件。

3. 查询事件的命令

以下介绍一些简单的命令查询命令

# 查询某个命令空间下pod事件
kubectl get event -n ns-145 --field-selector involvedObject.kind=Pod
LAST SEEN   TYPE      REASON      OBJECT                      MESSAGE
2m4s        Warning   Unhealthy   pod/xxx-xuniren-b58d6e       Readiness probe failed: dial tcp 1xxxxxx: connect: connection refused
# 查询更多的信息可以通过增加 -o wide, 可以查询到事件的source,name以及更多信息

# 这个命令会实时显示事件的变化,适合在需要实时监控事件时使用。
kubectl get events --watch


# 还可以通过查询pod的详细信息查看事件
kubectl describe pod -n namespace

4. 事件的持久化

事件在etcd中的有效时长为1h,如果需要增长有效事件,需要将事件保存在存储中。一个常见的方法是将 Kubernetes 事件导出到持久化的日志系统中,例如 Elasticsearch、Fluentd。另外,还可以使用 Kubernetes 插件,例如kube-eventer和kubernetes-event-exporter。

0条评论
作者已关闭评论
hrn
4文章数
0粉丝数
hrn
4 文章 | 0 粉丝
hrn
4文章数
0粉丝数
hrn
4 文章 | 0 粉丝
原创

浅谈k8s的Event

2024-09-11 09:53:31
16
0

1.Event概述

在日常开发中,查询pod的启动或者运行出现问题时,除了日志,Event也是一个关键排查问题手段。以下为官网对Event的定义Event 是集群中某个事件的报告。它一般表示系统的某些状态变化。 Event 的保留时间有限,触发器和消息可能会随着时间的推移而演变。 事件消费者不应假定给定原因的事件的时间所反映的是一致的下层触发因素,或具有该原因的事件的持续存在。 Events 应被视为通知性质的、尽最大努力而提供的补充数据。

2. Event字段定义

Kubernetes 事件对象包含多个字段,以下是一些关键字段及其含义:

Type​: 事件的类型,如 Normal、Warning 等。
Reason​: 事件的原因,简短的描述,例如 Killing 表示 Pod 被终止。
Message: 事件的详细描述,提供更多上下文信息。
FirstTimestamp​: 事件首次发生的时间。
LastTimestamp: 事件最后一次发生的时间。
Count: 事件的发生次数,特别是对于重复发生的事件。

3. 查询事件的命令

以下介绍一些简单的命令查询命令

# 查询某个命令空间下pod事件
kubectl get event -n ns-145 --field-selector involvedObject.kind=Pod
LAST SEEN   TYPE      REASON      OBJECT                      MESSAGE
2m4s        Warning   Unhealthy   pod/xxx-xuniren-b58d6e       Readiness probe failed: dial tcp 1xxxxxx: connect: connection refused
# 查询更多的信息可以通过增加 -o wide, 可以查询到事件的source,name以及更多信息

# 这个命令会实时显示事件的变化,适合在需要实时监控事件时使用。
kubectl get events --watch


# 还可以通过查询pod的详细信息查看事件
kubectl describe pod -n namespace

4. 事件的持久化

事件在etcd中的有效时长为1h,如果需要增长有效事件,需要将事件保存在存储中。一个常见的方法是将 Kubernetes 事件导出到持久化的日志系统中,例如 Elasticsearch、Fluentd。另外,还可以使用 Kubernetes 插件,例如kube-eventer和kubernetes-event-exporter。

文章来自个人专栏
hrn-dev
4 文章 | 1 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0