Knative Eventing 中如何排查Event事件处理异常

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 在 Knative Eventing 如果事件处理过程出现异常,如何进行排查?本文通过一个实际中遇到的事件处理异常 issue 的角度, 介绍了事件排查处理方式。

在Knative Eventing中如果遇到事件未处理的异常情况,如何进行排查?

首先需要明确当前版本的事件处理模型

社区给出的0.3版本事件处理模型
image

0.5版本事件处理模型
image

参照事件处理模型依次从上游到下游进行排查处理

这里以0.5事件处理模型下,部署Kubernetes Event Source example 为例:

1) 查看部署事件源

# kubectl get KubernetesEventSource testevents -o yaml

2) 查看 Broker

kubectl get broker default -o yaml

3) 查看 Ingress

// Ingress service
# kubectl get svc default-broker -o yaml
// Ingress deployment
# kubectl get deployments default-broker-ingress -o yaml

4) 查看 Channel

// 查看Channel资源
# kubectl get channel default-broker-8ml79 -o yaml
// 查看Channel 分发日志信息
# kubectl -n knative-eventing logs --tail=500 in-memory-channel-dispatcher-5d4c7f6cfb-xj7lg dispatcher

image

5) 查看 Subscription

# kubectl get subscription default-testevents-trigger-thdv4 -o yaml

6) 查看 Filter

# kubectl logs --tail=500 default-broker-filter-65656d665f-zflfz filter

image

此处我们可以发现有异常错误信息
经排查是由于CoreDNS不兼容导致的, 社区已经提出issue, 当前部署环境使用的是1.1.3, 升级到1.2.6即可解决这个问题。

通过上面这个例子我们可以大致了解event中处理事件的流程。当然如何没有发现问题,我们可以继续向下游继续排查。我们可以查看部署的服务是否Ok
7) 最后测试服务是否正常

// 获取istio外部访问地址
# kubectl -n istio-system get svc istio-ingressgateway
// 执行curl 访问进行测试服务是否正常
# curl -H "Host: event-display.default.example.com" http://172.19.xx.xx

其它

针对 Eventing 中事件处理过程是否能提供事件追踪机制,以方便问题排查, 社区计划在 v0.6.0 版本中添加 Tracing support, 有兴趣的可以关注一下

参考

https://github.com/knative/docs/tree/master/docs/eventing/debugging

相关实践学习
Docker镜像管理快速入门
本教程将介绍如何使用Docker构建镜像,并通过阿里云镜像服务分发到ECS服务器,运行该镜像。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
4天前
|
XML 中间件 数据库
基于jeecgboot的flowable流程支持定时捕获事件
基于jeecgboot的flowable流程支持定时捕获事件
14 0
|
4天前
|
Kubernetes jenkins 持续交付
容器服务ACK常见问题之HPA触发记录查看失败如何解决
容器服务ACK(阿里云容器服务 Kubernetes 版)是阿里云提供的一种托管式Kubernetes服务,帮助用户轻松使用Kubernetes进行应用部署、管理和扩展。本汇总收集了容器服务ACK使用中的常见问题及答案,包括集群管理、应用部署、服务访问、网络配置、存储使用、安全保障等方面,旨在帮助用户快速解决使用过程中遇到的难题,提升容器管理和运维效率。
|
7月前
|
Kubernetes 监控 Python
阿里云kubernetes(ACK)pod异常问题分析辅助工具-pod生命周期及事件可观测一览图
阿里云kubernetes(ACK)pod异常问题分析辅助工具-pod生命周期及事件可观测一览图
|
Kubernetes Cloud Native 网络协议
Knative 事件驱动实践:通过 EventBridge 触发事件
Knative是一款基于Kubernetes的?Serverless?框架。其目标是制定云原生、跨平台的?Serverless?容器编排标准。Knative通过整合容器构建(或者函数)、工作负载管理(动态扩缩)以及事件驱动这三者来实现的这一Serverless标准。那么如何给?Knative?提供生产级别的事件驱动能力?这里我们可以通过事件总线?EventBridge?来实现.事件总线EventB
209 0
Knative 事件驱动实践:通过 EventBridge 触发事件
事件驱动(Event driven)——异步调用策略的可定制性
事件驱动(Event driven)——异步调用策略的可定制性自制脑图
59 0
事件驱动(Event driven)——异步调用策略的可定制性
|
Kubernetes 监控 Perl
线上 leaderelection lost 导致 Kubernetes 组件异常退出的问题排查
记录了一次线上 controller-manager、kube-scheduler 频繁异常重启,报错 leaderelection lost 的问题排查
2232 0
线上 leaderelection lost 导致 Kubernetes 组件异常退出的问题排查
|
JSON 运维 Kubernetes
如何通过Kubernetes事件来报告错误
在Kubernetes中,有Event机制,可以做到把一些事件,比如警告、错误等信息记录下来
如何通过Kubernetes事件来报告错误
|
存储 弹性计算 运维
自建Kubernetes集群如何接入事件通知告警
报警配置功能提供容器场景报警能力的统一管理,包括容器服务异常事件报警,以及容器场景指标报警,支持在创建集群时默认开启报警功能。容器服务的报警规则支持通过集群内部署CRD的方式配置管理。本文介绍如何接入报警配置功能及授予报警功能资源的访问权限。
1053 0
自建Kubernetes集群如何接入事件通知告警
|
消息中间件 弹性计算 Kubernetes
基于Knative的消息流事件处理最佳实践
本文中描述了事件通过阿里云消息队列Kafka实时推送到服务端进行数据和业务处理,并基于Knative的弹性来实现满足资源高峰需求,做到真正的按需使用,实时弹性,整个过程完全自动化,极大的减少了业务开发人员在基础设施上的心智负担。
基于Knative的消息流事件处理最佳实践
|
域名解析 存储 Kubernetes
kubernetes Event 源码解析
众所周知,event在Kubernetes中起着举足轻重的作用,本文将为大家深入探讨一下Kubernetes中的事件机制。
676 0
kubernetes Event 源码解析


http://www.vxiaotou.com