1. Home
  2. Training Library
  3. DevOps
  4. Courses
  5. Deploying A Cloud Native Application into Kubernetes

Create K8s Namespace

The course is part of this learning path

Building and Deploying a Cloud Native Application
course-steps 4 certification 1 lab-steps 6
play-arrow
Start course
Overview
DifficultyAdvanced
Duration1h 26m
Students14
Ratings
5/5
star star star star star

Description

Introduction

This training course is designed to help you master the skills of deploying cloud native applications into Kubernetes.

Observe first hand the end-to-end process of deploying a sample cloud native application into a Kubernetes cluster. By taking this course you'll not only get to see firsthand the skills required to perform a robust enterprise grade deployment into Kubernetes, but you'll also be able to apply them yourself as all code and deployment assets are available for you to perform your own deployment:

https://github.com/cloudacademy/voteapp-frontend-react
https://github.com/cloudacademy/voteapp-api-go
https://github.com/cloudacademy/voteapp-k8s

Kubernetes Resources

This training course provides you with in-depth coverage and demonstrations of the following Kubernetes resources:

  1. Namespace
  2. Deployment/ReplicaSet
  3. Pod
  4. Service
  5. Ingress/Ingress Controller
  6. StatefulSet
    1. Persistent Volume
    2. Persistent Volume Claim
    3. Headless Service
  7. NetworkPolicy

Learning Objectives

What you'll learn:

  • Learn and understand the basic principles of deploying cloud native applications into a Kubenetes cluster
  • Understand how to setup and configure a locally provisioned Kubernetes cluster using Minikube
  • Understand how to work with and configure many of the key Kubernetes cluster resources such as Pods, Deployments, Services etc.
  • And finally, you’ll learn how to manage deployments and Kubernetes cluster resources through their full lifecycle.

Demonstration

This training course provides you with many hands on demonstrations where you will observe first hand how to

  • Create and provision a Minikube Kubernetes cluster
  • Install the Cilium CNI plugin
  • Build and deploy Docker containers
  • Create and configure Kubernetes resources using kubectl

Prerequisites

  • A basic understanding of containers and containerisation
  • A basic understanding of software development and the software development life cycle
  • A basic understanding of networks and networking

Intended Audience

  • Anyone interested in learning Kubernetes
  • Software Developers interested in Kubernetes containerisation, orchestration, and scheduling
  • DevOps Practitioners

Transcript

- [Instructor] Okay, welcome back. From here on in, we're actually deploying to our Kubernetes cluster. And this is really the fun part, which we've worked really hard for. We've done all of the set-up work, and performed all of the necessary container packaging. 

Let's now move ahead and have some fun deploying and creating resources within our Kubernetes cluster. For starters, we'll navigate into the voteapp-k8s directory. This contains all of the Kubernetes' declarative yaml resource files that, when applied into the cluster, will tell Kubernetes what our desired end state is. And Kubernetes will go ahead and perform all of the necessary provisioning to achieve that end goal. As you can see, the root director contains several sub directories, which are used to collate the yaml files into the main components that make up our deployment. Within each sub folder, we have ordered the files using the as seen naming convention. This allows us to deploy at the folder level using the kubectl command. 

Okay, we'll start off by deploying a custom namespace into our cluster, to segment and isolate all of our resources into this one namespace. Which, as you can see, is named cloudacademy. We'll use the kubectl apply command, together with the dash f parameter to specify the yaml file we want to apply into the cluster like so. 

Okay, with the namespace now created, we can change and apply the current context to be set to the namespace of cloudacademy, using the following command. Okay, that completes our namespace set-up. And we are ready to deploy the remainder of our cloud native application resources into it.

About the Author

Students11075
Labs28
Courses65
Learning paths15

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.