5.7 K8s Design Patterns

Structure
- The exercise book
- Introduction and learning objectives
- Structure of the book
- Scenario-based Kubernetes system design
- Architectural design before implementation
- Hands-on exercises
- Single-container application deployment
- Multi-container application deployment
- Namespace-isolated application deployment
- Resilient application deployment
- Internet-facing application deployment
Bibliography
(i.e., material that you must read to study the lesson)
- Kubernetes System Design in Small Easy Steps ( https://isislab-unisa.github.io/kubernetes-system-design )
- Exam Playground ( https://killercoda.com/isislab/scenario/exam-playground )
Other useful information and other links
(i.e., material that you may want to read to deepen the comprehension)
- Pods | Kubernetes
- Deployments | Kubernetes
- Services | Kubernetes
- Namespaces | Kubernetes
- Gateway API | Kubernetes
- Some examples: GitHub - mkimuram/k8sviz: Generate Kubernetes architecture diagrams from the actual state in a namespace
- From original documentation: community/icons at master · kubernetes/community · GitHub
Recap Questions
(recap questions that can help you revise the material you studied and that may be also asked at the oral exam 😊 )
- How does the requirement for internal-cluster access only influence the choice of Kubernetes Service type?
- What are some common use cases for sidecar containers in Kubernetes Pods?
- What resources can be shared by containers running inside the same Pod to communicate?
- How can the same application be deployed separately in staging and production environments?
- How can you verify that two Services are isolated in different Namespaces?
- Which deployment choice is appropriate when the software does not need to be highly available?
- When would you use a Gateway?
- How can BusyBox be used to test connectivity inside a Kubernetes cluster?