Kubernetes Hands-On Self-Paced Course (Free)
Tags: kubernetes, docker, devops, tutorial
Published: 2021-04-13 17:11:14

Create a local Kubernetes development environment on macOS or Windows and WSL2.

Throughout this self-paced course, you'll gain hands-on experience with:

- Creating a local Kubernetes cluster with [minikube](https://minikube.sigs.k8s.io/docs/start/)
- Deploying applications in Kubernetes using [kubectl](https://kubernetes.io/docs/reference/kubectl/kubectl/) and this project's YAML files
- Serving applications securely via HTTPS with [NGINX Ingress Controller](https://github.com/kubernetes/ingress-nginx/) (LoadBalancer) and [cert-manager](https://github.com/jetstack/cert-manager)
- Managing Kubernetes resources as packages using [Helm v3](https://helm.sh/)
- Authenticating users with Google as an Identity Provider (IdP), implementing both [OAuth2](https://oauth.net/2/) and [OAuth2+OIDC](https://openid.net/connect/) using [oauth2-proxy](https://github.com/oauth2-proxy/oauth2-proxy)
- Building the containerized web-server application [docker-cats](https://github.com/unfor19/docker-cats) and deploying it to the Kubernetes cluster with [kubectl rollout](https://kubernetes.io/docs/reference/kubectl/cheatsheet/#updating-resources)

## Link To Course

Open-source project @ [GitHub unfor19/kubernetes-localdev](https://github.com/unfor19/kubernetes-localdev)

## Sneak Peek Of The Architecture

By the end of this course, you'll deploy the below architecture on your local machine.

![kubernetes-localdev-architecture](https://d33vo9sj4p3nyc.cloudfront.net/kubernetes-localdev/kubernetes-localdev-architecture.png?dummy=null)

## Table Of Contents

- [Architecture](https://github.com/unfor19/kubernetes-localdev#architecture)
- [Requirements](https://github.com/unfor19/kubernetes-localdev#requirements)
- [Create a Kubernetes Cluster](https://github.com/unfor19/kubernetes-localdev#create-a-kubernetes-cluster)
- [Enable secured HTTPS access from Windows to WSL2](https://github.com/unfor19/kubernetes-localdev#enable-secured-https-access-from-windows-to-wsl2)
- [Configure LENS](https://github.com/unfor19/kubernetes-localdev#configure-lens)
- [NGINX Ingress Controller](https://github.com/unfor19/kubernetes-localdev#nginx-ingress-controller)
- [Support DNS resolution in Windows host](https://github.com/unfor19/kubernetes-localdev#support-dns-resolution-in-windows-host)
- [HTTP](https://github.com/unfor19/kubernetes-localdev#http)
- [HTTPS](https://github.com/unfor19/kubernetes-localdev#https)
  - [Create A Certificate Authority (CA) Certificate And Key](https://github.com/unfor19/kubernetes-localdev#create-a-certificate-authority-ca-certificate-and-key)
  - [Load CA Certificates To A Kubernetes Secret](https://github.com/unfor19/kubernetes-localdev#load-ca-certificates-to-a-kubernetes-secret)
  - [Install Cert-Manager And Issue A Self-Signed Certificate](https://github.com/unfor19/kubernetes-localdev#install-cert-manager-and-issue-a-self-signed-certificate)
- [Authentication - OAuth2](https://github.com/unfor19/kubernetes-localdev#authentication---oauth2)
  - [Create Google's Credentials](https://github.com/unfor19/kubernetes-localdev#create-googles-credentials)
  - [Create Kubernetes Secrets For Google's Credentials](https://github.com/unfor19/kubernetes-localdev#create-kubernetes-secrets-for-googles-credentials)
  - [Deploy OAuth2-Proxy And Protect An Application](https://github.com/unfor19/kubernetes-localdev#deploy-oauth2-proxy-and-protect-an-application)
- [Authentication - OIDC](https://github.com/unfor19/kubernetes-localdev#authentication---oidc)
  - [Deploy OAuth2-Proxy And Use OIDC](https://github.com/unfor19/kubernetes-localdev#deploy-oauth2-proxy-and-use-oidc)
- [Authentication Summary](https://github.com/unfor19/kubernetes-localdev#authentication-summary)
- [Local Development (CI) And Deployment (CD)](https://github.com/unfor19/kubernetes-localdev#local-development-ci-and-deployment-cd)
  - [Build The Application (CI)](https://github.com/unfor19/kubernetes-localdev#build-the-application-ci)
  - [Deploy The Application (CD)](https://github.com/unfor19/kubernetes-localdev#deploy-the-application-cd)
- [Cleanup](https://github.com/unfor19/kubernetes-localdev#cleanup)
- [Troubleshooting](https://github.com/unfor19/kubernetes-localdev#troubleshooting)