This is a prerelease version.

View latest

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.

Prerequisites Useful resources

Kubernetes 1.14+

Quickstart

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.

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

Installing the Chart

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

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.

List all releases using helm list command.

Uninstalling the Chart

To uninstall/delete the my-release deployment:

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,

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,

helm install my-release hazelcast/hazelcast -f values.yaml
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.

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.

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:

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