Thứ Ba, 19/05/2026, 17:00 (GMT+0)

[Part 6] Khởi tạo các node Worker trong chuỗi series xây dựng Kubernetes Cluster

Quay lại Trang chủ Blog
Trên trang này

Sau khi control plane đã được triển khai ở Part 5, cluster lúc này đã có thể tiếp nhận và xử lý các request thông qua Kubernetes API Server. Tuy nhiên, hệ thống vẫn chưa thể chạy workload thực tế do chưa có worker node nào tham gia vào cluster.

Trong Kubernetes, worker node là nơi trực tiếp chạy Pod và container. Đây cũng là nơi kubelet, container runtime và các thành phần networking phối hợp với control plane để duy trì trạng thái vận hành của ứng dụng.

Trong phần này, chúng ta sẽ khởi tạo các worker node đầu tiên và cài đặt các thành phần nền tảng cần thiết, bao gồm:

  • runc
  • CNI plugins
  • containerd
  • kubelet
  • kube-proxy

Điều kiện tiên quyết: Toàn bộ các lệnh trong phần này sẽ được thực hiện từ máy jumpbox.

Bước 1: Copy các binary và systemd unit file sang worker node

Trước khi khởi tạo worker node, cần sao chép các Kubernetes binaries và file cấu hình cần thiết sang từng worker node:

for HOST in node-0 node-1; do

  SUBNET=$(grep ${HOST} machines.txt | cut -d " " -f 4)

  sed "s|SUBNET|$SUBNET|g" \

    configs/10-bridge.conf > 10-bridge.conf

  sed "s|SUBNET|$SUBNET|g" \

    configs/kubelet-config.yaml > kubelet-config.yaml

  scp 10-bridge.conf kubelet-config.yaml \

    root@${HOST}:~/

done



