本文介绍容器服务作为事件源发布到事件总线EventBridge的事件类型。

注意事项

容器服务事件来自以下两部分:

  • ARMS
    • 您需要在K8s集群中安装ARMS(ack-arms-prometheus)。更多信息,请参见开启阿里云Prometheus监控
    • 这类事件没有分类,所有事件统一为cs:k8s:K8s-event-via-arms。
  • NPD
    • 您需要在K8s集群安装NPD(ack-node-problem-detector),并配置Sink事件总线EventBridge。具体操作,请参见安装NPD
    • 这类事件按资源类型分类,例如PodRelatedEvent表示所有Pod相关的事件。

事件类型

容器服务支持发布到事件总线EventBridge的事件类型如下所示。

事件类型type参数值
ConfigMap相关的K8s事件cs:k8s:ConfigMapRelatedEvent
CronJob相关的K8s事件cs:k8s:CronJobRelatedEvent
DaemonSet相关的K8s事件cs:k8s:DaemonSetRelatedEvent
Deployment相关的K8s事件cs:k8s:DeploymentRelatedEvent
Ingress相关的K8s事件cs:k8s:IngressRelatedEvent
Job相关的K8s事件cs:k8s:JobRelatedEvent
通过ARMS采集的K8s事件cs:k8s:k8s-event-via-arms
Namespace相关的K8s事件cs:k8s:NamespaceRelatedEvent
Node相关的K8s事件cs:k8s:NodeRelatedEvent
PersistentVolumeClaim相关的K8s事件cs:k8s:PersistentVolumeClaimRelatedEvent
PersistentVolume相关的K8s事件cs:k8s:PersistentVolumeRelatedEvent
Pod相关的K8s事件cs:k8s:PodRelatedEvent
ReplicaSet相关的K8s事件cs:k8s:ReplicaSetRelatedEvent
ReplicationController相关的K8s事件cs:k8s:ReplicationControllerRelatedEvent
StatefulSet相关的K8s事件cs:k8s:StatefulSetRelatedEvent
阿里云平台对资源执行的操作事件cs:ActionTrail:AliyunServiceEvent
API调用cs:ActionTrail:ApiCall
控制台的操作事件cs:ActionTrail:ConsoleOperation
资源变更投递cs:Config:ConfigurationItemChangeNotification
资源评估不合规通知cs:Config:NonCompliantNotification

CloudEvents规范中定义的参数解释,请参见事件概述

重要 上述事件类型列表只包含高频事件类型,并没有列举所有的K8s事件类型。您可以通过自定义规则来匹配上述列表中没有的事件,也可以通过过滤所有的事件类型来获得所有的事件类型。

容器服务事件type命名规范为cs:k8s:{资源类型名称}RelatedEvent,例如Pod相关的K8s事件的type参数值为cs:k8s:PodRelatedEvent。

通过ARMS采集的K8s事件

通过应用实时监控服务ARMS采集的K8s事件,事件总线EventBridge接收到的示例事件如下所示。

{
    "id":"4cf9678d-dfec-4d6e-9fd1-a9a2d205****",
    "source":"acs.cs",
    "time":"2020-11-19T21:04:41+08:00",
    "data":{
        "reason":"FailedCreatePodSandBox",
        "involvedObject":{
            "uid":"e0a7e4b6-5331-487f-bb0a-e69647a9****",
            "apiVersion":"v1",
            "kind":"Pod",
            "resourceVersion":"40326010",
            "namespace":"kube-system",
            "name":"alicloud-application-controller-798784bf49-v88hc"
        },
        "count":1,
        "source":{
            "component":"kubelet",
            "host":"cn-hangzhou.192.168.XX.XX"
        },
        "message":"Failed to create pod sandbox",
        "type":"Warning",
        "firstTimestamp":"2020-11-19T21:04:41Z",
        "lastTimestamp":"2020-11-19T21:04:41Z"
    },
    "specversion":"1.0",
    "datacontenttype":"application/json",
    "type":"cs:k8s:K8s-event-via-arms",
    "aliyunaccountid":"123456789098****",
    "aliyuneventbusname":"default",
    "aliyunpublishtime":"2020-11-19T21:04:42Z",
    "aliyunregionid":"cn-hangzhou",
    "aliyunpublishaddr":"172.25.XX.XX"
}

data字段包含的参数解释如下表所示。

