Skip to content

JairJosafath/notes-k8

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

K8Notes

K8Notes Image


What better way to learn a technology than to create an app with it? The theory all makes sense when you actually put it into practice. To get familiar with Kubernetes basics, we will create a minimalistic application with an emphasis on learning Kubernetes. The outcomes of this project are:

  1. Better understanding and familiarity with Kubernetes basic concepts:
    • Networking: Ingress & Service
    • ConfigMaps & Secrets
    • StatefulSets & VolumeClaims
    • kubectl & minikube
  2. Learning a Rust framework along the way

This is a very basic app that stores k8 notes with useful information to memorize about Kubernetes!

Tech Stack

To build the application, we will use the following tech stack:

  1. Kubernetes - Obviously
  2. Docker & DockerHub - For our container images
  3. Nginx - For our web server and our ingress
  4. Actix - A Rust framework and the Rust MongoDB driver
  5. Git - For version control
  6. MongoDB - For our database
  7. Optional: WSL, Linux subsystem for Windows

Workflow and Tasks

Task 1: Pre Reqs

Steps

  • Create ConfigMap and Secret
  • Create DockerHub repo

Task 2: Create Actix App

Steps

  • Build Rust app with Cargo
  • Make custom image for the app
  • Push to DockerHub
  • Deploy to k8 and test endpoint with minikube service

Task 3: Create MongoDB

Steps

  • Deploy MongoDB with persistent volume
  • Test Actix app integration with MongoDB

Task 4: Configure Ingress

Steps

  • Create ingress for Actix app and test

Task 5: Create Web Server

Steps

  • Make custom image for Nginx web server
  • Push to DockerHub
  • Deploy to k8 and test with minikube service

Task 6: Final Integration

Steps

  • Add web service to ingress
  • Test the entire application

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published