Skip to content

Deploy Workload

What Will You Do

In this part, you will configure and deploy a workload to the EKS cluster in a specific namespace called "dev". As per our cluster specification, all pods deployed to the "dev" namespace will be scheduled on AWS Fargate.


Create Namespace

As a user with appropriate RBAC (i.e. Org Admin or Infra Admin or Workspace Admin), create a namespace on the EKS cluster.

  • Click on Infrastructure -> Namespaces
  • Click on Create New Namespace
  • Select "dev" for name and "wizard" for type
  • Select the EKS Cluster for placement and publish the namespace to the remote cluster

Note

For this exercise, we will keep it simple and skip the assignment of resource quotas and policies.


Configure & Deploy Workload

As a user with appropriate RBAC (i.e. at least Project Admin or Namespace Admin), we will create a workload to deploy to our remote EKS cluster.

Important

Download the provided YAML file and save it to your computer. We will deploy this to the cluster.

  • Under Applications -> Workloads, create a "New Workload"
  • Enter the name "echo" for the workload
  • Select "k8s yaml" for type
  • Select "upload files manually"
  • Ensure the namespace from the prior step is selected

Configure Workload

  • In the upload step, upload the file "echo.yaml" and click on "Save and Go To Placement"
  • In placement, select the name of the EKS cluster and "Save and Go To Publish"
  • Publish the workload

Workload Publish In Progress

The controller will take the provided YAML manifest, the configured policies and reconcile it with the remote EKS cluster. This workload is targeted at the "dev" namespace and we have configure the "Fargate Profile" for our EKS cluster to be triggered by deployments to the "dev" namespace.

Important

You will notice that the workload will take some time to become operational. This is because pods scheduled on AWS Fargate need to wait for compute capacity needs to be created "Just in Time".


Verify Fargate Resources

In our simple example, the workload has a "single replica" and this pod is running on AWS Fargate. Let us determine what the resources in Fargate look like in our EKS cluster.

Verify Pods

  • In our workload, Click on Debug to bring up the integrated Kubernetes resources dashboard.
  • Click on Pods on the left
  • You should see the pod associated with our workload show up as healthy

Debug Pod Status

Important

As you can see, this experience is identical to what you will see for pods scheduled on regular nodes.

Fargate Resources

  • Click on Infrastructure -> Cluster
  • Click on Kubectl and type the command "get no" to list the nodes

Kubectl Nodes

Note

Even though you did not provision it, you will see a 2nd node listed here. This is expected because each pod scheduled on Fargate will manifest itself as a "Dedicated Node" attached to the EKS cluster.

  • Now, click on Nodes and you will notice two nodes listed
  • Click on the node with the prefix "fargate" in its name

Notice that the "labels" clearly identify the node as "Fargate". Also, notice that the "NoSchedule" taint is configured to ensure that other pods are not inadvertently scheduled on this.

Debug Pod Status