Email Doanh NghiệpSSLFirewall Anti DDoS

NỘI DUNG

Banner blog lễ 30.4 và 1.5

Static Pods Kubernetes là gì? Hướng dẫn cấu hình và tạo Static Pod Kubernetes chi tiết

Hưng Nguyễn

Đã kiểm duyệt nội dung

Ngày đăng:14/04/2026
Lượt xem

Quy trình sản xuất nội dung

Đánh giá

[esi kkstarratings cache="private" ttl="3"]

Đối với mình, Static Pods Kubernetes không phải là khái niệm lý thuyết khó hiểu mà là thứ mình đã trực tiếp dùng khi cần đảm bảo các thành phần quan trọng luôn chạy ổn định trên node. Trong quá trình triển khai thực tế, mình nhận ra Static Pod đặc biệt hữu ích khi kubelet có thể tự quản lý pod mà không phụ thuộc vào API Server. Bài viết dưới đây sẽ giúp bạn hiểu rõ cách cấu hình và tạo Static Pod Kubernetes một cách chi tiết, dễ áp dụng ngay vào hệ thống.

Những điểm chính

Đối với mình, Static Pod không chỉ là một cách triển khai pod đặc biệt mà còn là công cụ cực kỳ quan trọng trong việc vận hành các thành phần cốt lõi của Kubernetes như control plane. Nếu bạn đang tìm cách hiểu rõ bản chất, cách sử dụng và khi nào nên áp dụng Static Pod, nội dung dưới đây sẽ giúp bạn nắm nhanh toàn bộ bức tranh:

  • Khái niệm: Hiểu rõ Static Pod là Pod được kubelet quản lý trực tiếp từ file manifest trên node, giúp nhận biết vai trò của nó trong việc khởi chạy các thành phần hệ thống quan trọng.
  • Đặc điểm chính: Nắm được các đặc điểm cốt lõi như không phụ thuộc control plane, tự phục hồi ở mức node và có mirror pod, giúp hiểu rõ cách Static Pod hoạt động và khác biệt so với Pod thông thường.
  • Trường hợp sử dụng: Nhận biết các kịch bản nên dùng Static Pod, giúp áp dụng đúng công cụ để khởi chạy control plane hoặc các dịch vụ hạ tầng quan trọng.
  • Cách sử dụng: Nắm vững các bước từ cấu hình kubelet, tạo manifest YAML đến quan sát và quản lý, giúp tự tin triển khai và vận hành Static Pod trong môi trường thực tế.
  • So sánh với DaemonSet: Phân biệt rõ sự khác biệt giữa Static Pod và DaemonSet, giúp lựa chọn đúng công cụ khi cần triển khai dịch vụ trên từng node.
  • Biết thêm Vietnix là nhà cung cấp dịch vụ hosting, VPS và cloud tốc độ cao dành cho doanh nghiệp.
  • Câu hỏi thường gặp: Giải đáp các thắc mắc liên quan đến Static Pod trong Kubernetes.
những điểm chính

Static Pod trong Kubernetes là gì?

Static Pod trong Kubernetes là Pod được định nghĩa bằng file manifest (YAML/JSON) đặt trong một thư mục cấu hình trên filesystem của node, kubelet sẽ tự đọc và triển khai Pod từ đó. Pod này gắn chặt với node chứa file manifest, không được scheduler phân phối nên không phải là đối tượng được quản lý tập trung bởi control plane như Pod thông thường.

Là Pod được khai báo bằng file manifest trên node và do kubelet trực tiếp triển khai, không qua scheduler hay control plane
Static Pod là Pod được khai báo bằng file manifest trên filesystem của node và do kubelet trực tiếp triển khai

Static Pod giúp bạn đảm bảo các thành phần quan trọng luôn chạy ổn định trên từng node, nhưng để cả cụm Kubernetes và ứng dụng doanh nghiệp vận hành bền vững, bạn vẫn cần một nền tảng hạ tầng cloud tổng thể, linh hoạt và dễ mở rộng. Với dịch vụ enterprise cloud của Vietnix, doanh nghiệp có thể triển khai Kubernetes, microservices và nhiều môi trường Dev/Prod trên hạ tầng Cloud Server hiệu năng cao, độ sẵn sàng lớn, dễ scale tài nguyên và được đội ngũ kỹ thuật hỗ trợ 24/7.

