Feature in preview
Feature is currently in preview and must be enabled via Feature Flags on any SOCA cluster newer than 25.8.0. Preview features are still experimental and we don't recommend to use them for any production workloads.
You can enable pre-deployment via default_config.py
or post-deployment via socactl:
./socactl config set --key "/configuration/FeatureFlags/WebInterface/ContainersManagement" \
--value "{'enabled': True, 'allowed_users': [], 'denied_users': []}"
Restart SOCA Web UI after updating this key for changes to take effects.
Container Job Submission¶
Scale-Out Computing on AWS (SOCA) provides native integration with AWS container services, allowing users to submit containerized workloads to Amazon Elastic Kubernetes Service (EKS) clusters using container images stored in Amazon Elastic Container Registry (ECR).
Overview¶
The container job submission workflow consists of three main components:
- ECR Integration: Onboard ECR repositories to make container images available in SOCA
- EKS Integration: Onboard EKS clusters as compute targets for container workloads
- Job Submission: Submit containerized jobs through SOCA's web interface
ECR Repository Onboarding¶
ECR repositories are onboarded to SOCA using custom tags. This tagging mechanism allows SOCA to discover and list available container images. Tag your ECR repositories with the following:
Tag Key | Tag Value |
---|---|
soca:visibility:<cluster_id> |
true |
You can tag your ECR repository via CLI or via the ECS console. Select the ECS you want to onboard then click Actions > Repository Tags and add your tag.
SOCA supports multiple ECR repositories. Each repository must be individually tagged with the appropriate SOCA tags. Users can access images from all onboarded repositories through the unified SOCA interface.
Refresh ECR visibility
ECR repository will be visible as soon as the tags are applied. There is no need to restart your SOCA web interface.
EKS Cluster Onboarding¶
Important
As of current version, SOCA does not handle pod orchestration/provisioning.
Compute provisioning can be managed via karpenter
, EKS Auto-Mode
or others. SOCA only give you the ability to seamlessly submit container jobs from the SOCA environment, but unlike HPC module, won't manage pod autoscaling.
Similar to ECR repositories, EKS clusters are onboarded using custom tags applied to the EKS cluster resource.
Tag Key | Tag Value |
---|---|
soca:visibility:<cluster_id> |
true |
You can tag your EKS cluster via CLI or via the EKS console. Select the EKS you want to onboard then click Tags in the menu bar.
IAM policy¶
Make sure the IAM role associated to the SOCA Controller Node (soca-<cluster_id>-ControllerRole
) is listed as an autorized roles under Access menu bar. Failure to add the role will cause jobs to not be submitted to your EKS cluster.
Make sure this IAM role also has the correct access policy on your EKS cluster.
Security Groups¶
Make sure the security group associated to your EKS cluster (under Networking menu) has the required traffic permissions (port 443 to contact the EKS control plane for kubeclt
) to soca-<cluster_id>-ControllerSG
.
We also recommend you to allow traffic between ComputeNodeSG
/ LoginNodeSG
and ControllerSG
and the security group associated to your EKS nodes (If using a custom Security Group for your EKS Nodes) if you want your SOCA nodes to be able to access your EKS jobs
Container Job Submission¶
SOCA provides a user-friendly web interface for container job submission. Click Containers > Submit Job once you have onboarded your ECR repository(s) and cluster(s).
Select the container image you want to deploy, this will open the EKS job form:
Fill out the work with the following parameters:
- Job Name
- EKS Cluster
- EKS NameSpace
- CPU requirement
- Memory requirement
- GPU requirement
- (Optional) Force the job to run on a specific instance type (red section)
- (Optional) Override container entrypoint
- (Optional) Override Runtime arguments
You will be automatically redirected to Containers > My Jobs page, which should list all your EKS jobs:
You can also view your job directly from within the EKS console:
Note: SOCA automatically add custom labels containing the SOCA cluster ID as well as the job owner
Click Job Info button to get a JSON output of your jobs metadata:
Delete Job¶
To delete a job, navigate to Containers > My Jobs page and click Delete
button for the job you want to delete: