
Điều phối và Triển khai Ứng dụng Container (Container Orchestration Fundamentals)
Khi ứng dụng phát triển thành nhiều container và cần mở rộng, phục hồi, cập nhật liên tục, ta cần đến một hệ thống điều phối – orchestration. Khóa học này giúp học viên hiểu và thực hành điều phối container với Kubernetes, từ kiến trúc cho đến triển khai, cập nhật, scale, volume, config, health check, networking, và các khái niệm thực chiến trong môi trường DevOps. Đây là cánh cổng để bước vào vận hành hệ thống hiện đại, cloud-native hoặc hybrid.
Thời lượng: 18h

Bạn đạt được gì sau khi hoàn thành khóa học

Hiểu rõ kiến trúc và các thành phần cốt lõi của Kubernetes
Bạn sẽ giải thích được vai trò của Control Plane (API Server, Scheduler) và các Worker Node, tạo nền tảng vững chắc để chẩn đoán và vận hành một cluster hiệu quả.

Thành thạo việc viết file manifest YAML để triển khai ứng dụng
Tự tin khai báo các tài nguyên quan trọng nhất như Pod, Deployment, và Service để mô tả trạng thái mong muốn của ứng dụng một cách tường minh và có thể quản lý bằng mã nguồn.
Làm chủ quy trình cập nhật, mở rộng và tự phục hồi cho ứng dụng
Thực hiện rolling update để nâng cấp ứng dụng không gián đoạn, scale ứng dụng để đáp ứng tải, và tận dụng khả năng tự chữa lành (self-healing) của Kubernetes khi có lỗi.

Cấu hình kết nối mạng và khám phá dịch vụ (service discovery)
Hiểu và sử dụng các loại Service (ClusterIP, NodePort) để cho phép các thành phần của ứng dụng giao tiếp với nhau và tiếp cận từ bên ngoài một cách tin cậy.
Quản lý cấu hình và dữ liệu bền bỉ cho các ứng dụng có trạng thái
Sử dụng ConfigMap và Secret để tách biệt cấu hình khỏi code, và dùng PersistentVolume/PVC để đảm bảo dữ liệu quan trọng không bị mất khi Pod khởi động lại.

Xây dựng hệ thống có khả năng phục hồi cao qua cơ chế kiểm tra sức khỏe
Cấu hình Liveness và Readiness Probes để Kubernetes có thể tự động phát hiện, loại bỏ và khởi động lại các container bị lỗi, đảm bảo dịch vụ luôn ổn định.

Đối tượng tham gia

Kỹ sư DevOps và Cloud chịu trách nhiệm triển khai và vận hành các ứng dụng có quy mô lớn, yêu cầu tính sẵn sàng cao và khả năng tự phục hồi.

Lập trình viên Backend và Kiến trúc sư (Architect) muốn thiết kế và xây dựng các ứng dụng cloud-native, dễ dàng mở rộng và bảo trì theo mô hình microservices.

Kỹ sư Nền tảng (Platform Engineer) có nhiệm vụ xây dựng và duy trì các nền tảng container hóa để các nhóm phát triển khác trong công ty sử dụng.

Quản trị viên hệ thống (System Administrator) muốn nâng cao kỹ năng để quản lý các hệ thống hiện đại, thay thế cho hạ tầng ảo hóa truyền thống.

Yêu cầu tiên quyết
- Làm chủ Docker, Docker Compose
- Biết cơ bản về YAML
- Hiểu mô hình client-server, port, IP
- Biết sử dụng Linux dòng lệnh
Nội dung khóa học
1. Tổng quan về Container Orchestration & Kubernetes
- Vấn đề khi chạy nhiều container: scale, load balancing, update, failover
- Tại sao cần Orchestration?
- Giới thiệu Kubernetes, k3s, Docker Swarm, Nomad (so sánh ngắn)
- Kiến trúc Kubernetes:
- Control plane (API server, scheduler, controller)
- Node, kubelet, container runtime
- Etcd là gì?
2. Cài đặt môi trường Kubernetes
- Cài Minikube, k3s hoặc sử dụng Playground (Katacoda, Play with K8s)
- Công cụ CLI: kubectl, k9s
- kubectl get, describe, apply, logs, exec
- Cấu trúc YAML manifest: apiVersion, kind, metadata, spec
- Namespace: chia môi trường logic
3. Triển khai ứng dụng: Pod, Deployment, ReplicaSet
- Pod: đơn vị nhỏ nhất trong K8s
- Tạo Pod từ YAML hoặc kubectl run
- Deployment:
- Tạo, sửa, xoá, scale
- Rolling update vs recreate
- Versioning và rollback
- ReplicaSet: đảm bảo số lượng bản sao
4. Networking & Service
- Networking trong K8s:
- ClusterIP, NodePort, LoadBalancer, ExternalName
- Cách container giao tiếp với nhau
- DNS trong cluster
- Service Discovery:
- Dùng serviceName.namespace.svc.cluster.local
- Thực hành curl, dig, nslookup trong Pod
- Liveness & Readiness Probe:
- health check cho container
- health check cho container
5. Storage, ConfigMap, Secret
- Volume trong Kubernetes:
- EmptyDir, HostPath, PersistentVolume, PVC
- StorageClass và Dynamic Provisioning (giới thiệu)
- ConfigMap:
- Truyền config vào container
- Mount vào volume hoặc dùng biến môi trường
- Secret:
- Quản lý thông tin nhạy cảm (token, password)
- So sánh với ConfigMap
6. Quản trị & Triển khai ứng dụng thực tế
- RBAC: tạo Service Account, phân quyền
- Label & Selector: lọc tài nguyên
- Tạo môi trường staging, dev bằng namespace
- Kết hợp CI/CD (liên hệ với Jenkins/GitOps)
- Rolling Update nâng cấp phiên bản
- Theo dõi ứng dụng với kubectl rollout, kubectl top
- Clean up cluster, delete tài nguyên đúng cách
7. Bài thực hành tổng hợp
Mini Project: Deploy ứng dụng nhiều tầng lên Kubernetes
Mục tiêu:
- Deploy ứng dụng thực tế trên Kubernetes có cấu trúc: Web + DB + Cấu hình
Yêu cầu:
- Clone project Python Flask (hoặc Node.js + MongoDB)
- Viết YAML:
- Deployment cho app & DB
- ConfigMap chứa biến môi trường (DB info)
- Secret chứa DB password
- Service để truy cập app (NodePort hoặc ClusterIP + Ingress)
- Test:
- Scale app replica lên 3 bản sao
- Update version: rolling update
- Gắn probe để kiểm tra health
- Dùng PVC để lưu trữ dữ liệu
- Bonus:
- Gắn tag v1.0.0 trên Git khi deploy thành công (CI/CD liên hệ)

Bài viết liên quan