Đặc điểm chính của Static Pod

Đặc điểm chính của Static Pod tập trung vào việc được quản lý cục bộ bởi kubelet trên từng node, không phụ thuộc vào control plane như Pod thông thường. Các đặc điểm chính của Static Pod bao gồm:

  • Không do control plane quản lý vòng đời: Static Pod không được scheduler lên node, không chịu sự điều phối hay replica management từ các controller, toàn bộ vòng đời được quyết định bởi kubelet trên node.​
  • Gắn chặt với từng node: Mỗi Static Pod chỉ tồn tại trên node nơi đặt file manifest; nếu node gặp sự cố hoặc bị xóa, Pod không được tự động dời sang node khác như Deployment hay DaemonSet.​
  • Tự phục hồi ở mức node: Khi container trong Static Pod gặp lỗi và dừng, kubelet sẽ phát hiện trạng thái này và khởi động lại Pod dựa trên manifest cục bộ, đảm bảo dịch vụ luôn được duy trì trên node đó.
  • Có mirror Pod trên API server: Kubelet tạo ra một “mirror pod” tương ứng trên API server để bạn có thể quan sát bằng lệnh kubectl, nhưng mirror Pod chỉ là bản phản chiếu, không chứa container thực thi và không thể bị điều khiển trực tiếp (ví dụ không thể xóa Static Pod thật bằng kubectl delete).​
Đặc điểm chính của Static Pod
Đặc điểm chính của Static Pod

Trường hợp sử dụng Static Pod

Trường hợp sử dụng Static Pod chủ yếu gắn với lớp hạ tầng và control plane, thay vì phục vụ workload ứng dụng thông thường trên cụm Kubernetes. . Cụ thể như sau:

  • Dùng để bootstrap cụm: Các thành phần control plane cốt lõi như kube-apiserver, etcd, kube-controller-manager, scheduler thường được khởi chạy lần đầu dưới dạng Static Pod thông qua các file manifest đặt tại thư mục mặc định trên node (ví dụ /etc/kubernetes/manifests).
  • Triển khai thành phần hệ thống trên từng node: Static Pod phù hợp với các dịch vụ hạ tầng cần đảm bảo luôn chạy ở mọi node như agent thu thập log, tác vụ giám sát, hoặc job dọn dẹp tài nguyên cục bộ.
  • Môi trường lab hoặc cluster nhỏ: Trong các bài lab, demo hoặc cụm tự dựng đơn giản, Static Pod có thể được dùng để nhanh chóng chạy một số dịch vụ hệ thống mà không phải cấu hình đầy đủ controller và scheduler.
  • Tránh phụ thuộc sớm vào control plane: Khi control plane chưa sẵn sàng hoặc đang được khởi tạo, Static Pod cho phép các thành phần cần thiết vẫn hoạt động vì chúng được kubelet quản lý trực tiếp trên node.
Các trường hợp sử dụng Static Pod
Các trường hợp sử dụng Static Pod

1. Cấu hình kubelet để bật Static Pod

Để có thể dùng Static Pod, trước tiên bạn cần chỉ ra cho kubelet biết thư mục chứa manifest tĩnh trên từng node. Đầu tiên, bạn mở file cấu hình kubelet (ví dụ /var/lib/kubelet/config.yaml) và khai báo trường staticPodPath trỏ tới thư mục chứa manifest, thường là /etc/kubernetes/manifests. Ví dụ cấu hình tối giản:

kind: KubeletConfiguration
apiVersion: kubelet.config.k8s.io/v1beta1
staticPodPath: /etc/kubernetes/manifests

Sau khi chỉnh sửa, bạn cần reload và restart dịch vụ kubelet (ví dụ systemctl restart kubelet trên các distro dùng systemd) để cấu hình có hiệu lực.​ Bạn có thể thiết lập bằng tham số dòng lệnh bằng cách khởi động kubelet với tham số –pod-manifest-path=/etc/kubernetes/manifests/ để chỉ định thư mục chứa manifest Static Pod.​

