Amazon EKS - Launch Kubernetes Cluster and Deploy Wordpress
The hands-on lab is part of these learning paths
Ready for the real environment experience?
Description
Lab Overview
Amazon EKS provides a fully managed Kubernetes control plane. Launching a fully operational EKS cluster is simple and can be accomplished in a matter of approximately 10 minutes.
In this Lab we will launch and EKS cluster with a single Worker Node attached. You will then be guided through the process of deploying a containerized version of Wordpress, consisting of a frontend web server running Apache, and a backend database running MySQL. Both containers will leverage persistent volumes for storage, leveraging EBS GP2 volumes as the underlying storage mechanism.
This Lab is for anyone that is interested in managing and configuring an Amazon EKS cluster, and understanding how to deploy applications within Kubernetes.
Lab Objectives
Upon completion of this Lab, you will be able to:
- Install and configure EKS Kubernetes command line utilities for connecting and authenticating against an EKS cluster
- Query and inspect AWS EC2 instances and EBS volumes
- Update and configure Kubernetes declarative YAML files to deploy a containerized Wordpress application
- Be able to manage and maintain Kubernetes cluster resources, such as Deployments, Pods, Services, and Secrets
Lab Prerequisites
You should be familiar with:
- Be comfortable with SSH to remotely administer a Linux based server
- Basic Linux administration
Lab Environment
This Lab will start with the following AWS resources being provisioned automatically for you:
- EKS Cluster
- EKS Worker Node instance (single)
- EKS Launcher instance
- EKS SSH Managment instance
- EBS volumes for persistent storage
To achieve the Lab end state, you will be walked through the process of:
- Downloading and installing EKS Kubernetes utilities
- Update and configure Kubernetes declarative YAML files to deploy a Wordpress containerized application
- Deploy and maintain a containerized Wordpress application using Kubernetes cluster resources, such as Deployments, Pods, Services, and Secrets using the kubectl and associated utlities
- Confirm that the containerized Wordpress application is fully operational
- Teardown and cleanup all Kubernetes cluster resources, such as Deployments, Pods, Services, and Secrets
Updates
April 22nd, 2020 - Edited the provisioning script to allow the Kubernetes node to perform needed tasks
March 16th, 2020 - Edited the provisioning script to allow the lab's EKS cluster to successfully pull needed resources
July 2nd, 2019 - Refactored part of the provisioning script to improve Lab maintainability
April 11th, 2019 - Improved AWS CLI commands to work with the latest EKS node naming convention
February 20th, 2019 - Updated the EC2 launch instance role to have all the permissions required by the latest eksctl CloudFormation templates
January 10th, 2019 - Added a validation Lab Step to check the work you perform in the Lab
Jeremy is the DevOps Content Lead at Cloud Academy where he specializes in developing technical training documentation for DevOps.
He has a strong background in software engineering, and has been coding with various languages, frameworks, and systems for the past 20+ years. In recent times, Jeremy has been focused on DevOps, Cloud, Security, and Machine Learning.
Jeremy holds professional certifications for both the AWS and GCP cloud platforms.