kubernetes - 无法使用无Kube Kafka触发器触发无Kubeless功能

标签 kubernetes apache-kafka kubeless

我试图触发Kubeless函数(以Java方法编写),但似乎无法正常工作。我已经尝试了所有可以尝试尝试的方法,但是我的想法已经用尽。下面是Java方法(目前基本上是回显服务)。

package io.kubeless;

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

public class MyHandler {
    public String handle(Event event, Context context) {
        return event.Data;
    }
}
使用以下方法部署了该方法:
$ kubeless function deploy my-handler --runtime java1.8 --handler MyHandler.handle --from-file src/main/java/io/kubeless/MyHandler.java
我已经通过运行以下命令验证了它的工作原理:
$ 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并使用以下内容向其发布了一条消息。
$ 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触发的条目。我已验证触发器存在:
$ kubeless trigger kafka ls
NAME    NAMESPACE   TOPIC       FUNCTION SELECTOR
test    default     test-topic  function=my-handler
据我所知,Kafka似乎正在运行(我也检查了Kafka日志,无济于事):
$ 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
为什么发布不触发功能?任何建议表示赞赏,我在此先感谢您。

最佳答案

我对此不知所措,而Kubeless kafka-trigger存在问题。本质上,当 Controller 拾取消息并尝试触发功能时,我会收到以下日志:

time="2020-07-14T22:00:15Z" level=error msg="Unable to elaborate request: Unable to find the service for function my-handler"
这意味着 Controller 无法找到my-handler服务来触发该功能。如果看到code,则会看到它是对K8s API服务器的调用。因此,我的猜测是在较新的K8s版本上API版本不匹配。我的服务器是v1.18.2。我创建了this issue进行跟踪。

关于kubernetes - 无法使用无Kube Kafka触发器触发无Kubeless功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62902735/

相关文章:

postgresql - IBM Bluemix 容器上的 Kubernetes 上的 Postgres

amazon-web-services - 简单地使用 kubeconfig 上下文

java - 如何在 Spring Kafka 中接收来自 KSQL 的流式响应?

apache-kafka - Zookeeper-Kafka 和一致性哈希

amazon-web-services - AWS EKS : Assign multiple Service Accounts to Deployment\Pod

node.js - 使用无服务器框架将 kubeless 功能部署到 kubernetes 集群时出错

使用 GraphQL 的 AKS 上的 Websockets 未连接

kubernetes - ".network.genesisProfile"的未知命令 "yq"

apache-kafka - 如何配置 kafka 集群在停止和重新启动代理后重新选举分区领导所需的时间?