Функция Kubeless вызывает ошибку

У меня проблемы с вызовом функций с использованием kubeless. Вот спецификация функции

---
apiVersion: kubeless.io/v1beta1
kind: Function
metadata:
  name: smk
  namespace: smktest
spec:
  handler: hello.handler
  runtime: python2.7
  function: |
      import json
      def handler():
              return "hello world"
  deployment:
    spec:
      template:
        spec:
          containers:
             - env:
               - name: FOO
                 value: bar
               name: "smk-deployment"
               resources:
                 limits:
                   cpu: 100m
                   memory: 100Mi
                 requests:
                   cpu: 100m
                   memory: 100Mi

Когда я пытаюсь вызвать функцию, как показано ниже,

kubeless function call smk 

я получил

FATA[0000] Unable to find the service for smk

Вопрос из двух частей

  1. Как мне выставить свою функцию как услугу
  2. Как мне указать переменные окружения, необходимые для этой функции? Спасибо

Обновление Запуск функции без куба ls --namespace=smktest выдает ниже

NAME    NAMESPACE   HANDLER         RUNTIME     DEPENDENCIES    STATUS
smk     smktest     hello.handler   python2.7                   MISSING: Check controller logs

Далее я попробовал kubectl logs -n kubeless -l kubeless=controller есть множество журналов ошибок, но я не вижу ничего конкретного для этой функции

1 ответ

Когда я пытаюсь вызвать функцию, как показано ниже,

kubeless function call smk

я получил

FATA[0000] Unable to find the service for smk

Бег kubeless function ls --namespace=smktest

Тогда, конечно, вам нужно будет включить --namespace=smktest в вашей команде вызова тоже:

kubeless function call --namespace=smktest smk 

Как мне указать переменные окружения, необходимые для этой функции? Спасибо

Насколько я могу судить, кажется, что используются два подхода:

  • Обеспечить Deployment шаблон, который function controller кажется, чтобы слить, но, насколько я знаю, container: image: требуется в Deployment так что вам нужно будет указать один, чтобы получить доступ к его env: декларация
  • В противном случае "обмануть" и использовать Pod s ServiceAccount токен для запроса ресурсов кластера вручную, который может включать ConfigMap, Secret или даже решить свой собственный kubeless.io/function проявлять и извлекать что-то из своих аннотаций или аналогичных
Другие вопросы по тегам