Amazon EKS
Step 1: Create a Kubernetes cluster
1) Install aws-iam-authenticator for Amazon EKS
Amazon EKS clusters requires the AWS IAM Authenticator for Kubernetes to allow IAM authentication for your Kubernetes cluster. Use go get to install the aws-iam-authenticator binary:
Note: use Go 1.7 or greater.
Add $HOME/go/bin to your PATH environment variable:
For Bash shells on macOS:
For Bash shells on Linux:
Run this command to test that the aws-iam-authenticator binary works:
2/ Install AWS CLI
To install the aws cli, check the user guide: https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html
Once installed, check your AWS CLI version with the following command:
Example output:
Note: your system's Python version must be Python 3, or Python 2.7.9 or greater. Otherwise, you receive hostname doesn't match errors with AWS CLI calls to Amazon EKS.
Configure your AWS CLI to interact with your AWS account using the command below:
3/ Create an EKS cluster
To simplify the creation of our cluster on EKS, we are using a simple CLI tool named eksctl available here: https://github.com/weaveworks/eksctl.
To create a basic EKS cluster with a given name and region, run:
A cluster will be created with default parameters:
exciting auto-generated name, e.g. "fabulous-mushroom-1527688624"
2x
m5.large
nodes (this instance type suits most common use-cases, and is good value for money)use official AWS EKS AMI
us-west-2
regiondedicated VPC (check your quotas)
using static AMI resolver
Check the eksctl doc if you want to change default parameters.
Go to your AWS console and check the details about your EKS cluster.
Note: to delete your EKS cluster run the command:
Make sure it deleted all the associated EC2 resources avoiding you any bad surprises when checking your bill 😀
4) Configure Kubectl for Amazon EKS
Use the AWS CLI update-kubeconfig command to create or update your kubeconfig for your cluster.
Test your configuration:
Step 2: Configure HELM and install NGINX Ingress
Let's now configure HELM to work in the Cluster. We first need to give HELM permissions to deploy things into the cluster. Download the file below:
Run the following commands in your terminal:
In order to be able to expose our services to be accessed from outside the cluster, we need to set up an Ingress Controller, which will automatically create routes to the internal services that we want to expose. To install the NGINX Ingress controller, run the following command:
Now that NGINX Ingress Controller is being deployed, we need to wait for it to expose itself using a Public IP. We need this Public IP to interact with our services from outside the cluster. You can find this IP by running the following command:
Example output:
Last updated