Cách này chủ yếu dùng trong môi trường lab hoặc cụm tự dựng cũ. Với bản Kubernetes mới, bạn nên chuyển sang cấu hình qua file KubeletConfiguration cho linh hoạt và dễ quản lý.​

2. Tạo Static Pod bằng manifest YAML trên node

Sau khi cấu hình staticPodPath, việc tạo Static Pod được thực hiện hoàn toàn bằng thao tác với file YAML trên filesystem của node. Bạn cần xác định thư mục Static Pod tại thư mục phổ biến là /etc/kubernetes/manifests, được kubelet scan định kỳ để phát hiện file mới, sửa, xóa. Bạn cần di chuyển vào thư mục này trên node nơi kubelet đang chạy:

cd /etc/kubernetes/manifests

Bạn cũng có thể viết file manifest Pod bằng cách tạo file static-web.yaml với nội dung Pod chuẩn, không cần field đặc biệt nào cho static:

apiVersion: v1
kind: Pod
metadata:
  name: static-web
  labels:
    app: static-web
spec:
  containers:
    - name: nginx-container
      image: nginx:latest
      ports:
        - name: http
          containerPort: 80
          protocol: TCP

Ngay khi file được lưu đúng trong thư mục staticPodPath, kubelet sẽ tự động phát hiện và khởi chạy Pod tương ứng mà không cần chạy kubectl apply hay bất kỳ lệnh tạo Pod nào. Ví dụ manifest Static Pod httpd:

apiVersion: v1
kind: Pod
metadata:
  name: httpd-static-pod
spec:
  containers:
    - name: httpd
      image: httpd:latest

Bạn chỉ cần copy file này vào thư mục static pod (ví dụ /etc/kubernetes/manifests), kubelet sẽ tự khởi động Pod với container httpd.​

3. Quan sát và kiểm tra Static Pod

Dù Static Pod do kubelet quản lý, bạn vẫn có thể kiểm tra trạng thái và log của chúng qua cả node lẫn API server. Để kiểm tra trên node qua container runtime thì bạn cần dùng crictl (hoặc công cụ tương đương) để liệt kê container đang chạy:

# Chạy trên node nơi kubelet đang hoạt động
crictl ps

Lệnh này giúp xác nhận container của Static Pod đã được khởi chạy đúng theo manifest. Bạn cũng có thể quan sát Static Pod dưới dạng mirror Pod trên API server:

  • Kubelet tự động tạo một mirror pod có tên được thêm hậu tố hostname node, ví dụ static-web-node01, để hiển thị trong API server.
  • Có thể xem bằng kubectl: kubectl get pods -A
  • Khi xem danh sách, các Static Pod sẽ xuất hiện với tên đã được thêm -, đây chỉ là bản phản chiếu, API server không điều khiển trực tiếp được vòng đời Static Pod từ đối tượng này.

4 Chỉnh sửa, cập nhật và xóa Static Pod

Với Static Pod, thao tác quản lý không dựa vào kubectl create/delete, mà dựa vào chính file manifest được kubelet theo dõi:

– Cập nhật Static Pod:

Đầu tiên, bạn cần mở file YAML trong thư mục static Pod (ví dụ static-web.yaml) và chỉnh sửa cấu hình container, image, port, resource,… như với Pod bình thường. Sau khi lưu, kubelet phát hiện file thay đổi và tự recreate Pod theo cấu hình mới (thường là xóa Pod cũ rồi tạo lại với spec mới).

– Xóa Static Pod:

Bạn không dùng kubectl delete Pod để xóa Static Pod gốc, vì thao tác này chỉ xóa mirror Pod trên API server hoặc bị kubelet tạo lại ngay. Cách đúng là xóa hoặc di chuyển file manifest ra khỏi thư mục staticPodPath, ví dụ:

mv /etc/kubernetes/manifests/static-web.yaml /tmp/

Khi file không còn trong thư mục, kubelet sẽ dừng Static Pod tương ứng và nó biến mất khỏi cả node lẫn danh sách mirror Pod trên API server.

5. Tạo Static Pod cho control plane hoặc dịch vụ hệ thống

