首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kubeless Kafka触发器无法触发Kubeless函数

Kubeless Kafka触发器无法触发Kubeless函数
EN

Stack Overflow用户
提问于 2020-07-15 03:34:31
回答 1查看 215关注 0票数 1

我试图触发Kubeless函数(编写为Java方法),但它似乎不起作用。我试过了所有我能想到的方法,但是我已经没有办法了。下面是Java方法(目前,它基本上是一个echo服务)。

代码语言:javascript
复制
package io.kubeless;

import io.kubeless.Context;
import io.kubeless.Event;

public class MyHandler {
    public String handle(Event event, Context context) {
        return event.Data;
    }
}

该方法是使用以下方法部署的:

代码语言:javascript
复制
$ kubeless function deploy my-handler --runtime java1.8 --handler MyHandler.handle --from-file src/main/java/io/kubeless/MyHandler.java

我已经通过运行以下命令验证了它是否正常工作:

代码语言:javascript
复制
$ kubeless function call my-handler --data "It works"
$ kubectl logs my-handler-6f67d567c5-r8cdb
    0 [pool-1-thread-38] INFO io.kubeless.Handler  - Response: It works

然后,我使用以下代码created a Kafka trigger并向其发布了一条消息。

代码语言:javascript
复制
$ kubeless trigger kafka create test --function-selector created-by=kubeless,function=my-handler --trigger-topic test-topic
$ kubeless topic publish --topic test-topic --data "Hello from Kafka"
$ kubectl logs my-handler-6f67d567c5-r8cdb
    0 [pool-1-thread-38] INFO io.kubeless.Handler  - Response: It works

如您所见,唯一的日志条目是来自初始调用的条目,该条目不是由Kafka pub/sub触发的。我已经验证了触发器的存在:

代码语言:javascript
复制
$ kubeless trigger kafka ls
NAME    NAMESPACE   TOPIC       FUNCTION SELECTOR
test    default     test-topic  function=my-handler

据我所知,Kafka似乎正在运行(我也检查了Kafka的日志,但没有用):

代码语言:javascript
复制
$ kubectl get pods --namespace=kubeless
NAME                                          READY   STATUS    RESTARTS   AGE
kafka-0                                       1/1     Running   0          170m
kafka-trigger-controller-f6f7c699f-m6mcd      1/1     Running   0          170m
kubeless-controller-manager-59d484f4d-9wlhq   3/3     Running   10         4d22h
zoo-0                                         1/1     Running   0          170m

为什么发布不会触发函数?我们非常感谢您的任何建议,并提前向您表示感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-15 06:17:28

我对此感到厌烦,Kubeless kafka-trigger有个问题。本质上,当消息被控制器获取并尝试触发函数时,我会得到这个日志:

代码语言:javascript
复制
time="2020-07-14T22:00:15Z" level=error msg="Unable to elaborate request: Unable to find the service for function my-handler"

这意味着控制器找不到触发函数的my-handler服务。如果您看到code,就会看到它是对K8s应用程序接口服务器的调用。因此,我的猜测是在较新的K8s版本上存在API版本不匹配。我的服务器是v1.18.2。我已经创建了要跟踪的this issue

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62902735

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档