Files
fission-src/charts
Ta-Ching ChenandGitHub 29aabaabda Optimize function latency when cache expired/invalid under high concurrency (#856)
* Optimize router response time by adding update lock

In 0.9.2, the router sends multiple GetServiceForFunction requests to executor
to get the service URL. However, the response time of executor will increase
under high-concurrency situation due to too many requests are waiting for
processing.

To solve the problem, an update lock was added to the router. All of goroutines belongs
to the same function need to grab the update lock before sending the request.
Only the first goroutine which gets the update lock is allowed to send request.
In this way, we reduce the burden of executor and lower the failure rate.
2018-10-27 23:35:00 +08:00
..
2018-10-01 18:03:31 +05:30

Fission

Fission is a framework for serverless functions on Kubernetes.

Prerequisites

  • Kubernetes 1.8 or later

Helm charts

The following table lists two helm charts for Fission.

Parameter Description
fission-core FaaS essentials, and triggers for HTTP, Timers and Kubernetes Watches
fission-all Log aggregation with fluentd and InfluxDB; NATS for message queue triggers; Fission-UI

Installing the chart

To install the chart with the release name my-release,

$ helm install --name my-release fission-all

Uninstalling the chart

To uninstall/delete chart,

$ helm delete my-release

Configuration

The following table lists the configurable parameters of the Fission chart and their default values.

Parameter Description Default
serviceType Type of service to use LoadBalancer
image Fission image fission/fission-bundle
imageTag Fission image tag alpha20170124
fetcherImage Fission fetcher image fission/fetcher
fetcherImageTag Fission fetcher image tag latest
controllerPort Fission Controller Service Port 31313
routerPort Fission Router Service Port 31314
functionNamespace Namespace for Fission functions fission-function
builderNamespace Namespace for Fission environment builders fission-builder
  • Extra configuration for fission-all
Parameter Description Default
logger.influxdbAdmin Log database admin username admin
logger.fluentdImage Logger fluentd image fission/fluentd
fissionUiImage Fission ui image fission/fission-ui:0.1.0
nats.enabled Nats streaming enabled true
nats.authToken Nats streaming auth token defaultFissionAuthToken(required if nats.enabled is true)
nats.clusterID Nats streaming clusterID fissionMQTrigger(required if nats.enabled is true)
azureStorageQueue.enabled * Azure storage account name false
azureStorageQueue.accountName Azure storage account name None (required if azureStorageQueue.enabled is true)
azureStorageQueue.key Azure storage access key None (required if azureStorageQueue.enabled is true)
kafka.enabled * Kafka trigger enabled false
kafka.brokers Kafka brokers uri broker.kafka:9092 (required if kafka.enabled is true)
    • Please note that deploying of Azure Storage Queue or Kafka is not done by Fission chart and you will have to explicitly deploy them.

Specify each parameter using the --set key=value[,key=value] argument to helm install. For example,

$ helm install --name my-release --set image=custom/fission-bundle,imageTag=v1 fission-all

If you're using minikube, set serviceType to NodePort:

$ helm install --name my-release --set serviceType=NodePort fission-all

You can also set parameters with a yaml file (see values.yaml for what it should look like):

$ helm install --name my-release -f values.yaml fission-all