RobustX / Chương trình học / Vị trí công việc / DevOps Engineer / Điều Phối Và Triển Khai Ứng Dụng Container

Đ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

Đối tượng tham gia

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
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:

  1. Clone project Python Flask (hoặc Node.js + MongoDB) 
  2. 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) 
  3. 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 
  4. 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