Configuring and Implementing Kubernetes Admission Controllers

30 minutes
  • 3 Learning Objectives

About this Hands-on Lab

Kubernetes provide plugins called admission controllers that govern and enforce how the cluster is used. In this hands-on lab, you will be tasked with configuring an admission controller and deploying to a namespace in order to set default memory limits and requests.

Learning Objectives

Successfully complete this lab by achieving the following learning objectives:

Enable the LimitRanger Admission Controller
  • Use a text editor to modify the kube-apiserver.yaml and ensure that the LimitRanger admission controller is enabled.
  • Validate that the kube-apiserver pod redeploys successfully by issuing a simple kubectl command (the pod can take several seconds to redeploy).
Create a LimitRange Resource in the dev Namespace
  • Create a manifest file called mem-limit.yaml with the following specifications:

    Note: performing a copy paste directly from the objective will result in additional spaces being added. To remove additional spaces, either copy to a text editor on your computer before copying to the file on the host or manually remove the spaces once you have copied the file.

    apiVersion: v1
    kind: LimitRange
    metadata:
    name: mem-limit-range
    namespace: dev
    spec:
    limits:
    - default:
      memory: 512Mi
    defaultRequest:
      memory: 256Mi
    type: Container
  • Use the kubectl command to deploy the manifest file.
Create Two Pods in the dev Namespace
  • View the contents of the nginx-pod.yaml file in the /home/cloud_user directory (take note of any memory requests or limits, if they appear):
    • Use the kubectl command to deploy the manifest.
    • Use the kubectl command to print information about the pod in YAML format (pay attention to the memory request and limit).
  • View the contents of the test-pod.yaml file in the /home/cloud_user directory (take note of any memory requests or limits, if they appear):
    • Use the kubectl command to deploy the manifest.
    • Use the kubectl command to print information about the pod in YAML format (pay attention to the memory request and limit).

Additional Resources

Scenario

You work as part of a team of engineers who administer a Kubernetes cluster. The dev namespace has had several issues with users not setting memory request and limits. In order to remedy this and prevent human error, you have been tasked with deploying a LimitRange resource to the dev namespace to provide these memory defaults. This will require you to enable the LimitRanger admission controller, create a LimitRange resource, and to deploy two pods to the dev namespace to ensure that admission controller is functioning properly.

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?