for HOST in node-0 node-1; do

  scp \

    downloads/worker/* \

    downloads/client/kubectl \

    configs/99-loopback.conf \

    configs/containerd-config.toml \

    configs/kube-proxy-config.yaml \

    units/containerd.service \

    units/kubelet.service \

    units/kube-proxy.service \

    root@${HOST}:~/

done



for HOST in node-0 node-1; do

  scp \

    downloads/cni-plugins/* \

    root@${HOST}:~/cni-plugins/

done

Các bước tiếp theo sẽ được thực hiện trực tiếp trên từng worker node (node-0 và node-1).

Thực hiện SSH vào từng node để bắt đầu quá trình cài đặt. Ví dụ:

ssh root@node-0

Bước 2: Khởi tạo Worker Node

Sau khi hoàn tất việc chuẩn bị binary và file cấu hình, bước tiếp theo là cài đặt và cấu hình các thành phần nền tảng trên từng worker node để Kubernetes có thể chạy Pod và quản lý container runtime.

Cài đặt các package phụ thuộc

Cập nhật hệ thống và cài đặt các package cần thiết:

sudo apt-get update

sudo apt-get -y install socat conntrack ipset

Trong đó:

  • socat được sử dụng cho tính năng kubectl port-forward
  • conntrack hỗ trợ theo dõi kết nối mạng
  • ipset hỗ trợ quản lý rule networking hiệu quả hơn

Tắt Swap

Mặc định, Kubernetes yêu cầu swap phải được tắt để đảm bảo tính ổn định trong việc quản lý tài nguyên. Kiểm tra trạng thái swap:

sudo swapon --show

Nếu không có output, swap đã được tắt. Nếu swap vẫn đang bật, thực hiện: 

sudo swapoff -a

Để tắt swap vĩnh viễn, cần cập nhật thêm file /etc/fstab tùy theo bản phân phối Linux đang sử dụng. 

Tạo các thư mục cần thiết 

sudo mkdir -p \

  /etc/cni/net.d \

  /opt/cni/bin \

  /var/lib/kubelet \

  /var/lib/kube-proxy \

  /var/lib/kubernetes \

  /var/run/kubernetes

Các thư mục trên sẽ được sử dụng để lưu trữ cấu hình, binary và dữ liệu runtime cho kubelet, kube-proxy và CNI. 

Cài đặt các binary

 mv crictl kube-proxy kubelet runc \

    /usr/local/bin/

  mv containerd containerd-shim-runc-v2 containerd-stress /bin/

  mv cni-plugins/* /opt/cni/bin/

Sau bước này, worker node đã có đầy đủ container runtime và các thành phần Kubernetes cần thiết để vận hành workload. 

Cấu hình mạng CNI

Triển khai các file cấu hình mạng: 

mv 10-bridge.conf 99-loopback.conf /etc/cni/net.d/

Để đảm bảo lưu lượng mạng đi qua mạng bridge CNI được xử lý bởi iptables, hãy tải và cấu hình module kernel br-netfilter:

modprobe br-netfilter

echo "br-netfilter" >> /etc/modules-load.d/modules.conf

  echo "net.bridge.bridge-nf-call-iptables = 1" \

    >> /etc/sysctl.d/kubernetes.conf

  echo "net.bridge.bridge-nf-call-ip6tables = 1" \

    >> /etc/sysctl.d/kubernetes.conf

  sysctl -p /etc/sysctl.d/kubernetes.conf

Đây là một bước quan trọng giúp Kubernetes networking hoạt động chính xác giữa các Pod và node. 

Cấu hình containerd

Tạo thư mục cấu hình: 

mkdir -p /etc/containerd/

Triển khai file cấu hình và systemd unit

mkdir -p /etc/containerd/

mv containerd-config.toml /etc/containerd/config.toml

mv containerd.service /etc/systemd/system/

Cấu hình Kubelet

Kubelet là thành phần chịu trách nhiệm giao tiếp với control plane và quản lý Pod trên worker node. Triển khai file cấu hình kubelet và systemd service: 

mv kubelet-config.yaml /var/lib/kubelet/

mv kubelet.service /etc/systemd/system/

Cấu hình Kubernetes Proxy

kube-proxy chịu trách nhiệm thiết lập networking và forwarding traffic giữa các service trong cluster. 

mv kube-proxy-config.yaml /var/lib/kube-proxy/

mv kube-proxy.service /etc/systemd/system/

Khởi chạy các dịch vụ Worker

systemctl daemon-reload

systemctl enable containerd kubelet kube-proxy

systemctl start containerd kubelet kube-proxy

Kiểm tra trạng thái kubelet:

systemctl is-active kubelet

Kết quả mong đợi: active.

Lặp lại toàn bộ các bước trên cho từng worker node (node-0 và node-1) trước khi tiếp tục. 

Bước 3: Xác minh Worker Node 

Thực hiện từ máy jumpbox.

Kiểm tra danh sách các node đã tham gia cluster:

ssh root@server \

  "kubectl get nodes \

  --kubeconfig admin.kubeconfig"

Kết quả mong đợi:

NAME     STATUS   ROLES    AGE   VERSION

node-0   Ready    <none>   30s   v1.28.3

node-1   Ready    <none>   25s   v1.28.3

Nếu các node hiển thị trạng thái Ready, Kubernetes cluster đã có thể tiếp nhận và chạy workload thực tế.

Đến thời điểm này, các worker node đã được khởi tạo thành công và tham gia vào Kubernetes cluster. Control plane giờ đây không chỉ có khả năng quản lý trạng thái hệ thống mà đã có thể thực sự phân phối và vận hành workload trên các node worker.

Toàn bộ các thành phần nền tảng như container runtime, kubelet, kube-proxy và networking cũng đã được cấu hình hoàn chỉnh. Điều này đồng nghĩa với việc cluster hiện đã sẵn sàng để triển khai Pod và chạy ứng dụng thực tế.

Trong phần tiếp theo, chúng ta sẽ tiến hành kiểm tra khả năng vận hành của cluster bằng cách triển khai workload đầu tiên và xác minh networking giữa các Pod trong Kubernetes.

Xem lại: [Part 5] Khởi tạo Kubernetes Control Plane trong Series Xây Dựng K8s Cluster

Xem tiếp: [Part 7] Truy cập Cluster, Networking và Kiểm thử

#CloudWave Radar
#CloudWave Radar
Sovereign Cloud không chỉ là đặt máy chủ trong nước. Với bối cảnh pháp lý dữ liệu mới tại Việt Nam, đây đang trở thành bài toán hạ tầng quan trọng cho doanh nghiệp Việt và doanh nghiệp nước ngoài hoạt động tại Việt Nam
Sovereign Cloud - Đám mây chủ quyền là gì? Và vì sao doanh nghiệp hoạt động tại Việt Nam nên quan tâm từ bây giờ?
Tiếp tục đọc