Back to Charts

DEPRECATED - Hazelcast

stable/hazelcast/README.md

latest31.4 KB
Original Source

DEPRECATED - Hazelcast

Hazelcast IMDG is the most widely used in-memory data grid with hundreds of thousands of installed clusters around the world. It offers caching solutions ensuring that data is in the right place when it’s needed for optimal performance.

This Helm chart is deprecated

Given the stable deprecation timeline, the Hazelcast IMDG Helm chart is now located at hazelcast/charts.

The Hazelcast IMDG chart repo is also avaliable at Helm Hub.

To install new chart, you just need to add the related repo and use hazelcast/hazelcast instead of stable/hazelcast as a chart name.

bash
$ helm repo add hazelcast https://hazelcast-charts.s3.amazonaws.com/
$ helm install my-release hazelcast/hazelcast           # Helm 3
$ helm install --name my-release hazelcast-hazelcast   # Helm 2

Quick Start

$ helm install my-release stable/hazelcast        # Helm 3
$ helm install --name my-release stable/hazelcast # Helm 2

Introduction

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

Prerequisites

  • Kubernetes 1.9+

Installing the Chart

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

$ helm install my-release stable/hazelcast        # Helm 3
$ helm install --name my-release stable/hazelcast # Helm 2

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

Uninstalling the Chart

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.

Configuration

The following table lists the configurable parameters of the Hazelcast chart and their default values.

