0
0
Lập trình
Flame Kris
Flame Krisbacodekiller

Giải Thích Kiến Trúc Kubernetes: Master & Worker Nodes

Đăng vào 6 tháng trước

• 4 phút đọc

Giới Thiệu

Kubernetes là một trong những nền tảng quản lý container mạnh mẽ nhất hiện nay. Tuy nhiên, kiến trúc của nó có thể khiến nhiều người cảm thấy choáng ngợp. Bài viết này sẽ giúp bạn hiểu rõ hơn về cấu trúc của Kubernetes bằng cách phân chia thành hai phần: Master (Control Plane) và Worker Nodes.

Mục Lục

  1. Các Thành Phần Của Kubernetes Master
  2. Các Thành Phần Của Kubernetes Worker Node
  3. Thực Hành Tốt Nhất
  4. Những Cạm Bẫy Thường Gặp
  5. Mẹo Tối Ưu Hiệu Suất
  6. Khắc Phục Lỗi Thường Gặp
  7. Kết Luận

🧠 Các Thành Phần Của Kubernetes Master (Control Plane)

Control Plane là bộ não của cụm Kubernetes. Nó quản lý trạng thái cụm, đưa ra quyết định lên lịch và phản hồi các sự kiện.

🔹 kube-apiserver

  • Là giao diện phía trước của control plane Kubernetes.
  • Cung cấp API của Kubernetes, là cách mà mọi thứ giao tiếp với Kubernetes.
  • Ai tương tác với nó?
    • Người dùng (thông qua kubectl hoặc API calls)
    • Các thành phần master khác (scheduler, controller manager, etcd)
    • Các thành phần worker node như Kubelet

🔹 etcd

  • Một kho lưu trữ key-value nhất quán và có tính khả dụng cao.
  • Lưu trữ tất cả dữ liệu của cụm: cấu hình, trạng thái của master và worker nodes, secrets, v.v.
  • Hãy nghĩ về nó như là nguồn sự thật của Kubernetes.

🔹 kube-scheduler

  • Chịu trách nhiệm phân phối Pods trên các nodes.
  • Theo dõi các Pods mới chưa có node được chỉ định và chọn một node phù hợp cho chúng.

🔹 kube-controller-manager

Chạy các controller khác nhau để giữ cho cụm luôn khỏe mạnh:

  • Node Controller → Phát hiện và phản ứng khi có node bị ngừng hoạt động.
  • Replication Controller → Đảm bảo số lượng Pods đang chạy là chính xác.
  • Endpoints Controller → Kết hợp Services và Pods bằng cách cập nhật các đối tượng Endpoints.
  • Service Account & Token Controller → Tạo tài khoản mặc định và quyền truy cập API cho các namespace mới.

Các controller thực sự giống như “autopilot” của Kubernetes.

🔹 cloud-controller-manager

  • Nhúng logic điều khiển cụ thể cho đám mây (chỉ chạy trong môi trường đám mây).
  • Các cụm on-prem không có thành phần này.
  • Các trách nhiệm bao gồm:
    • Node Controller → Kiểm tra với nhà cung cấp đám mây nếu một node bị xóa.
    • Route Controller → Thiết lập các tuyến đường trong cơ sở hạ tầng đám mây.
    • Service Controller → Quản lý các bộ cân bằng tải trong đám mây.
    • Các controller khác phụ thuộc vào tích hợp Kubernetes của nhà cung cấp đám mây.

⚙️ Các Thành Phần Của Kubernetes Worker Node

Worker nodes là nơi mà các ứng dụng của bạn thực sự chạy. Mỗi worker node có các thành phần giúp duy trì Pods và làm cho mạng có thể hoạt động.

🔹 Container Runtime

  • Phần mềm cơ bản chạy các container.
  • Trong GKE, mặc định là containerd.
  • Các tùy chọn khác: Ubuntu với containerd, Ubuntu với Docker, nodes Windows.

🔹 Kubelet

  • Đại lý chạy trên mỗi node.
  • Đảm bảo các container đang chạy trong Pods như mong đợi.
  • Giao tiếp với kube-apiserver và báo cáo trạng thái node.

🔹 Kube-Proxy

  • Một proxy mạng chạy trên mỗi node.
  • Duy trì các quy tắc mạng để cho phép lưu lượng vào/ra khỏi các Pods.
  • Đảm bảo các dịch vụ bên trong cụm có thể truy cập từ bên trong và bên ngoài.

🚀 Thực Hành Tốt Nhất

  • Sử dụng Version Control: Đảm bảo rằng cấu hình và mã nguồn của bạn được quản lý bằng hệ thống kiểm soát phiên bản như Git.
  • Giám sát Cụm: Sử dụng các công cụ giám sát như Prometheus để theo dõi hiệu suất và trạng thái của cụm.
  • Sao lưu etcd: Đảm bảo rằng bạn thực hiện sao lưu thường xuyên cho cơ sở dữ liệu etcd để tránh mất mát dữ liệu.

Những Cạm Bẫy Thường Gặp

  • Không cấu hình đúng quyền truy cập: Đảm bảo rằng các quyền truy cập được thiết lập chính xác để tránh rủi ro bảo mật.
  • Bỏ qua quy trình cập nhật: Luôn luôn cập nhật Kubernetes và các thành phần của nó để bảo mật và hiệu suất tốt nhất.

Mẹo Tối Ưu Hiệu Suất

  • Tối ưu hóa cấu hình Pods: Điều chỉnh các tham số như CPU và RAM cho Pods để đảm bảo hiệu suất cao.
  • Sử dụng Horizontal Pod Autoscaler: Tự động mở rộng số lượng Pods dựa trên tải công việc.

Khắc Phục Lỗi Thường Gặp

  • Node không phản hồi: Kiểm tra trạng thái của node và khởi động lại nếu cần thiết.
  • Pod không khởi động: Kiểm tra logs của Pod và kubelet để tìm hiểu nguyên nhân gốc rễ.

Kết Luận

Kiến trúc Kubernetes được xây dựng xung quanh một Control Plane (Masters) đưa ra quyết định và Worker Nodes thực hiện các công việc.

  • Control Plane = bộ não (API server, etcd, scheduler, controllers).
  • Worker Nodes = cơ bắp (container runtime, kubelet, kube-proxy).

Cùng nhau, chúng tạo nên một hệ thống quản lý tự phục hồi, có thể mở rộng và mạnh mẽ để chạy các ứng dụng của bạn.

🌟 Cảm ơn bạn đã đọc! Nếu bài viết này mang lại giá trị, hãy nhấn like ❤️, theo dõi hoặc chia sẻ để khuyến khích tôi tiếp tục tạo ra nhiều nội dung hơn.

— Latchu | Kỹ Sư DevOps & Cloud Cao Cấp
☁️ AWS | GCP | ☸️ Kubernetes | 🔐 Bảo Mật | ⚡ Tự Động Hóa
📌 Chia sẻ hướng dẫn thực tế, phương pháp tốt nhất & giải pháp đám mây thực tế.

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào