Невозможно запустить функцию Kubeless с триггером Kubeless Kafka - PullRequest
1 голос
/ 14 июля 2020

Я пытаюсь запустить функцию 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

Почему публикация не запускает функцию? Любые предложения приветствуются, и я заранее благодарю вас.

1 Ответ

2 голосов
/ 15 июля 2020

Я придумал, что есть проблема с Kubeless kafka-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 для запуска функции. Если вы видите код , вы видите, что это вызов сервера API K8s. Итак, я предполагаю, что в более новых версиях K8s есть несоответствие версии API. Мой сервер v1.18.2. Я создал эту проблему для отслеживания.

...