Các cụm tạo bằng kubeadm lưu manifest của kube-apiserver, kube-controller-manager, kube-scheduler,… dưới dạng Static Pod trong /etc/kubernetes/manifests trên node control plane. Mỗi khi cần nâng cấp hoặc thay đổi cấu hình, kubeadm hoặc admin chỉnh sửa các file này; kubelet sẽ tự cập nhật các Static Pod tương ứng, giúp cụm khởi động và vận hành control plane ổn định mà không cần đối tượng Deployment riêng cho các thành phần này.​

Bạn có thể triển khai các tác vụ như agent thu thập log, tool giám sát, hoặc job dọn dẹp cục bộ dưới dạng Static Pod để đảm bảo chúng luôn tồn tại trên node, bất kể control plane tạm thời không khả dụng. Cách triển khai vẫn là viết một manifest Pod thông thường (chọn image, volume, env, securityContext,…) rồi đặt vào thư mục static Pod trên từng node cần chạy.​

Các cách sử dụng Static Pod
Các cách sử dụng Static Pod

Điểm khác biệt giữa Static Pod và DaemonSet

Tiêu chíStatic PodDaemonSet
Cách được tạo raĐược kubelet đọc trực tiếp từ file manifest trên node, không đi qua API serverĐược khai báo như một resource DaemonSet và tạo pod thông qua API server, có controller quản lý
Mức độ phụ thuộc API serverVẫn chạy được khi API server ngừng hoạt động, vì kubelet chỉ cần đọc file cục bộ trên nodePhụ thuộc control plane, nếu API server hoặc controller gặp sự cố, DaemonSet không thể tạo hay quản lý Pod mới
Mục đích sử dụng chínhThường dùng cho thành phần control plane hoặc dịch vụ hạ tầng gắn chặt với node, cần tồn tại ngay cả khi control plane chưa sẵn sàngPhổ biến cho các agent như log collector, monitoring, security agent cần chạy đồng nhất trên mọi node và được quản lý tập trung
Cách cập nhật cấu hìnhChỉnh sửa trực tiếp YAML trong thư mục staticPodPath trên node, kubelet tự phát hiện thay đổi và recreate PodThay đổi spec bằng kubectl apply/helm,… trên đối tượng DaemonSet, controller sẽ rollout bản cấu hình mới đến các Pod
Cơ chế schedulingKhông đi qua kube-scheduler, node chạy Pod chỉ vì kubelet đọc được manifest nằm trên filesystem của node đóCũng không cần kube-scheduler cho từng Pod, nhưng việc đặt Pod lên node được điều khiển bởi DaemonSet controller dựa trên danh sách node trong cluster

Mặc dù cả hai đều giúp duy trì Pod trên node nhưng bạn chỉ nên dùng Static Pod cho các thành phần bắt buộc phải chạy trước khi Kubernetes Cluster hoạt động (như etcd, apiserver). Đối với các tác vụ bổ trợ như thu thập log hay giám sát ứng dụng, mình khuyên dùng DaemonSet để tận dụng khả năng quản lý tập trung và cập nhật linh hoạt từ API Server. Việc lạm dụng Static Pod cho các workload thông thường sẽ gây khó khăn trong việc bảo trì và giám sát hệ thống ở quy mô lớn.

Vietnix – Nhà cung cấp dịch vụ hosting, VPS và cloud tốc độ cao dành cho doanh nghiệp

Vietnix là nhà cung cấp dịch vụ premium hosting, dịch vụ máy chủ ảo và cloud hướng đến hiệu năng cao và tính ổn định cho hệ thống doanh nghiệp. Hạ tầng được xây dựng nhằm đáp ứng nhu cầu triển khai từ website cơ bản đến các ứng dụng phức tạp, với khả năng mở rộng linh hoạt và tối ưu tài nguyên. Bên cạnh đó, dịch vụ hỗ trợ kỹ thuật liên tục cùng các giải pháp bảo mật và vận hành giúp đảm bảo hệ thống hoạt động ổn định, phù hợp với nhiều mô hình kinh doanh khác nhau. Liên hệ ngay!

Thông tin liên hệ:

  • Website: https://vietnix.vn/
  • Hotline: 1800 1093
  • Email: sales@vietnix.com.vn
  • Địa chỉ: 265 Hồng Lạc, Phường Bảy Hiền, Thành Phố Hồ Chí Minh

