Hazelcast Jet is a distributed computing platform built for high-performance stream processing and fast batch processing. It embeds Hazelcast In-Memory Data Grid (IMDG) to provide a lightweight, simple-to-deploy package that includes scalable in-memory storage.
Visit jet.hazelcast.org to learn more about the architecture and use cases.
$ helm install my-release stable/hazelcast-jet # Helm 3
$ helm install --name my-release stable/hazelcast-jet # Helm 2
This chart bootstraps a Hazelcast Jet and Hazelcast Jet Management Center deployments on a Kubernetes cluster using the Helm package manager.
To install the chart with the release name my-release
:
$ helm install my-release stable/hazelcast-jet # Helm 3
$ helm install --name my-release stable/hazelcast-jet # Helm 2
The command deploys Hazelcast Jet on the Kubernetes cluster in the default configuration. The configuration section lists the parameters that can be configured during installation.
Tip: List all releases using
helm list
To uninstall/delete the my-release
deployment:
$ helm delete my-release
The command removes all the Kubernetes components associated with the chart and deletes the release.
The following table lists the configurable parameters of the Hazelcast chart and their default values.
Parameter | Description | Default |
---|---|---|
|
Hazelcast Jet Image name |
|
|
Hazelcast Jet Image tag |
|
|
Image pull policy |
|
|
Specify docker-registry secret names as an array |
|
|
Number of Hazelcast Jet members |
2 |
|
Additional JAVA_OPTS properties for Hazelcast Jet member |
|
|
Level of Hazelcast Jet logs (SEVERE, WARNING,
INFO, CONFIG, FINE, FINER, and FINEST); note that changing this value
requires setting |
|
|
Hazelcast Jet and IMDG
YAML configurations ( |
|
|
Hazelcast configuration files |
|
|
Port under which Hazelcast Jet PODs are exposed on the host machines |
|
|
Hazelcast Node affinity |
|
|
Hazelcast Node tolerations |
|
|
Hazelcast Node labels for pod assignment |
|
|
Turn on and off Graceful Shutdown |
|
|
Maximum time to wait for the Hazelcast Jet POD to shut down |
|
|
Turn on and off liveness probe |
|
|
Delay before liveness probe is initiated |
|
|
How often to perform the probe |
|
|
When the probe times out |
|
|
Minimum consecutive successes for the probe to be considered successful after having failed |
|
|
Minimum consecutive failures for the probe to be considered failed after having succeeded. |
|
|
URL path that will be called to check liveness. |
|
|
Port that will be used in liveness probe calls. |
|
|
HTTPS or HTTP scheme. |
|
|
Turn on and off readiness probe |
|
|
Delay before readiness probe is initiated |
|
|
How often to perform the probe |
|
|
When the probe times out |
|
|
Minimum consecutive successes for the probe to be considered successful after having failed |
|
|
Minimum consecutive failures for the probe to be considered failed after having succeeded. |
|
|
URL path that will be called to check readiness. |
|
|
Port that will be used in readiness probe calls. |
|
|
HTTPS or HTTP scheme. |
|
|
CPU/Memory resource requests/limits |
|
|
Kubernetes service type (`ClusterIP', `LoadBalancer', or `NodePort') |
|
|
Kubernetes service port |
|
|
IP of the service, "None" makes the service headless |
|
|
Enable installing RBAC Role authorization |
|
|
Enable installing Service Account |
|
|
Name of Service Account, if not set, the name is generated using the fullname template |
|
|
Enables Security Context for Hazelcast Jet and Hazelcast Jet Management Center |
|
|
User ID used to run the Hazelcast Jet and Hazelcast Jet Management Center containers |
|
|
Primary Group ID used to run all processes in the Hazelcast Jet and Hazelcast Jet Management Center containers |
|
|
Group ID associated with the Hazelcast Jet and Hazelcast Jet Management Center container |
|
|
Enables readOnlyRootFilesystem in the Hazelcast Jet and Hazelcast Jet Management Center security containers |
|
|
Turn on and off JMX Prometheus metrics available at
|
|
|
Type of the metrics service |
|
|
Port of the |
|
|
Annotations for the Prometheus discovery |
|
|
Configuration for a volume which will be mounted as `/data/custom' (e.g. to mount a volume with custom JARs) |
|
|
Turn on and off Hazelcast Jet Management Center application |
|
|
Hazelcast Jet Management Center Image name |
|
|
Hazelcast Jet Management Center Image tag (NOTE: must be the same or one minor release greater than Hazelcast image version) |
|
|
Image pull policy |
|
|
Specify docker-registry secret names as an array |
|
|
Additional JAVA_OPTS properties for Hazelcast Jet Management Center |
|
|
License Key for Hazelcast Jet Management Center |
|
|
Kubernetes Secret Name, where Jet Management Center License Key is stored (can be used instead of licenseKey) |
|
|
Hazelcast Jet Management Center node affinity |
|
|
Hazelcast Jet Management Center node tolerations |
|
|
Hazelcast Jet Management Center node labels for pod assignment |
|
|
CPU/Memory resource requests/limits |
|
|
Kubernetes service type (`ClusterIP', `LoadBalancer', or `NodePort') |
|
|
Kubernetes service port |
|
|
Turn on and off liveness probe |
|
|
Delay before liveness probe is initiated |
|
|
How often to perform the probe |
|
|
When the probe times out |
|
|
Minimum consecutive successes for the probe to be considered successful after having failed |
|
|
Minimum consecutive failures for the probe to be considered failed after having succeeded. |
|
|
Turn on and off readiness probe |
|
|
Delay before readiness probe is initiated |
|
|
How often to perform the probe |
|
|
When the probe times out |
|
|
Minimum consecutive successes for the probe to be considered successful after having failed |
|
|
Minimum consecutive failures for the probe to be considered failed after having succeeded. |
|
Specify each parameter using the --set key=value[,key=value]
argument to
helm install
. For example,
# Helm 3
$ helm install my-release \
--set cluster.memberCount=3,serviceAccount.create=false \
stable/hazelcast-jet
# Helm 2
$ helm install --name my-release \
--set cluster.memberCount=3,serviceAccount.create=false \
stable/hazelcast-jet
The above command sets number of Hazelcast Jet members to 3.
Alternatively, a YAML file that specifies the values for the parameters can be provided while installing the chart. For example,
$ helm install my-release -f values.yaml stable/hazelcast-jet # Helm 3
$ helm install --name my-release -f values.yaml stable/hazelcast-jet # Helm 2
Tip: You can use the default values.yaml
Custom Hazelcast IMDG and Hazelcast Jet configuration can be specified inside
values.yaml
, as the jet.yaml.hazelcast
and jet.yaml.hazelcast-jet
properties.
jet:
yaml:
hazelcast:
network:
join:
multicast:
enabled: false
kubernetes:
enabled: true
service-name: ${serviceName}
namespace: ${namespace}
resolve-not-ready-addresses: true
management-center:
enabled: ${hazelcast.mancenter.enabled}
url: ${hazelcast.mancenter.url}
hazelcast-jet:
instance:
flow-control-period: 100
backup-count: 1
scale-up-delay-millis: 10000
lossless-restart-enabled: false
edge-defaults:
queue-size: 1024
packet-size-limit: 16384
receive-window-multiplier: 3
metrics:
enabled: true
jmx-enabled: true
retention-seconds: 120
collection-interval-seconds: 5
metrics-for-data-structures: false
Alternatively, above parameters can be modified directly via helm
commands.
For example,
# Helm 3
$ helm install my-jet-release \
--set jet.yaml.hazelcast-jet.instance.backup-count=2,jet.yaml.hazelcast.network.kubernetes.service-name=jet-service \
stable/hazelcast-jet
# Helm 2
$ helm install --name my-jet-release \
--set jet.yaml.hazelcast-jet.instance.backup-count=2,jet.yaml.hazelcast.network.kubernetes.service-name=jet-service \
stable/hazelcast-jet
You can mount any volume which contains your JAR files
to the pods created by helm chart using customVolume
configuration.
When the customVolume
set, it will mount provided volume to the pod
on /data/custom
path.
This path also appended to the classpath of running Java process.
For example, if you have existing host path Persistent Volume and Persistent Volume Claims like below;
apiVersion: v1
kind: PersistentVolume
metadata:
name: jet-hostpathpv-volume
labels:
type: local
spec:
storageClassName: manual
capacity:
storage: 1Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/path/to/my/jars"
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: jet-pv-claim
spec:
storageClassName: manual
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
You can configure your Helm chart to use it like below in your values.yaml
file.
customVolume:
persistentVolumeClaim:
claimName: jet-pv-claim
See Volumes section on the Kubernetes documentation for other available options.
Hazelcast REST Endpoints are no longer enabled by default and the
parameter jet.rest
is no longer available. If you want to enable
REST, please add the related endpoint-groups
to the Hazelcast
Configuration (jet.yaml.hazelcast
). For example:
rest-api:
enabled: true
endpoint-groups:
HEALTH_CHECK:
enabled: true
CLUSTER_READ:
enabled: true
CLUSTER_WRITE:
enabled: true