Kubernetes Cluster Add-ons - AWS (4.2)

AWS Add-ons

efs-csi-controller

This is an optional add-on. Refer to the chapter for additional information.

The Amazon Elastic File System Container Storage Interface (CSI) Driver implements the CSI specification for container orchestrators to manage the lifecycle of Amazon EFS file systems.

To install the Amazon EFS CSI Driver, follow these steps:

  1. Add the Amazon EFS CSI Driver helm repository:

helm repo add aws-efs-csi-driver https://kubernetes-sigs.github.io/aws-efs-csi-driver/
  1. Update helm repository to get the latest software:

helm repo update
  1. Helm install:

helm install aws-efs-csi-driver --namespace uepe aws-efs-csi-driver/aws-efs-csi-driver --version <helm chart version> \ --set controller.serviceAccount.create=false \ --set controller.serviceAccount.name=efs-csi-controller-sa

Where <helm chart version> is a compatible version listed in the .

Helm install command assumes service account for Amazon EFS CSI Driver already exists.

Service Account name set to metadata.name under iam.serviceAccounts portion in the uepe-eks.yaml file in Set Up Kubernetes Cluster - AWS section

Namespace set to metadata.namespace under iam.serviceAccounts portion in the uepe-eks.yaml file in Set Up Kubernetes Cluster - AWS section

Dynamic Provisioning

These steps describe how to create a dynamically provisioned volume created through Amazon EFS access points and a corresponding persistent volume claim (PVC).

  1. Prepare a storageclass.yaml file with StorageClass manifest for Amazon EFS:

  1. Deploy the storage class

For more information, please refer to the dynamic provisioning documentation.

aws-load-balancer-controller

The AWS Load Balancer controller manages the following AWS resources:

  • Application Load Balancers to satisfy Kubernetes Ingress resources.

  • Network Load Balancers to satisfy Kubernetes Service resources of type LoadBalancer with appropriate annotations.

To install AWS Load Balancer Controller, follow these steps:

  1. Add eks repository to the helm repository:

  1. Update helm repository to get the latest software:

  1. Install the AWS Load Balancer Controller helm chart:

Where <helm chart version> is a compatible version listed in the .

Helm install command assumes service account for AWS Load Balancer Controller already exists.

Service Account name set to metadata.name under iam.serviceAccounts portion in the uepe-eks.yaml file in Set Up Kubernetes Cluster - AWS section

Namespace set to metadata.namespace under iam.serviceAccounts portion in the uepe-eks.yaml file in Set Up Kubernetes Cluster - AWS section

Kubernetes Add-ons

external-dns

ExternalDNS is a Kubernetes add-on that configures public DNS servers with information about exposed Kubernetes services to make them discoverable.

To install ExternalDNS, follow these steps:

  1. Add the bitnami helm repository:

  2. Update the helm repository to get the latest software:

  3. Create a file called external-dns-values.yaml and populate it with the following helm values:

  1. Install the ExternalDNS helm chart:

    Where <helm chart version> is a compatible version listed in the .

ingress-nginx-controller

The Ingress NGINX Controller is an ingress controller for Kubernetes using NGINX as a reverse proxy and load balancer.

To install the Ingress NGINX Controller, follow these steps:

  1. Add the ingress-nginx helm repository:

  2. Update the helm repository to get the latest software:

  3. Create a file called ingress-nginx-values.yaml and populate it with the following helm values:

  4. Install the ingress-nginx-controller helm chart:

    Where <helm chart version> is a compatible version listed in the .

Executing helm list should show all add-ons added in this section. Example:

This section is now complete. Now proceed to the section.