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.
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
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.
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
- 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
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.
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.
- 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
As you can see, this experience is identical to what you will see for pods scheduled on regular nodes.
- Click on Infrastructure -> Cluster
- Click on Kubectl and type the command "get no" to list the nodes
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.