ParameterDescriptionDefault
image.repositoryHazelcast Image namehazelcast/hazelcast
image.tagHazelcast Image tag{VERSION}
image.pullPolicyImage pull policyIfNotPresent
image.pullSecretsSpecify docker-registry secret names as an arraynil
cluster.memberCountNumber of Hazelcast members2
hazelcast.javaOptsAdditional JAVA_OPTS properties for Hazelcast membernil
hazelcast.loggingLevelLevel of Hazelcast logs (SEVERE, WARNING, INFO, CONFIG, FINE, FINER, and FINEST); note that changing this value requires setting securityContext.runAsUser to 0 and securityContext.readOnlyRootFilesystem to falsenil
hazelcast.existingConfigMapConfigMap which contains Hazelcast configuration file(s) that are used instead of hazelcast.yaml file embedded into values.yamlnil
hazelcast.yamlHazelcast YAML Configuration (hazelcast.yaml embedded into values.yaml){DEFAULT_HAZELCAST_YAML}
hazelcast.configurationFilesHazelcast configuration filesnil
affinityHazelcast Node affinitynil
tolerationsHazelcast Node tolerationsnil
nodeSelectorHazelcast Node labels for pod assignmentnil
hostPortPort under which Hazelcast PODs are exposed on the host machinesnil
gracefulShutdown.enabledTurn on and off Graceful Shutdowntrue
gracefulShutdown.maxWaitSecondsMaximum time to wait for the Hazelcast POD to shut down600
livenessProbe.enabledTurn on and off liveness probetrue
livenessProbe.initialDelaySecondsDelay before liveness probe is initiated30
livenessProbe.periodSecondsHow often to perform the probe10
livenessProbe.timeoutSecondsWhen the probe times out5
livenessProbe.successThresholdMinimum consecutive successes for the probe to be considered successful after having failed1
livenessProbe.failureThresholdMinimum consecutive failures for the probe to be considered failed after having succeeded.3
livenessProbe.pathURL path that will be called to check liveness./hazelcast/health/node-state
livenessProbe.portPort that will be used in liveness probe calls.nil
readinessProbe.enabledTurn on and off readiness probetrue
readinessProbe.initialDelaySecondsDelay before readiness probe is initiated30
readinessProbe.periodSecondsHow often to perform the probe10
readinessProbe.timeoutSecondsWhen the probe times out1
readinessProbe.successThresholdMinimum consecutive successes for the probe to be considered successful after having failed1
readinessProbe.failureThresholdMinimum consecutive failures for the probe to be considered failed after having succeeded.3
readinessProbe.pathURL path that will be called to check readiness./hazelcast/health/ready
readinessProbe.portPort that will be used in readiness probe calls.nil
resources.limits.cpuCPU resource limitdefault
resources.limits.memoryMemory resource limitdefault
resources.requests.cpuCPU resource requestsdefault
resources.requests.memoryMemory resource requestsdefault
service.createEnable installing Servicetrue
service.nameName of Service, if not set, the name is generated using the fullname templatenil
service.typeKubernetes service type (ClusterIP, LoadBalancer, or NodePort)ClusterIP
service.portKubernetes service port5701
service.clusterIPIP of the service, "None" makes the service headlessNone
rbac.createEnable installing RBAC Role authorizationtrue
serviceAccount.createEnable installing Service Accounttrue
serviceAccount.nameName of Service Account, if not set, the name is generated using the fullname templatenil
securityContext.enabledEnables Security Context for Hazelcast and Management Centertrue
securityContext.runAsUserUser ID used to run the Hazelcast and Management Center containers65534
securityContext.runAsGroupPrimary Group ID used to run all processes in the Hazelcast Jet and Hazelcast Jet Management Center containers65534
securityContext.fsGroupGroup ID associated with the Hazelcast and Management Center container65534
securityContext.readOnlyRootFilesystemEnables readOnlyRootFilesystem in the Hazelcast security contexttrue
metrics.enabledTurn on and off JMX Prometheus metrics available at /metricsfalse
metrics.service.typeType of the metrics serviceClusterIP
metrics.service.portPort of the /metrics endpoint and the metrics service8080
metrics.service.annotationsAnnotations for the Prometheus discovery
customVolumeConfiguration for a volume mounted as /data/custom (e.g. to mount a volume with custom JARs)nil
mancenter.enabledTurn on and off Management Center applicationtrue
mancenter.image.repositoryHazelcast Management Center Image namehazelcast/management-center
mancenter.image.tagHazelcast Management Center Image tag (NOTE: must be the same or one minor release greater than Hazelcast image version){VERSION}
mancenter.image.pullPolicyImage pull policyIfNotPresent
mancenter.image.pullSecretsSpecify docker-registry secret names as an arraynil
mancenter.contextPaththe value for the MC_CONTEXT_PATH environment variable, thus overriding the default context path for Hazelcast Management Centernil
mancenter.sslEnable SSL for Managementfalse
mancenter.javaOptsAdditional JAVA_OPTS properties for Hazelcast Management Centernil
mancenter.licenseKeyLicense Key for Hazelcast Management Center, if not provided, can be filled in the web interfacenil
mancenter.licenseKeySecretNameKubernetes Secret Name, where Management Center License Key is stored (can be used instead of licenseKey)nil
mancenter.existingConfigMapConfigMap which contains Hazelcast Client configuration file(s) that are used instead of hazelcast-client.yaml file embedded into values.yaml{DEFAULT_HAZELCAST_CLIENT_YAML}
mancenter.yamlHazelcast Client YAML Configuration (hazelcast-client.yaml used to connect to Hazelcast clusternil
mancenter.affinityManagement Center Node affinitynil
mancenter.tolerationsManagement Center Node tolerationsnil
mancenter.nodeSelectorHazelcast Management Center node labels for pod assignmentnil
mancenter.resourcesCPU/Memory resource requests/limitsnil
mancenter.persistence.enabledEnable Persistent Volume for Hazelcast Managementtrue
mancenter.persistence.existingClaimName of the existing Persistence Volume Claim, if not defined, a new is creatednil
mancenter.persistence.accessModesAccess Modes of the new Persistent Volume ClaimReadWriteOnce
mancenter.persistence.sizeSize of the new Persistent Volume Claim8Gi
mancenter.service.typeKubernetes service type (ClusterIP, LoadBalancer, or NodePort)LoadBalancer
mancenter.service.portKubernetes service port5701
mancenter.livenessProbe.enabledTurn on and off liveness probetrue
mancenter.livenessProbe.initialDelaySecondsDelay before liveness probe is initiated30
mancenter.livenessProbe.periodSecondsHow often to perform the probe10
mancenter.livenessProbe.timeoutSecondsWhen the probe times out5
mancenter.livenessProbe.successThresholdMinimum consecutive successes for the probe to be considered successful after having failed1
mancenter.livenessProbe.failureThresholdMinimum consecutive failures for the probe to be considered failed after having succeeded.3
mancenter.readinessProbe.enabledTurn on and off readiness probetrue
mancenter.readinessProbe.initialDelaySecondsDelay before readiness probe is initiated30
mancenter.readinessProbe.periodSecondsHow often to perform the probe10
mancenter.readinessProbe.timeoutSecondsWhen the probe times out1
mancenter.readinessProbe.successThresholdMinimum consecutive successes for the probe to be considered successful after having failed1
mancenter.readinessProbe.failureThresholdMinimum consecutive failures for the probe to be considered failed after having succeeded.3
mancenter.ingress.enabledEnable ingress for the management centerfalse
mancenter.ingress.annotationsAny annotations for the ingress{}
mancenter.ingress.hostsList of hostnames for ingress, see values.yaml for example[]
mancenter.ingress.tlsList of TLS configuration for ingress, see values.yaml for example[]
mancenter.secretsMountNameSecret name that is mounted as '/secrets/' (e.g. with keystore/trustore files)nil

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 \
    stable/hazelcast

# Helm 2
$ helm install --name my-release \
  --set cluster.memberCount=3 \
    stable/hazelcast

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 -f values.yaml stable/hazelcast        # Helm 3
$ helm install --name my-release -f values.yaml stable/hazelcast # Helm 2

Tip: You can use the default values.yaml

Custom Hazelcast configuration

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

hazelcast:
   yaml:
    hazelcast:
      network:
        join:
          multicast:
            enabled: false
          kubernetes:
            enabled: true
            service-name: ${serviceName}
            namespace: ${namespace}
            resolve-not-ready-addresses: true
        <!-- Custom Configuration Placeholder -->

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