#1130·kubeless

Unable to use Kubeless triggers with Kubernetes 1.18

Author: kaiveanCreated Apr 25, 2020Updated Jul 11, 2021

**BUG REPORT **:

What happened:

create a function

kubeless function deploy hello --runtime nodejs12   --env REQ_MB_LIMIT=50     --handler main.hello     --from-file main.js

call and get a right response

kubeless function call hello --data 'Hello world111!'

create a http-trigger . But it can't create a ingress service
kubeless trigger http create hello-http --function-name hello

View logs By kubectl logs kubeless-controller-manager-54cc78b665-ksqkz -n kubeless -c http-trigger-controller the following log from the http-trigger-controller container.

time="2020-04-25T08:56:18Z" level=info msg="Running Kubeless HTTP trigger controller version: v1.0.1"
time="2020-04-25T08:56:18Z" level=info msg="Starting HTTP Trigger controller" controller=http-trigger-controller
time="2020-04-25T08:56:18Z" level=info msg="HTTP Trigger controller caches are synced and ready" controller=http-trigger-controller
time="2020-04-25T08:56:18Z" level=info msg="HTTP Trigger controller synced and ready" controller=http-trigger-controller
time="2020-04-25T10:49:23Z" level=info msg="Successfully processed update to function object hello Namespace: default" controller=http-trigger-controller
time="2020-04-25T10:49:23Z" level=info msg="Successfully processed update to function object hello Namespace: default" controller=http-trigger-controller
time="2020-04-25T10:50:26Z" level=info msg="Processing update to HTTPTrigger: default/hello-http" controller=http-trigger-controller
time="2020-04-25T10:50:26Z" level=info msg="Processing update to HTTPTrigger: default/hello-http" controller=http-trigger-controller
time="2020-04-25T10:50:26Z" level=info msg="Adding ingress resource for http trigger Obj: default/hello-http " controller=http-trigger-controller
time="2020-04-25T10:50:26Z" level=error msg="Failed to create ingress rule hello-http corresponding to http trigger Obj: default/hello-http due to: Unable to find the function internal service: &Service{ObjectMeta:k8s_io_apimachinery_pkg_apis_meta_v1.ObjectMeta{Name:hello,GenerateName:,Namespace:default,SelfLink:/api/v1/namespaces/default/services/hello,UID:7dbdbcc0-69eb-4146-be0e-f6044fdbf764,ResourceVersion:43169,Generation:0,CreationTimestamp:2020-04-25 10:49:23 +0000 UTC,DeletionTimestamp:<nil>,DeletionGracePeriodSeconds:nil,Labels:map[string]string{created-by: kubeless,function: hello,},Annotations:map[string]string{},OwnerReferences:[{kubeless.io/v1beta1 Function hello f752134f-9f6b-44b6-9b0f-6ed7a638522f <nil> <nil>}],Finalizers:[],ClusterName:,Initializers:nil,},Spec:ServiceSpec{Ports:[],Selector:map[string]string{},ClusterIP:,Type:,ExternalIPs:[],SessionAffinity:,LoadBalancerIP:,LoadBalancerSourceRanges:[],ExternalName:,ExternalTrafficPolicy:,HealthCheckNodePort:0,PublishNotReadyAddresses:false,SessionAffinityConfig:nil,},Status:ServiceStatus{LoadBalancer:LoadBalancerStatus{Ingress:[],},},}: " controller=http-trigger-controller
time="2020-04-25T10:50:26Z" level=info msg="Processed update to HTTPTrigger: default/hello-http" controller=http-trigger-controller

What you expected to happen:

create a ingress service and be accessible by ingress

How to reproduce it (as minimally and precisely as possible):

Anything else we need to know?:

Environment:

  • Kubernetes version (use kubectl version):
Client Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.0", GitCommit:"9e991415386e4cf155a24b1da15becaa390438d8", GitTreeState:"clean", BuildDate:"2020-03-25T14:58:59Z", GoVersion:"go1.13.8", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.0", GitCommit:"9e991415386e4cf155a24b1da15becaa390438d8", GitTreeState:"clean", BuildDate:"2020-03-25T14:50:46Z", GoVersion:"go1.13.8", Compiler:"gc", Platform:"linux/amd64"}
  • Kubeless version (use kubeless version):
Kubeless version: v1.0.6-dirty
  • Cloud provider or physical cluster:

aliyun centos 7.5 . ECS server