Managing Microservices using Kubernetes (K8S 微服務管理入門)

  1. Course Number:
  2. 課程目標Course objectives This course teaches students to use Kubernetes to deploy container-based distributed applications. Students start with an overview of Docker and Kubernetes before building their first Kubernetes cluster. Students will gradually expand their initial application, adding features and deepening their knowledge of Kubernetes architecture and operation. As students navigate this comprehensive course, they'll explore high-value topics like monitoring, tuning, and scaling.
  3. Course time: Wednesday 18:10-21:00 (3JKL)
  4. Classroom: TC-209
  5. Textbook:
    1. Marko Lukša, Kubernetes in Action, Manning, January 2018. ISBN:978-1617293726
  6. References:
    1. Hideto Saito, Hui-Chuan Chloe Lee and Cheng-Yang Wu, DevOps with Kubernetes, 2nd Edition, Packt PublishingJanuary 2019.
    2. [Video] Tao W, James Lee and Basit Mustafa’s, Kubernetes Course from a DevOps guru (Kubernetes + Docker), Packt PublishingSeptember 2018
    3. [Video] Gourav Shah and Vijayboopathy Elangovan, The Ultimate Kubernetes Bootcamp by School of Devops®, Packt PublishingJuly 2018
    4. [Video] Sander van Vugt, Modern Container-Based DevOps: Managing Microservices using Kubernetes and Docker, Addison-Wesley Professional, February 2021.
  7. 授課方式Teaching approach: Lectures & Hands-On Exercises
  8. Grading criteria:
  9. Software:
    1. VirtualBox 6.1
    2. PuTTY 0.76
  10. TA協助事項Teaching Assistant tasks: Hands-On Assistance, Presentation Rehearsal

Syllabus

  1. Introducing Kubernetes
  2. First steps with Docker and Kubernetes
  3. Pods: running containers in Kubernetes
  4. Replication and other controllers: deploying managed pods
  5. Services: enabling clients to discover and talk to pods
  6. Volumes: attaching disk storage to containers
  7. ConfigMaps and Secrets: configuring applications
  8. Accessing pod metadata and other resources from applications
  9. Deployments: updating applications declaratively
  10. StatefulSets: deploying replicated stateful applications
  11. Understanding Kubernetes internals
  12. Securing the Kubernetes API server
  13. Securing cluster nodes and the network
  14. Managing pods' computational resources
  15. Automatic scaling of pods and cluster nodes
  16. Advanced scheduling
  17. Best practices for developing apps
  18. Extending Kubernetes