回答问题

我正在尝试触发 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

然后我创建了一个 Kafka 触发器并使用以下内容向它发布了一条消息。

$ 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 发布/订阅触发的日志条目。我已验证触发器存在:

$ 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

为什么发布不触发该功能?任何建议表示赞赏,我提前感谢您。

Answers

我对此感到厌烦,并且 Kubelesskafka-trigger存在问题。本质上,当控制器接收到消息并尝试触发该功能时,我会收到此日志:

time="2020-07-14T22:00:15Z" level=error msg="Unable to elaborate request: Unable to find the service for function my-handler"

这意味着控制器找不到my-handler服务来触发该功能。如果您看到代码,您会看到它是对 K8s API 服务器的调用。所以,我的猜测是较新的 K8s 版本存在 API 版本不匹配。我的服务器是v1.18.2。我已经创建了这个 issue来跟踪。

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