QUẢN LÝ NODE TRONG CỤM KUBERNETES

Quản lý Node trong cụm Kubernetes — So sánh giữa môi trường Managed và Unmanaged

Kubernetes (K8S) là nền tảng điều phối container phổ biến nhất hiện nay, cung cấp khả năng mở rộng, tự phục hồi và tự động hóa mạnh mẽ. Một trong những thao tác quan trọng trong quản trị Kubernetes là thêm hoặc xóa node — các máy chủ thực thi các container. Tuy nhiên, cách thực hiện thao tác này sẽ khác nhau tùy thuộc vào việc bạn sử dụng Kubernetes được quản lý (Managed) hay tự quản lý (Unmanaged). Bài viết này sẽ phân tích chi tiết quy trình và điểm khác biệt giữa hai mô hình.

Có thể bạn quan tâm: Kiến trúc Kubernetes là gì? Tìm hiểu tổng quan và các thành phần chính

Kubernetes tự quản lý (Unmanaged): toàn quyền kiểm soát

Trong ngữ cảnh Kubernetes, tự quản lý (unmanaged) đề cập đến việc người quản trị chịu trách nhiệm hoàn toàn cho việc cài đặt, cấu hình, vận hành và bảo trì toàn bộ cụm Kubernetes, bao gồm cả control plane (các thành phần quản lý như API server, scheduler, controller manager) và các node (máy chủ chạy workload).

Không giống như các dịch vụ Kubernetes được quản lý (managed) như:  Sun Kubernetes Service (SKS) GKE (Google Kubernetes Engine), EKS (Amazon Elastic Kubernetes Service) hay AKS (Azure Kubernetes Service), nơi nhà cung cấp đám mây xử lý phần lớn các tác vụ quản trị, Kubernetes tự quản lý yêu cầu:

  • Toàn quyền kiểm soát: Người quản trị tự cài đặt và cấu hình mọi thành phần, từ hệ điều hành, container runtime (như Docker, containerd), đến các công cụ như kubeadm, kubelet, kubectl.
  • Tính linh hoạt cao: Có thể tùy chỉnh cụm theo nhu cầu cụ thể, nhưng đổi lại cần kiến thức sâu về Kubernetes và khả năng xử lý sự cố.
  • Trách nhiệm cao: Quản trị viên phải tự xử lý các vấn đề như nâng cấp phiên bản, bảo mật, sao lưu, và mở rộng cụm.

Với cụm Kubernetes tự quản lý, người quản trị chịu trách nhiệm hoàn toàn trong việc cài đặt, cấu hình và duy trì cả control plane và các node. Dưới đây là hướng dẫn chi tiết để thêm và xóa node:

Thêm node

Bước 1: Chuẩn bị máy chủ mới:

  • Tạo một máy ảo hoặc máy vật lý cho node mới.
  • Cài đặt hệ điều hành (ví dụ: Ubuntu, CentOS) phù hợp với yêu cầu của Kubernetes.
  • Cấu hình mạng: đảm bảo máy chủ có kết nối mạng ổn định, đặt hostname, và cấu hình DNS nếu cần.
  • Cập nhật hệ điều hành và cài đặt các gói cần thiết

Bước 2: Cài đặt các thành phần cần thiết:

  • Cài đặt container runtime (ví dụ: Docker hoặc containerd runtime khác )
  • Cài đặt kubeadm, kubelet, kubectl

Bước 3: Tham gia cụm

  • Trên node mới, chạy lệnh kubeadm join được cung cấp từ node master.

Bước 4: Xác minh

Dùng kubectl get nodes để kiểm tra node đã được thêm thành công.

Xóa node

Bước 1. Drain node:
Bước 2. Xóa node khỏi cụm:
Bước 3. Reset node (trên chính node đó):
Mô hình này mang lại sự linh hoạt tối đa nhưng đòi hỏi kiến thức chuyên sâu và khả năng xử lý sự cố tốt.

Có thể bạn quan tâm: Hướng dẫn triển khai Kubernetes cho người mới bắt đầu

Kubernetes được quản lý (Managed): Đơn giản hóa và tự động hóa

Các dịch vụ Kubernetes được quản lý (Managed K8S) như Sun Kubernetes Service, Amazon EKS (Elastic Kubernetes Service), Google GKE (Kubernetes Engine), và Azure AKS (Kubernetes Service) giúp giảm đáng kể gánh nặng quản trị bằng cách tự động hóa các tác vụ phức tạp liên quan đến cài đặt, quản lý, và vận hành cụm Kubernetes. Những dịch vụ này cho phép các tổ chức tập trung vào việc triển khai và phát triển ứng dụng thay vì phải xử lý các chi tiết kỹ thuật của control plane và node. Dưới đây là chi tiết về Kubernetes được quản lý, bao gồm lợi ích, tính năng, và so sánh với mô hình tự quản lý.

Lợi ích của Kubernetes Service được quản lý

  • Đơn giản hóa triển khai:

