mirror of
https://github.com/sjpiper145/MakerSkillTree.git
synced 2025-10-16 11:52:50 +02:00
Merge pull request #53 from josephlewis42/jl/feat/kubernetes
Added review for Kubernetes Skill Tree
This commit is contained in:
commit
7a752bafb1
2 changed files with 784 additions and 0 deletions
101
Kubernetes Skill Tree/CHANGELOG.md
Normal file
101
Kubernetes Skill Tree/CHANGELOG.md
Normal file
|
|
@ -0,0 +1,101 @@
|
|||
# Changelog
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
||||
|
||||
## Peer Review 1 [Unreleased]
|
||||
|
||||
### Added
|
||||
|
||||
* More steps to create familiarity with commonly used parts of the sprawling `kubectl` command.
|
||||
* Steps to bringing your own application to Kubernetes:
|
||||
* "Use an image from a private container repository"
|
||||
* "Create a container from your app"
|
||||
* Introduction to additional tools:
|
||||
* "Try an alternative to kubectl like K9s"
|
||||
* "Install the Kubernetes Dashboard"
|
||||
* Milestones for beginner/intermediate/advanced use cases:
|
||||
* Beginner: "Deploy apps for your personal use"
|
||||
* Intermediate: "Run apps for a club on a cluster"
|
||||
* Advanced: "Host apps on the Internet from your cluster"
|
||||
* Places to get more information:
|
||||
* "Explore kubectl's "Troubleshooting" section"
|
||||
* "Explore the Kubernetes Reference Guide"
|
||||
* "Explore the Kubernetes Tutorials"
|
||||
* More gradual exposure to different concepts:
|
||||
* "Set up health check probes on your workloads" for the different kinds of health checks
|
||||
* "Set up two workloads that communicate" for in-cluster DNS
|
||||
* "Deploy a stateless app" the first major step after a Hello, World Pod is deploying
|
||||
something that doesn't need to store data.
|
||||
* "Expose a Deployment using a Service" step to show that Deployments and Pods work similarly.
|
||||
* "Create a multi-container Pod" for sidecars
|
||||
* "Use headless Services for service discovery" for service discovery
|
||||
* "Deploy a non-HTTP workload e.g. FTP server" for TCP networking, which is more primitive
|
||||
* "Optimize your workload container sizes" for cost savings and performance
|
||||
* "Set up ServiceAccounts for your workloads" for security and cluster sharing
|
||||
* "Share your cluster with a second person" for practical RBAC
|
||||
* "Configure a Deployment for high availability updates" for proper use of Deployments
|
||||
* Different options to get Kubernetes clusters:
|
||||
* "Deploy a cluster in the cloud" this is what most people do.
|
||||
* "Set up a cluster from scratch on Raspberry Pis" a common approach for hobbyists with lots of info and
|
||||
varying degrees of difficulty depending on how deep into it you want to go.
|
||||
* Basic operations needs:
|
||||
* Learn how to backup and restore your cluster
|
||||
* Make your cluster reproducible with Terraform
|
||||
|
||||
### Changed
|
||||
|
||||
* "Create a basic Pod" to "Deploy a 'Hello, World!'' Pod" because it's not obvious what "basic" means.
|
||||
* "Secure sensitive data with Secrets" to "Use a Secret to distribute credentials" because Secrets don't
|
||||
provide much security.
|
||||
* Merged "Set resource requests for Pods" and "Set resource limits for Pods" to
|
||||
"Set resource requests and limits for workloads" because it's the same topic.
|
||||
* "Perform rolling updates and rollbacks" to "Roll back a change to a Deployment" rolling updates are the default,
|
||||
but being able to undo a mistake is very important.
|
||||
* Merged "Control Pod scheduling tolerations" and "Configure Pod affinity and anti-affinity" into
|
||||
"Control scheduling with tolerations and affinity" because they're similar topics.
|
||||
* Replaced "Set up Persistent Volumes and Claims" and "Create StatefulSets for stateful applications" with "
|
||||
Deploy Wordpress and MySQL with Persistent Volumes" to focus on an outcome. This wil point you at the Kubernetes.io
|
||||
tutorial for stateful workloads.
|
||||
* Consolidated topics related to operators and CRDs into: "Develop your own operator and CRDs". This is a niche skill,
|
||||
but it's good to know it's possible.
|
||||
* Consolidated multiple service mesh/advanced networking related solutions to "Deploy a service mesh to your cluster"
|
||||
* Consolidated multiple monitoring items to: "Set up cluster-wide logging and monitoring" and
|
||||
"Set up alerting for unhealthy workloads". Logging/monitoring are usually the same tool and useful by themselves.
|
||||
* Many small wording changes to improve cohesion.
|
||||
|
||||
### Removed
|
||||
|
||||
* "Use Kubectl to manage resources" because it has high overlap with the other skills.
|
||||
* Duplicate "Expose a Pod using a Service"
|
||||
* "Apply network policies to control traffic between Pods" because only some configurations support this out of the box,
|
||||
it silently fails otherwise which would be frustrating for a beginner.
|
||||
* Skills that focus on specific parts of deploying your own cluster, these align better with a platform engineer role
|
||||
than a hobbyist. Some of these are now covered by deploying a cluster on a Raspberry Pi:
|
||||
* "Set up a container runtime e.g. Containerd, CRI-0"
|
||||
* "Set up ingress for external access e.g. NGINX, Traefik"
|
||||
* "Set up a multi-node cluster with kubeadm"
|
||||
* "Set up a cluster using Kubeadm"
|
||||
* "Use Cluster API"
|
||||
* "Use Kubernetes on Bare Metal"
|
||||
* "Use persistent volume provisioners"
|
||||
* "Install and configure a networking solution e.g. Calico, Flannel"
|
||||
* Removed multiple items related to storage, these should be covered enough to get by with the stateful application tile:
|
||||
* "Use external storage solutions with Kubernetes"
|
||||
* "Configure storage class"
|
||||
* "Implement storage solutions with CSI drivers"
|
||||
* Removed multiple skills that start to matter when you have lots of people or large clusters:
|
||||
* "Optimize costs within Kubernetes" partially covered by optimizing workloads
|
||||
* "Use OPA for policies"
|
||||
* "Perform cluster performance tuning"
|
||||
* "Implement GitOps practices" partially covered elsewhere
|
||||
* "Create a blue-green deployment" not best practice in Kubernetes
|
||||
* "Create a canary deployment" already covered with Deployments
|
||||
|
||||
### Fixed
|
||||
|
||||
* Various capitalization issues.
|
||||
* `Kind` to `kind` to match their website
|
||||
* `MiniKube` to `minikube` to match their website
|
||||
* Capitalized Kubernetes types except namespace to be consistent with kubernetes.io
|
||||
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 85 KiB |
Loading…
Add table
Add a link
Reference in a new issue