Kubernetes Architecture
1. Kubernetes Architecture là gì?
Kubernetes là một hệ thống quản lý container mạnh mẽ, giúp triển khai, mở rộng và quản lý ứng dụng container một cách tự động. Hiểu rõ kiến trúc của Kubernetes sẽ giúp bạn dễ dàng triển khai và tối ưu hóa hệ thống.
Kubernetes gồm hai thành phần chính:
Control Plane (Mặt phẳng điều khiển)
Worker Nodes (Các nút làm việc)
Ngoài ra, Kubernetes còn có các thành phần mở rộng như Networking, Storage, và Security để hỗ trợ hệ thống.
2. Chi tiết kiến trúc Kubernetes và ví dụ minh họa
2.1. Control Plane (Mặt phẳng điều khiển)
Control Plane là trung tâm điều phối của Kubernetes, chịu trách nhiệm quản lý toàn bộ cluster.
API Server
Là thành phần trung gian, giao tiếp giữa người dùng và hệ thống Kubernetes.
Ví dụ: Khi bạn chạy lệnh
kubectl get pods
, API Server xử lý yêu cầu và trả kết quả.Cách kiểm tra API Server:
Controller Manager
Quản lý vòng đời của các đối tượng trong Kubernetes như Pod, ReplicaSet, Node, Service, v.v.
Ví dụ: Nếu một Pod bị lỗi, Controller Manager sẽ tạo một Pod mới thay thế.
Scheduler
Gán các Pod mới đến các Node phù hợp dựa trên tài nguyên và chính sách.
Ví dụ: Khi một Pod được tạo, Scheduler sẽ tìm Node phù hợp để chạy Pod đó.
etcd
Lưu trữ toàn bộ dữ liệu của cluster dưới dạng key-value.
Ví dụ: Để kiểm tra dữ liệu trong etcd, bạn có thể chạy:
2.2. Worker Nodes (Các nút làm việc)
Mỗi Worker Node chứa các thành phần giúp chạy ứng dụng trên Kubernetes.
Kubelet
Đảm bảo rằng các container trên Node luôn chạy như mong muốn.
Ví dụ: Kiểm tra trạng thái Kubelet trên một Node:
Kube Proxy
Định tuyến mạng giữa các Pod và Service.
Ví dụ: Nếu một Pod muốn giao tiếp với một Service, Kube Proxy sẽ xử lý kết nối.
Container Runtime
Chạy các container, phổ biến nhất là Docker hoặc containerd.
Ví dụ: Kiểm tra container runtime:
2.3. Networking trong Kubernetes
Kubernetes cung cấp nhiều mô hình mạng để đảm bảo giao tiếp giữa các Pod.
Cluster Networking
Mỗi Pod có một địa chỉ IP duy nhất trong cluster.
Ví dụ: Kiểm tra IP của một Pod:
Service Networking
Tạo một tầng mạng ổn định giữa các Pod.
Ví dụ: Tạo một Service để truy cập ứng dụng:
2.4. Storage trong Kubernetes
Kubernetes hỗ trợ nhiều loại Storage để lưu trữ dữ liệu bền vững.
Persistent Volume (PV) và Persistent Volume Claim (PVC)
Quản lý ổ đĩa cho các ứng dụng trong Kubernetes.
Ví dụ: Tạo một PVC để gắn vào Pod:
2.5. Security trong Kubernetes
Kubernetes cung cấp nhiều cơ chế bảo mật như RBAC, Network Policies, và Pod Security Policies.
Role-Based Access Control (RBAC)
Kiểm soát quyền truy cập trong cluster.
Ví dụ: Tạo một Role chỉ cho phép đọc Pod:
Network Policies
Kiểm soát giao tiếp giữa các Pod.
Ví dụ: Chặn tất cả kết nối đến một Pod trừ khi đến từ một namespace cụ thể:
3. Kết luận
Kiến trúc Kubernetes giúp hệ thống có khả năng mở rộng, tự động hóa, và đảm bảo tính linh hoạt cao. Việc hiểu rõ các thành phần này sẽ giúp bạn vận hành Kubernetes một cách hiệu quả.
Hy vọng bài viết này giúp bạn hiểu sâu hơn về Kubernetes Architecture! 🚀
Last updated