参数类型示例值描述
reasonStringFailedCreatePodSandBoxK8s上报事件的原因。
involvedObjectStruct上报事件涉及的对象。
uidStringe0a7e4b6-5331-487f-bb0a-e69647a9****资源的唯一ID。
apiVersionStringv1API版本。
kindStringPod资源类型。
resourceVersionString40326010资源版本。
namespaceStringkube-system资源所在的命名空间。
nameStringalicloud-application-controller-798784bf49-v88hc资源名称。
countInteger1事件发生的总次数。
sourceStruct发现这个事件的资源。
componentStringkubeletsource资源类型。
hostStringcn-hangzhou.192.168.XX.XXsource资源的唯一标识。
messageStringFailed to create pod sandbox事件的摘要。
typeStringWarning事件等级。
取值说明如下:
  • Warning
  • Normal
firstTimestampTimestamp2020-11-19T21:04:41Z事件第一次发生的时间。
lastTimestampTimestamp2020-11-19T21:04:41Z事件最近一次发生的时间。

Pod相关的K8s事件

Pod相关的K8s事件,事件总线EventBridge接收到的示例事件如下所示。

{
    "datacontenttype":"application/json",
    "aliyunaccountid":"123456789098****",
    "data":{
        "reason":"BackOff",
        "metadata":{
            "uid":"0a2d6413-ea4a-414b-a813-aa9b6a17****",
            "resourceVersion":"1163710",
            "creationTimestamp":"2021-01-08T07:11:52Z",
            "name":"oom-test",
            "namespace":"default"
        },
        "involvedObject":{
            "uid":"3438fea9-1e54-4f71-aec5-6e874136****",
            "apiVersion":"v1",
            "kind":"Pod",
            "resourceVersion":"425592514",
            "name":"oom-test-85b",
            "namespace":"default"
        },
        "reportingInstance":"",
        "count":197,
        "source":{
            "component":"kubelet",
            "host":"cn-hangzhou.172.16.XX.XX"
        },
        "message":"Back-off restarting failed container",
        "type":"Warning",
        "reportingComponent":"",
        "firstTimestamp":"2021-01-08T07:11:52Z",
        "lastTimestamp":"2021-01-08T07:56:41Z"
    },
    "subject":"acs:cs:cn-hangzhou:123456789098****:abc/apis/v1/namespaces/default/pods/oom-test-85b",
    "source":"acs.cs",
    "type":"cs:k8s:PodRelatedEvent",
    "aliyunpublishtime":"2021-01-18T09:43:58.785Z",
    "specversion":"1.0",
    "aliyuneventbusname":"default",
    "id":"af182bae-16b8-4327-bb3a-a972de72****",
    "time":"2021-01-08T15:57:00+08:00",
    "aliyunregionid":"cn-hangzhou",
    "aliyunpublishaddr":"172.25.XX.XX"
}

data字段包含的参数解释如下表所示。

参数类型示例值描述
reasonStringBackOffPod相关的K8s事件产生的原因。
metadataStruct事件的元数据。
uidString0a2d6413-ea4a-414b-a813-aa9b6a17****每个事件在K8s集群中的唯一ID。
resourceVersionInteger1163710事件的版本。每次事件修改后会递增。
creationTimestampTimestamp2021-01-08T07:11:52Z事件第一次创建的时间戳。
nameStringoom-test事件的名称。
namespaceStringdefault事件归属的命名空间。
involvedObjectStruct事件涉及的对象。
uidString3438fea9-1e54-4f71-aec5-6e874136****资源的唯一ID。
apiVersionStringv1API版本。
kindStringPod资源类型。
resourceVersionString40326010资源版本。
namespaceStringdefault资源所在的命名空间。
nameStringoom-test-85b6c9494b-hpllq资源名称。
reportingInstanceString发起事件的实例。
countInteger197事件发生的总次数。
sourceStruct发现这个事件的资源。
componentStringkubeletsource资源类型。
hostStringcn-hangzhou.172.16.XX.XXsource资源的唯一标识。
messageStringBack-off restarting failed container事件的摘要。
typeStringWarning事件等级。
取值说明如下:
  • Warning
  • Normal
reportingComponentString发起事件的组件。
firstTimestampTimestamp2021-01-08T07:11:52Z事件第一次发生的时间。
lastTimestampTimestamp2021-01-08T07:56:41Z事件最近一次发生的时间。

安装NPD

  1. 登录容器服务管理控制台
  2. 在左侧导航栏,选择市场 > 应用市场
  3. 应用市场页面,单击应用目录页签,在搜索栏文本框中,输入应用名称ack-node-problem-detector,然后单击search图标。
  4. 单击ack-node-problem-detector卡片,然后单击一键部署
  5. 创建面板,完成以下配置,然后单击确定
    • 基本信息配置向导,选择已创建的集群命名空间,然后单击下一步
    • 参数配置配置向导,在参数代码输入框中修改参数Sinkeventbridgeenabled值为true