October DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsClean PCRecommendedOne scan can reveal what keeps slowing WindowsLook for cleanup and repair opportunities.Run ScanOctober DealsAmazon USDeal season is back - check today's better picksAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
World desk5 min

Apache Storm on EKS Without a Helm Chart: Architecture, Configuration and Persistence Checklist

A sourced guide to running Apache Storm on EKS with your own manifests: roles, mandatory settings, non-root storage pitfalls and what Apache and AWS do and don't document.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

You can run Apache Storm on Amazon EKS by writing your own Kubernetes manifests, or a private Helm chart, around Storm’s three moving parts: ZooKeeper, Nimbus and Supervisors. This article does not claim a tested, copy-and-paste install. It separates what Apache and AWS document from the decisions you have to make yourself, and it gives you a checklist for making them. Chart status is also unverified: we could not confirm whether Apache or the community publishes a Storm chart, so treat “no official chart” as a working assumption and check current Apache and chart-registry listings before you start.

What is and isn’t established

Apache describes Storm as “a free and open source distributed realtime computation system” for unbounded data streams. Its homepage lists real-time analytics, online machine learning, continuous computation, distributed RPC and ETL as use cases.

As an Amazon Associate I earn from qualifying purchases.

  • Documented: Storm’s cluster roles, its mandatory configuration keys, its fail-fast daemon model, the non-root and no-persistence behavior of the Docker image, and AWS’s prerequisites for Helm on EKS.
  • Not documented by those sources: any Kubernetes manifest layout for Storm, recommended PersistentVolumeClaim sizes, probes, pod disruption settings, or a production-readiness claim. The mapping below is design guidance for you to validate, not Apache or AWS guidance.

Storm’s cluster shape

The Storm 2.6.4 cluster setup guide describes three roles:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • ZooKeeper is the coordination service. It is not used for Storm message passing.
  • Nimbus is the master daemon.
  • Supervisors are worker daemons that manage worker processes on each machine.

The guide’s sequence is: set up ZooKeeper, install dependencies and the Storm release on Nimbus and worker machines, fill in storm.yaml, then launch the daemons under supervision. That is a VM-oriented procedure. On Kubernetes you keep the roles but replace the steps with workload resources.

Mapping Storm roles to Kubernetes decisions

Each row is a decision you must make and document. None of the answers are prescribed by the Storm or AWS pages.

Storm role Question to answer Why it matters
ZooKeeper Run it outside the cluster or inside EKS? Who operates and backs it up? Every Storm daemon reaches it through storm.zookeeper.servers, so its addresses must be stable and resolvable.
Nimbus How many replicas, and how are they addressed? nimbus.seeds is mandatory; workers use it to find topology jars and configuration. Topology-submission clients also need a route to Nimbus.
Supervisor How are worker slots sized and exposed? supervisor.slots.ports sets the worker ports available on a worker machine, so your container ports and any network policy must agree with it.
Storm UI Expose it at all, and to whom? Exposure is a security choice. The sources do not cover it.

Configuration checklist

The 2.6.4 guide names three mandatory settings. Its detail is for that release. The Storm homepage, checked on 2026-10-05, lists Storm 3.1.0 (released 2026-09-12), 3.0.0 and 2.8.9 (both released 2026-07-22) as current. Confirm the matching release documentation, including Java and Python requirements, before applying 2.6.4 details to a newer line.

  • storm.zookeeper.servers: the ZooKeeper hosts. In Kubernetes this will usually be a set of DNS names, which you must keep stable.
  • storm.local.dir: a local directory for daemon state. Decide whether it is ephemeral or on a volume (see below).
  • nimbus.seeds: the Nimbus addresses that workers use to find topology jars and configuration.
  • supervisor.slots.ports: worker ports on each Supervisor.

Mount your storm.yaml deliberately, for example from a ConfigMap, and verify that the image reads it from the location you expect. That path is image-specific, so check the image documentation rather than assuming.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Persistence and file permissions

The Apache Storm Docker Official Image documentation says data are not persisted by default and that the process runs as the non-root storm user. It identifies /data and /logs as directories owned by that user, and warns that other paths may cause permission errors.

  • Point storm.local.dir and log paths at locations the storm user can write, or set storm.local.dir to a mounted volume you have verified.
  • If you mount a volume, check its ownership at startup. A volume mounted with root ownership is a common cause of permission errors for non-root images. Pod-level security settings such as fsGroup are one way to handle it, but test the result with your actual image tag.
  • The image documentation gives no recommended PersistentVolumeClaim layout, so the volume design is yours to justify.

Restarts, health and high availability

The cluster guide says Storm daemons are fail-fast and should run under supervision, and that Storm recovers after a daemon restarts because state is not held in-process. Kubernetes restarting a crashed container fits that model. It does not by itself deliver application-level high availability. The guide says nothing about probes, StatefulSets or pod policies, so you will need to design and test these yourself:

  • Liveness and readiness checks that don’t kill a daemon during normal startup.
  • Scheduling spread and disruption budgets for Nimbus and Supervisors.
  • ZooKeeper recovery, including what happens to running topologies when it is briefly unavailable.
  • Upgrade and rollback order across roles.

EKS and Helm prerequisites

AWS’s Helm on Amazon EKS guide requires working kubectl access to the cluster before you install charts. Its example check is kubectl get svc. It also tells you to confirm that your Helm and Kubernetes versions are compatible. Helm’s Kubernetes distribution guide lists EKS as a supported distribution.

Those pages show that Helm works on EKS. They do not show that a Storm chart exists. If you write your own chart, it is simply a templating layer over the same decisions in the table above. Raw manifests are equally valid.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Deployment sequence to validate

  1. Confirm kubectl get svc succeeds against the EKS cluster.
  2. Choose a Storm release and read its own setup and configuration pages, including Java and Python requirements.
  3. Stand up ZooKeeper, either external or in-cluster, and confirm Storm pods can resolve it.
  4. Deploy Nimbus with storm.zookeeper.servers, storm.local.dir and nimbus.seeds set and storage permissions verified.
  5. Deploy Supervisors with supervisor.slots.ports matching their container ports.
  6. Decide how you submit topologies (from a client with network access to Nimbus, or from a pod inside the cluster) and whether the UI is exposed.
  7. Kill each daemon pod in turn and confirm recovery before running real workloads.

A note on the performance claim

The Storm homepage says “a benchmark clocked it at over a million tuples processed per second per node.” It names no publisher, year, workload or method, so don’t treat it as a measure of what your EKS node types will deliver. Run your own load test.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Windows Errors? Fix Them Before They SpreadFree repair scan
Crashes, No Sound, or Screen Glitches?Free driver scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.