Ошибка вызова функции 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. Как указать переменные среды, необходимые для этой функции? Спасибо

Обновлять Запуск функции kubeless 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, там много журналов ошибок, но я не вижу ничего особенного для этой функции.

Каков вывод kubeless function ls (в отличие от kubectl get function)?

mdaniel 22.08.2018 02:32
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
1
1
322
1

Ответы 1

When I try to call the function as below,

kubeless function call smk

I get

FATA[0000] Unable to find the service for smk

Running kubeless function ls --namespace=smktest

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

kubeless function call --namespace=smktest smk 

How do I specify Environment variables needed by this function ? Thank you

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

  • Предоставьте шаблон Deployment, который является function controller похоже объединяется, но, насколько я знаю, container: image: требуется в Deployment, поэтому вам нужно будет указать его, чтобы получить доступ к его декларации env:
  • В противном случае «обманите» и используйте токен Pods ServiceAccount для запросить ресурсы кластера вручную, который может включать в себя ConfigMap, Secret, или даже разрешение вашего собственного манифеста kubeless.io/function и извлечение чего-либо из его аннотаций или аналогичных

Другие вопросы по теме