Announcing our partnership with Broadcom for the VMware VCF AI Factory.Read more

Amazon EKS-A: Deployment and Operations Made Easy with MetalSoft Orchestration

MetalSoft Team·
Engineer working on a laptop in a dark server room with rows of green LED lights.

Abstract

When deploying Amazon Elastic Kubernetes Service - Anywhere (EKS-A), infrastructure engineers often face multiple challenges such as managing server bootstrapping, complex networking setup, manual interventions. While Amazon EKS provides a robust platform for container orchestration, installing and managing it can still be daunting. In this blog, we’ll explore how MetalSoft streamlines Amazon EKS-A deployment, offering a user-friendly interface for building, scaling, and upgrading clusters. With MetalSoft, enterprises can offload much of the networking and compute complexity, enabling engineers to focus on their core responsibilities—delivering platform services efficiently to developers.

Introduction

Amazon EKS-A is a user-managed product that runs on user-managed infrastructure. Enterprises are responsible for cluster lifecycle operations and maintenance of EKS-A clusters.

EKS-A uses an infrastructure provider model for creating, upgrading, and managing Kubernetes clusters that is based on the Kubernetes Cluster API (CAPI) project. While EKS-A simplifies and abstracts the Cluster API (CAPI) primitives, it still involves manual installation procedures which makes it cumbersome to install, upgrade, and scale.

EKS-A consists of multiple components necessary for creating and managing EKS-A clusters, as outlined in the table below. The large number of components adds complexity to both deployment and ongoing management.

Components
Administrative / CLIManagementCluster
eksctl CLICAPI controllerKubernetes
image-builderEKS Anywhere lifecycle controlleretcd
diagnostics collectorCurated Packages controllerCilium
Kubeadm controllerCoreDNS
etcdadm controllerkube-proxy
Provider-specific controllerscontainerd
EKS Anywhere CRDskube-vip

Let’s take a look at creating EKS Anywhere clusters on bare metal. According to Amazon’s documentation, this process is highly manual, as summarized in the infographic and table below.

Diagram of the manual EKS Anywhere bare metal creation flow: from an administrative machine, step 1 runs eksctl anywhere generate clusterconfig, step 2 prepares the cluster config and hardware.csv files, step 3 runs eksctl anywhere create cluster which starts a bootstrap cluster running Tinkerbell (hegel, rufio, tink), and step 4 Tinkerbell boots the physical computers.
Administrative Machine
No.StepsInputMode
1.Create a config file for Bare MetalCluster related parameters (config.yaml)Manual
2a.Generate clusterconfig.yaml fileTinkerbellDatacenterConfig TinkerbellMachineConfig Tinkerbell ActionsManual
2b.Create hardware CSV fileHosts inventory information (hardware.csv)Manual
3.Launch cluster creation$ eksctl anywhere create cluster --hardware-csv hardware.csv -f eksa-mgmt-cluster.yamlManual
4.Cluster scalingconfig.yamlManual

It’s important to note that the tasks above assume that other critical aspects of the cluster have already been addressed, such as setting up the underlying network fabric (including creating the correct VLANs and routing between compute hosts), ensuring compute hosts are PXE-bootable, and configuring an OS using image builder, among others.

MetalSoft value add

As shown in the previous section, the EKS-A deployment process is complex and prone to errors. MetalSoft simplifies this by abstracting the hardware bootstrapping, cluster deployment steps, network and switch provisioning, and storage provisioning, all within an easy-to-use graphical interface or Terraform-supported EKS-A deployment. The tasks below are handled by the MetalSoft orchestration platform, removing these burdens from the user.

  • Automated generation of hardware CSV files
  • Automated EKS configuration file generation
  • EKS-A installation (Admin node, Control Plane, Worker Nodes)
  • Netplan setup and post-OS configurations on worker and control plane nodes
  • Switch port configuration
  • EKS-A Kubernetes version upgrades
  • Cluster scaling (Scale In/Out)
  • Host OS version upgrades and customizations, including NFS utilities and self-signed certificates
  • Bonding/LACP setup
  • Flexible configuration for multiple NICs
  • Integration with Flux and ArgoCD
  • Support for multi-vendor hardware configurations

EKS-A Cluster buildout process using MetalSoft

This section outlines how an EKS-A cluster can be built easily in just a few clicks, with no manual steps required.

The user first logs into the MetalSoft platform using SSO, then selects the EKS-A tab from the options in the left panel, as shown in the figure below.

MetalSoft platform left navigation panel with Servers, Endpoints, File share, Network, Kubernetes, Kubernetes EKS-A (highlighted), VMware vSphere, and VMware VCF options.

The MetalSoft platform captures the user’s intent to create an EKS-A cluster and automatically populates the necessary cluster configurations in the infrastructure designer pane, as shown below.

MetalSoft infrastructure designer showing a WAN network connected to three instance arrays (instance-array-3720, 3721, and 3722), each with one instance in Ordered state.
MetalSoft Infrastructure Designer

The user can click on any instance and select the desired Kubernetes version for deployment in EKS-A.

Kubernetes EKS-A tab showing a Version dropdown with options 1.28 and 1.29, with 1.29 selected.
Selecting right Kubernetes version for EKS-A deployment

The GUI also offers customization options, such as specifying the number of nodes needed in the Control Plane and Worker nodes for the EKS-A cluster. Users can select different hardware combinations based on their use case, eliminating the need to manually populate the hardware CSV file.

Cluster-2240 Configuration tab showing the Eksa Mgmt instance array with an M.24.128.1 server type (1 x Intel Xeon Silver 4310 CPU, 128 GB ECC RAM, 20 gbps network, 1 x 1862 GB HDD) and a count selector, plus collapsed Kubernetes Control Plane and Kubernetes Worker instance arrays.

Users can also define the subnets and IP ranges that they want their EKS-A cluster to utilize.

Cluster-2240 Subnets tab with fields for Subnet Label, IP Count, Subnet Pool (192.168.68.0/24), VLAN mode toggle (Manual or Auto-Allocated) with VLAN ID input, VRF selection (Default VRF, Manual, or Auto-Allocated VRF), and an Add IP Range button.

Alternatively, the user can choose pre-defined network profiles while creating the cluster.

Cluster-2240 Advanced tab showing network profile selection for the Eksa Mgmt instance array: network #1653 wan set to the public (wan) profile and network #1654 san set to None, with an explanation that a network profile alters the network configuration to allow external connections and bridging to other interfaces.

After reviewing and making any necessary changes to the cluster configuration through the GUI, the cluster creation process will start automatically. Once the cluster is complete, the platform will provide the endpoint and kubectl configuration file, which can be used to begin deploying workload pods and containers on the newly created clusters.

Summary

In this blog, we explored how MetalSoft simplifies the deployment of Amazon EKS-A clusters, providing an intuitive interface for cluster creation, scaling, and version upgrades. The complex and error-prone nature of EKS-A deployment is addressed by MetalSoft’s orchestration platform, which abstracts various critical tasks, including hardware bootstrapping, network provisioning, and storage setup.

Share article

Back to all articles