Skip to main content
Version: 6.0-SNAPSHOT

Deploying Hazelcast Community Edition on Kubernetes with Helm

This chart bootstraps a Hazelcast and Management Center deployments on a Kubernetes cluster using the Helm package manager.

PrerequisitesUseful resources
Kubernetes 1.14+Kubernetes Version

Quickstart​

shell
helm repo add hazelcast https://hazelcast-charts.s3.amazonaws.com/
helm repo update
helm install my-release hazelcast/hazelcast

For users who already added hazelcast repo to their local helm client before; you need to run helm repo add command again to use latest charts at the new chart repo.

shell
helm repo list
shell
NAME URL
hazelcast https://hazelcast.github.io/charts/
...
shell
helm repo add hazelcast https://hazelcast-charts.s3.amazonaws.com/
shell
NAME URL
hazelcast https://hazelcast-charts.s3.amazonaws.com/
...

Installing the Chart​

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

shell
helm install my-release hazelcast/hazelcast

The command deploys Hazelcast 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 command.

Uninstalling the Chart​

To uninstall/delete the my-release deployment:

shell
helm uninstall my-release

The command removes all the Kubernetes components associated with the chart and deletes the release.

Configuration​

For available configuration properties see values file.

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

shell
helm install my-release hazelcast/hazelcast \
--set cluster.memberCount=3

The above command sets number of Hazelcast members to 3.

Alternatively, a YAML file that specifies the values for the parameters can be provided while installing the chart. For example,

shell
helm install my-release hazelcast/hazelcast -f values.yaml
tip

You can use the default values.yaml.

Using DNS Lookup Discovery​

By default, Hazelcast Helm Chart uses Kubernetes API discovery. If you prefer the DNS Lookup discovery, use the following configuration.

yaml
hazelcast:
yaml:
hazelcast:
network:
join:
kubernetes:
service-dns: "${serviceName}.${namespace}.svc.cluster.local"
rbac:
create: false

Custom Hazelcast configuration​

Custom Hazelcast configuration can be specified inside values.yaml, as the hazelcast.yaml property.

yaml
hazelcast:
yaml:
hazelcast:
network:
join:
kubernetes:
enabled: true
service-name: ${serviceName}
namespace: ${namespace}
rest-api:
enabled: true
jet:
enabled: ${hz.jet.enabled}

Notable changes​

2.8.0​

Hazelcast REST Endpoints are no longer enabled by default and the parameter hazelcast.rest is no longer available. If you want to enable REST, please add the related endpoint-groups to the Hazelcast Configuration. For example:

yaml
rest-api:
enabled: true
endpoint-groups:
HEALTH_CHECK:
enabled: true
CLUSTER_READ:
enabled: true
CLUSTER_WRITE:
enabled: true