Class KubernetesRuntime
java.lang.Object
org.apache.pulsar.functions.runtime.kubernetes.KubernetesRuntime
- All Implemented Interfaces:
Runtime
Kubernetes based runtime for running functions.
This runtime provides the usual methods to start/stop/getfunctionstatus
interfaces to control the kubernetes job running function.
We first create a headless service and then a statefulset for starting function pods
Each function instance runs as a pod itself. The reason using statefulset as opposed
to a regular deployment is that functions require a unique instance_id for each instance.
The service abstraction is used for getting functionstatus.
-
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescriptionstatic StringcreateJobName(org.apache.pulsar.functions.proto.Function.FunctionDetails functionDetails, String jobName) voidvoidstatic voiddoChecks(org.apache.pulsar.functions.proto.Function.FunctionDetails functionDetails, String overridenJobName) CompletableFuture<org.apache.pulsar.functions.proto.InstanceCommunication.MetricsData> CompletableFuture<org.apache.pulsar.functions.proto.InstanceCommunication.FunctionStatus> getFunctionStatus(int instanceId) CompletableFuture<org.apache.pulsar.functions.proto.InstanceCommunication.MetricsData> getMetrics(int instanceId) booleanisAlive()voidjoin()voidvoidstart()The core logic that creates a service first followed by statefulset.voidstop()
-
Field Details
-
VALID_POD_NAME_REGEX
-
-
Method Details
-
start
The core logic that creates a service first followed by statefulset. -
reinitialize
public void reinitialize()- Specified by:
reinitializein interfaceRuntime
-
join
-
stop
-
getDeathException
- Specified by:
getDeathExceptionin interfaceRuntime
-
getFunctionStatus
public CompletableFuture<org.apache.pulsar.functions.proto.InstanceCommunication.FunctionStatus> getFunctionStatus(int instanceId) - Specified by:
getFunctionStatusin interfaceRuntime
-
getAndResetMetrics
public CompletableFuture<org.apache.pulsar.functions.proto.InstanceCommunication.MetricsData> getAndResetMetrics()- Specified by:
getAndResetMetricsin interfaceRuntime
-
resetMetrics
- Specified by:
resetMetricsin interfaceRuntime
-
getMetrics
public CompletableFuture<org.apache.pulsar.functions.proto.InstanceCommunication.MetricsData> getMetrics(int instanceId) - Specified by:
getMetricsin interfaceRuntime
-
getPrometheusMetrics
- Specified by:
getPrometheusMetricsin interfaceRuntime- Throws:
IOException
-
isAlive
public boolean isAlive() -
deleteStatefulSet
- Throws:
InterruptedException
-
deleteService
- Throws:
InterruptedException
-
getExecutorCommand
-
createJobName
-
doChecks
public static void doChecks(org.apache.pulsar.functions.proto.Function.FunctionDetails functionDetails, String overridenJobName)
-