Các dịch vụ như GKE, EKS, AKS, và SKS/K8S tự động thiết lập cụm Kubernetes, bao gồm control plane (API server, scheduler, controller manager, etcd) và các node công việc. Người dùng có thể tạo một cụm chỉ với vài thao tác trên giao diện web hoặc dòng lệnh, mà không cần cài đặt thủ công các công cụ như kubeadm hoặc cấu hình mạng phức tạp.

  • Tự động hóa vận hành: Nâng cấp tự động:

Các nhà cung cấp dịch vụ đảm bảo cụm luôn chạy phiên bản mới nhất của Kubernetes, bao gồm vá bảo mật và cập nhật tính năng. Ví dụ, GKE hỗ trợ nâng cấp tự động cho control plane và node/
Tự phục hồi (Self-healing): Các dịch vụ này tự động phát hiện và thay thế các node bị lỗi, đảm bảo tính sẵn sàng cao (high availability).
Quản lý mở rộng: Tự động điều chỉnh quy mô cụm dựa trên tải lượng với các tính năng như Cluster Autoscaler hoặc Karpenter (trong EKS).

  • Tích hợp hệ sinh thái đám mây:
    • GKE: Tích hợp chặt chẽ với Google Cloud, hỗ trợ các dịch vụ như Cloud Storage, BigQuery, và Stackdriver cho giám sát và ghi log.nordicapis.com\
    • EKS: Kết nối dễ dàng với AWS IAM, VPC, và các dịch vụ như S3, RDS, hoặc CloudWatch.
    • AKS: Tích hợp với Azure Active Directory, Azure Monitor, và Azure Container Registry, đặc biệt phù hợp với các tổ chức sử dụng hệ sinh thái Microsoft.
    • Sun kubernetes service/SKS: Cung cấp giải pháp linh hoạt, có thể triển khai trên hạ tầng tại chỗ hoặc đám mây, phù hợp với các doanh nghiệp tại Việt Nam muốn tối ưu hóa chi phí và tuân thủ quy định địa phương.
  • Bảo mật nâng cao:

Các dịch vụ được quản lý cung cấp các tính năng bảo mật tích hợp, như mã hóa dữ liệu tại trạng thái nghỉ (data at rest), quản lý quyền truy cập dựa trên vai trò (RBAC), và chính sách mạng (network policies). Ví dụ, GKE sử dụng Cloud KMS để mã hóa, còn AKS tích hợp với Microsoft Entra ID.

Nhà cung cấp chịu trách nhiệm vá lỗi bảo mật cho control plane, giảm nguy cơ bị tấn công.

  • Tiết kiệm chi phí vận hành:

Mặc dù có phí quản lý (ví dụ: EKS tính $0.10/giờ cho mỗi cụm, khoảng $72/tháng), các dịch vụ này giảm chi phí nhân sự và thời gian cần thiết để quản lý cụm so với mô hình tự quản lý.
AKS nổi bật với control plane miễn phí (trừ khi cần SLA cao, lúc đó tính $0.10/giờ), giúp tiết kiệm chi phí cho các tổ chức nhỏ.

Cách thêm Node

1. Sử dụng giao diện hoặc CLI của nhà cung cấp:
• EKS: Thêm node qua Node Group hoặc Auto Scaling Group.
• GKE: Dùng lệnh gcloud container clusters resize.
• AKS: Dùng az aks nodepool scale.
• Sun Kubernetes Service: Thêm node trên giao diện
2. Tự động mở rộng (autoscaling): Hầu hết các dịch vụ đều hỗ trợ tự động thêm node khi tải tăng.
3. Xác minh: Node sẽ tự động xuất hiện trong cụm khi được tạo thành công.

Cách xóa Node
Bước 1: Giảm số lượng node:
• Thực hiện qua giao diện hoặc CLI của nhà cung cấp. Ví dụ (Sun Kubernetes Service:, GKE):
Bước 2:  Drain node: Một số dịch vụ thực hiện tự động, nhưng bạn cũng có thể làm thủ công bằng kubectl drain.
Bước 3. Xóa node: Hạ tầng sẽ được nhà cung cấp xử lý tự động.
Mô hình này phù hợp với các tổ chức muốn giảm tải vận hành và tập trung vào phát triển ứng dụng.

Kết luận
Dù bạn sử dụng Kubernetes được quản lý hay tự quản lý, việc thêm hoặc xóa node là thao tác thiết yếu để đảm bảo hiệu suất và tối ưu chi phí. Mô hình tự quản lý mang lại sự linh hoạt nhưng đòi hỏi kỹ năng cao, trong khi mô hình được quản lý giúp đơn giản hóa quy trình và phù hợp với các nhóm DevOps hiện đại. Việc hiểu rõ sự khác biệt sẽ giúp bạn lựa chọn giải pháp phù hợp với nhu cầu tổ chức

Tags: .

Bạn cần chuyên gia tư vấn giải pháp Cloud phù hợp?

Vui lòng để lại thông tin, chúng tôi sẽ liên hệ với bạn trong thời gian sớm nhất!