Lambda scaling ============== Lambda provides several scaling mechanism. Lambda usage in a specific kubernetes nodes ------------------------------------------- Lambda can be used in a specific kubernetes nodes. It's a mechanism for sharing resources in a cluster. For detail information see `nodes description `_. For support this mechanism lambda provides kubernetes `node selector `_ mechanism. See `pod configuration example `_. To create a lambda with specific nodes, use the `selector` field in the `deploy_parameters` on the `create lambda <./_static/api.html#operation/createLambda>`_ endpoint. Lambda can be recreated with another node by using `put lambda <./_static/api.html#operation/putLambda>`_ endpoint. The `selector` provides several node labels: .. code-block:: json { "archive": ..., "credentials": ..., "parameters": ..., "deploy_parameters": "enable_gpu": ..., "pod_count": ..., "namespace": ..., "selector": { "node-label-name": "node-label-value", "node-label-name-two": "node-label-value-two", ... } } By default `selector` value is empty dictionary. If `selector` isn't defined, the lambda will be created on any node. Every label has constraints: Label key may have two segments an optional prefix and required name, separated by a slash `/`: - the name segment is required and must be 63 characters or less - the name segment must beginning and ending with an alphanumeric character `[a-z0-9A-Z]` - the name segment may contains dashes `-`, underscores `_`, dots `.` - the prefix is optional must be a DNS subdomain: a series of DNS labels separated by dots `.` - the prefix can't be longer than 253 characters and ends with a slash `/` - the prefix can't be `kubernetes.io/` or `k8s.io/`, because these prefixes are reserved for Kubernetes core components Label value constraints: - the value must be 63 characters or less - the value can be empty - if the value isn't empty then must begin and end with an alphanumeric character `[a-z0-9A-Z]` - the value could contain dashes `-`, underscores `_`, dots `.`, and alphanumerics between. For more information about label constraints see `syntax and character set `_. Lambda replication mechanism usage ---------------------------------- Lambda service provides a kubernetes replication mechanism. This mechanism guarantees the availability of a specified number of identical pods. For more details see how `replica set `_ works. It is possible to set replicas count for lambda in `pod_count` parameter in `deploy_parameters`. By default `pod_count` value is 1. See `create lambda <./_static/api.html#operation/createLambda>`_ for more details. Each lambda pod is one replica, see `Kubernetes documentation `_ for more information about deployment replicas. Lambda workers usage -------------------- Lambda provides mechanism to run several lambda process at the same times. It is possible to set the count of lambda processes using the `workers` field in the `parameters` on the `create lambda <./_static/api.html#operation/createLambda>`_ endpoint. The count of `workers` can range from 1 to 32. By default `workers` value is 1.