Câu hỏi thường gặp

etcd có phải là một pod tĩnh không?

Có, nhưng không phải lúc nào cũng vậy.
– Với kubeadm: etcd chạy dưới dạng Static Pod.
– Với managed Kubernetes hoặc setup custom: etcd có thể không phải Static Pod (do hệ thống quản lý riêng).

Làm sao để biết một pod có tĩnh hay không?

Bạn có thể nhận biết Static Pod qua 3 dấu hiệu chính:
Không có controller quản lý: Pod không thuộc Deployment, ReplicaSet hoặc DaemonSet.
Nguồn tạo từ file trên node: Được kubelet đọc trực tiếp từ thư mục manifest (thường là /etc/kubernetes/manifests).
Có annotation đặc trưng: Hiển thị nguồn là file.

Sự khác biệt giữ pod tĩnh và pod được tạo bằng DaemonSet là gì?

Sự khác biệt nằm ở cách quản lý và cơ chế triển khai:
Quản lý: Static Pod do kubelet trên từng node quản lý trực tiếp, không thông qua API Server; trong khi Pod của DaemonSet được quản lý bởi controller trong Kubernetes.
Triển khai: Static Pod phải tạo thủ công bằng file trên từng node; còn DaemonSet tự động triển khai Pod lên các node theo cấu hình.
Khả năng mở rộng: Static Pod không tự scale; DaemonSet tự đảm bảo mỗi node (hoặc node phù hợp) đều có một Pod.
Cập nhật: Static Pod cần chỉnh sửa file thủ công; DaemonSet có thể update tập trung và rollout tự động.

Static Pods Kubernetes là nền tảng quan trọng giúp giữ cho các thành phần control plane và dịch vụ hạ tầng luôn chạy ổn định ngay trên node, không phụ thuộc hoàn toàn vào API server. Khi nắm vững cách tạo, quản lý và phân biệt Static Pod với Pod thông thường hoặc DaemonSet, bạn sẽ dễ dàng xây dựng cụm Kubernetes linh hoạt, an toàn và phù hợp cho nhiều kịch bản triển khai khác nhau. Cảm ơn bạn đã theo dõi bài viết!

THEO DÕI VÀ CẬP NHẬT CHỦ ĐỀ BẠN QUAN TÂM

Đăng ký ngay để nhận những thông tin mới nhất từ blog của chúng tôi. Đừng bỏ lỡ cơ hội truy cập kiến thức và tin tức hàng ngày

Đánh giá mức độ hữu ích của bài viết

icon 1 sao

Thất vọng

icon 2 sao

Chưa hữu ích

icon 3 sao

Bình thường

icon 4 sao

Hữu ích

icon 5 sao

Rất hữu ích

Hưng Nguyễn

Co-Founder
tại

Kết nối với mình qua

Kết nối với mình qua

Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận

kien-thuc-dich-vu

kien-thuc-kubernetes

text
icon popup single post

CẢM ƠN BẠN ĐÃ ĐÁNH GIÁ BÀI VIẾT

Vietnix sẽ luôn cố gắng cải thiện chất lượng dịch vụ mỗi ngày

ĐÓNG

Đánh giá mức độ hữu ích của bài viết

icon 1 sao

Thất vọng

icon 2 sao

Chưa hữu ích

icon 3 sao

Bình thường

icon 4 sao

Hữu ích

icon 5 sao

Rất hữu ích

Icon
ĐĂNG KÝ NHẬN TÀI LIỆU THÀNH CÔNG
Cảm ơn bạn đã đăng ký nhận tài liệu mới nhất từ Vietnix!
ĐÓNG

ĐĂNG KÝ DÙNG THỬ HOSTING

Asset

7 NGÀY MIỄN PHÍ

Asset 1

ĐĂNG KÝ DÙNG THỬ HOSTING

Asset

7 NGÀY MIỄN PHÍ

Asset 1
Icon
XÁC NHẬN ĐĂNG KÝ DÙNG THỬ THÀNH CÔNG
Cảm ơn bạn đã đăng ký thông tin thành công. Đội ngũ CSKH sẽ liên hệ trực tiếp để kích hoạt dịch vụ cho bạn nhanh nhất!
ĐÓNG