Links and resources used by the Introduction to Kubernetes DevOps Learning Journey course.
@Todo: Windows users: Please fill in the Windows installation prerequisites.
To generate Table of contents, do:
npm update
./node_modules/markdown-toc/cli.js --no-firsth1 README.md
- Notes
- Mac: Install Prerequisites
- Windows: Install Prerequisites
- Classroom
- What is Kubernetes
- Get Started: Local Kubernetes
- Azure Kubernetes Connect
- Kubernetes Connect
- (Azure) Kubernetes Connect 101
- Go, gRPC and Kubernetes (Optional)
- Kubernetes 101 (1st section)
- Kubernetes 101 (2nd section)
- Kubernetes 101 (3rd section - Optional/extra credit)
- Azure Kubernetes 201
- Kubernetes Dashboard
- Wordpress on Kubernetes
- Elastic Search on K8s
- Kubernetes Stateful Application
- Kubernetes Configmap
- Kubernetes & Prometheus (Metrics)
- SPIFFE Secure Certificate Example (Optional)
- Kubernetes Secrets
- K8s Networking Explained (Optional)
- Minikube CICD on Jenkins
- Artifactory on Kubernetes
- Deploy Cassandra with Stateful Sets
- Helm (Package manager) on Kubernetes
- Additional Resources
If you have VPN connected, you may encounter problems with your local docker connecting to a remote registry. Disconnect from VPN and then restart your terminal before continuing.
- Mac users should be able to download most tools and utilities using brew.
- Windows users may be able to download many tools and utilities using Chocolatey.
-
Install Xcode from the App Store, or from Apple Developer Downloads
-
Install Homebrew using the following command:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
-
Install Tools and Utilities:
- kubectl, minikube, Docker, Vagrant, VirtualBox, Docker Compose, Docker Machine, Docker Machine driver xhyve, Azure-CLI, and NodeJS.
brew cask install docker brew cask install minikube brew cask install vagrant brew cask install virtualbox brew install kubernetes-cli brew install docker-compose brew install docker-completion brew install docker-compose-completion brew install docker-machine-driver-xhyve brew install azure-cli brew install nodejs
-
Set the preferences for the docker machine driver:
sudo chown root:wheel $(brew --prefix)/opt/docker-machine-driver-xhyve/bin/docker-machine-driver-xhyve sudo chmod u+s $(brew --prefix)/opt/docker-machine-driver-xhyve/bin/docker-machine-driver-xhyve
...
Introduction reading and video:
- Minikube Tutorial
- Install Hypervisor (Virtualbox, etc)
- Stand up minikube and test
- Deploy an Azure Container Service (AKS) cluster - Will not currently work for connected cloud subscriptions.
- Login to Azure
- Download CLI and Login with CLI
- Create a cluster or use existing cluster created earlier.
- Execute the nginx example.
- Tutorial: Prepare application for Azure Container Service (AKS)
- Tutorial: Deploy and use Azure Container Registry
- Note: If creating a registry in Azure is not possible, consider using your own public registry/repos in Docker Hub.
- Create container images and run voting app locally. -- requires docker compose.
- Upload voting app images to container registry created in step 2.
- Getting Started with Microservices using Go, gRPC and Kubernetes
- Source code for Getting Started with Microservices using Go, gRPC and Kubernetes
- Define Simple Services
- Comm protocol
- Common Divisor Services
- Frontend API Service
- Build Docker Images
- Deploy to K8s Cluster
-
Clone workshop Repo
git clone https://github.com/gravitational/workshop.git
-
Classroom work: Running Nginx
- Standup Nginx
- Curl service from Tutum container
- Explore within the container
-
Follow sections:
- Running nginx
- Pod IPs
- Pod Containers
-
Clone workshop Repo
git clone https://github.com/gravitational/workshop.git
-
Classroom work sections:
- Deployments and Replicasets
- Services
- Back to Deployments
- Configuration management basics
-
Clone workshop Repo
git clone https://github.com/gravitational/workshop.git
-
Sections: Connecting Services
Note: Requires a private registry locally or use of cloud registry, such as Docker Hub.
- Tutorials #3-5, Run and scale application exercises.
- Tutorials 6 and 7 require docker-compose.
- 3: Deploy an Azure Container Service (AKS) cluster
- 4: Run applications in Azure Container Service (AKS)
- 5: Scale application in Azure Container Service (AKS)
- Caution: Scaling nodes could come with some risk in the Class Azure subscription. Such as losing connection to your K8s master in your cluster. This happened to one engineer in DLJ#1 class. Cause unknown.
- 6: Update an application in Azure Container Service (AKS)
- 7: Monitor Azure Container Service (AKS)
- Tunnel to a local version of the kubernetes dashboard
- Expose and edit two services within the kubernetes dashboard
- Create persistent volume
- Create secret for MySQL password
- Launch Wordpress
-
Clonse the examples repo
-
Deploy elasticsearch
-
Verify functionality
-
Clone Kubernetes Examples repo
git clone git@github.com:kubernetes/examples.git
-
Follow Elastic Search Tutorial
Bonus:
-
Deploy production ready cluster
git clone git@github.com:pires/kubernetes-elasticsearch-cluster.git
-
Bonus #2: Expose Kibana
- Stand up and watch stateful mysql instances
- Query and verify connectivity
- Create Configmap
- Consume Configmap in environment variables
- Set command line using Configmap
- Consume Configmap in Volume
-
Use wget to get the files for the exercise...
wget http://pwittrock.github.io/docs/user-guide/configmap/configmap.yaml wget http://pwittrock.github.io/docs/user-guide/configmap/env-pod.yaml wget http://pwittrock.github.io/docs/user-guide/configmap/command-pod.yaml wget http://pwittrock.github.io/docs/user-guide/configmap/volume-pod.yaml wget http://pwittrock.github.io/docs/user-guide/configmap/mount-file-pod.yaml
-
Then apply using: (for example...)
kubectl create -f configmap.yaml
- Stand up Prometheus
- Gather and monitor metrics
- Install Virtual Box & Vagrant
- Standup K8s vagrant machines
- Run demo
- Create Secret config file and pods
- Install and Launch Vault
- (Optional) Challenge: Replicate Vault Secrets into Kubernetes
- Docker Networking Example
- CNI Basics
- Requires access to Kubernetes host if not using minikube
- Install Prerequisites (Node, etc)
- Setup Jenkins
- (Optional) Puzzle App Part 1
- (Optional) Puzzle App Part 2
- Create Cassandra Headless Service
- Create a Cassandra Ring
- Validate the Stateful Set
- Modify the Stateful Set
- Verify Helm is working
- Install nginx-ingress
- Curated list for awesome kubernetes sources
- Kubernetes by Example - A hands-on introduction to Kubernetes
- kubectl Reference Cheat Sheet
- Kubernetes Community Resources
- Kubernetes Community Resources - Cheat Sheet
- Configure Access to Multiple Clusters
- Running Kubernetes in Azure - Basic information on options available.
- Deploy a Kubernetes Cluster using ACS-Engine - Getting started information.
- Azure ACS-Engine Examples and Walkthroughs