The key change is the availability of a public Ray Train DLC that already contains the CUDA runtime, PyTorch, NCCL, the EFA userspace stack, and a supported Ray version. Practitioners no longer have to assemble and version‑lock these pieces themselves; they can pull the image public.ecr.aws/deep-learning-containers/ray:train-ml-cuda-v1.1 and run it directly on Amazon EKS.
Why the Prebuilt Ray Train DLC Matters
AI engineers gain a stable foundation for multi‑node training, avoiding the fragile process of rebuilding images whenever a library updates. Cloud and platform engineers benefit from a single source of truth for the runtime stack, simplifying CI/CD pipelines and reducing the surface for version drift. DevOps and SRE teams see fewer pod‑restart loops because the operator can rely on a tested image that matches the KubeRay version. Security staff appreciate that the image is hosted in Amazon ECR Public, eliminating the need to store custom container registries and reducing the risk of unintentionally shipping vulnerable dependencies.
Architecture Overview
Ray clusters on EKS consist of a head pod and one or more worker pods. The head runs the Ray control store, dashboard, and job server; each worker hosts a GPU and runs a training process. KubeRay, an open‑source operator, watches a RayCluster custom resource and creates the head and worker pods accordingly. In the sample architecture, a CPU‑only system node runs the KubeRay controller, while two g6.12xlarge instances with EFA provide eight L4 GPUs. The same DLC image is used for both head and workers, and the EFA stack inside the image enables low‑latency NCCL collectives across the two instances.
Implementation Steps
- Reference the public DLC tag
public.ecr.aws/deep-learning-containers/ray:train-ml-cuda-v1.1in theRayClustermanifest. - Specify the instance type (e.g.,
g6.12xlarge) and GPU count per pod. - Enable EFA by adding the appropriate network configuration to the pod spec; the DLC already includes the EFA installer, libfabric, and the
aws-ofi-ncclplugin. - Deploy the manifest; KubeRay creates the head pod, then the worker pods, each pulling the same image.
- Submit a Ray Train job that uses PyTorch Fully Sharded Data Parallel (FSDP) to the Ray job server; the job runs on eight GPUs without any custom container build.
Operational and Security Considerations
Because the image is centrally maintained, patching is handled by AWS; operators only need to track the DLC version used in their manifests. However, teams should monitor the public ECR tag for updates and plan periodic rollouts to incorporate security fixes. The reliance on EFA means that network policies must allow the required libfabric traffic between worker nodes. KubeRay automatically replaces failed pods, but observability of the Ray head and the operator remains essential to detect silent failures. From a security perspective, using a public image reduces the attack surface associated with custom Dockerfiles, but access to the EKS cluster and to the public ECR repository should still be governed by least‑privilege IAM policies.
Related CloudNinjas coverage: AWS.
What This Means For Practitioners
Adopt the Ray Train DLC as the default training image for any distributed PyTorch workload on EKS. Verify that your KubeRay operator version supports Ray 2.58.0, and update manifests to reference the public tag. Incorporate regular image‑version checks into your deployment pipeline to stay current with AWS patches. Finally, evaluate the performance of EFA‑backed NCCL collectives in your specific workload and adjust pod placement or instance sizing as needed.


