Manage Kubernetes Resources with Terraform

45 minutes
  • 4 Learning Objectives

About this Hands-on Lab

Hey there, Gurus! Welcome to the lab! This lab will demonstrate how to change, manage, and delete resources in Kubernetes using Terraform. You, as an admin, are being asked to deploy a NodePort service to your Kubernetes cluster to go along with your NGINX nodes. You will need to first set up the cluster using `kind` and `kubectl`, and deploy the NGINX nodes using Terraform. You will then use Terraform to deploy the NodePort service, and scale your NGINX nodes from 2 to 4 nodes. You will finish by destroying your resource and deleting your cluster.

Learning Objectives

Successfully complete this lab by achieving the following learning objectives:

Set Up the Lab Environment

In the Terminal

  1. Once logged into your instance, change to the lab-manage-kubernetes directory.
  2. Use kind and the kind-config.yaml file to create a cluster named lab-terraform-kubernetes.
  3. Point kubectl at your cluster to allow interaction.
  4. Gather cluster information for values for your variables file.
  5. Edit your terraform.tfvars file and add your cluster host and client certificate values.
  6. Initialize your working directory.
  7. Apply your configuration.
Add a Service

In the Terminal

  1. Download the service code to your working directory.
  2. Review the file.
  3. Schedule the NodePort service deployment to your Kubernetes cluster using Terraform.
  4. Verify the deployment.
Scale the Nodes

In the Terminal

  1. Edit the file.
  2. Change replicas from 2 to 4.
  3. Apply the configuration change.
  4. Confirm that you scaled the nodes from 2 to 4.
Delete Your Cluster

In the Terminal

  1. Destroy the cluster resources.
  2. Delete your cluster.

Additional Resources

You are an admin who supports one of the largest online comic book retailers in the world. You are one of a handful of admins who have been assigned to use Terraform to manage the company's cloud deployments. You are being asked to deploy a simple Kubernetes cluster running to NGINX nodes to test out a new web application on a local server before deploying to the cloud. However, there is a missing piece of the puzzle. Your web application isn't publicly accessible. You will need to add a NodePort service to your configuration to make the application publicly available. You will also need to scale the deployment from 2 pods to 4 to test out the scalability of the application.

Configuration Used in This Lab

What are Hands-on Labs

Hands-on Labs are real environments created by industry experts to help you learn. These environments help you gain knowledge and experience, practice without compromising your system, test without risk, destroy without fear, and let you learn from your mistakes. Hands-on Labs: practice your skills before delivering in the real world.

Sign In
Welcome Back!

Psst…this one if you’ve been moved to ACG!

Get Started
Who’s going to be learning?