ATS Global VN

Cài Đặt Kubernetes HA Cluster Chỉ Với 1 Script

Cài Đặt Kubernetes HA Cluster Chỉ Với 1 Script

Cài Đặt Cụm Kubernetes (K8s) HA Cluster Chỉ Với 1 Script Tự Động – Hướng Dẫn Chi Tiết Từng Bước

Bạn đang muốn triển khai cụm Kubernetes (K8s) HA Cluster (High Availability – cụm có khả năng chịu lỗi cao) mà không phải cấu hình thủ công từng node? Trong bài viết này, ATS GLOBAL VN sẽ hướng dẫn bạn cài đặt Kubernetes HA Cluster chỉ bằng 1 script tự động, có thể sử dụng cho môi trường Ubuntu 22.04 / 24.04 hoặc RHEL 9.4, giúp tiết kiệm thời gian và đảm bảo tính ổn định cao nhất.

1️⃣ Tổng Quan Về Kiến Trúc Kubernetes HA Cluster

Một cụm Kubernetes High Availability (HA) bao gồm tối thiểu 3 node Master (Control Plane) và nhiều Worker Node. Mục tiêu của cụm HA là đảm bảo khi 1 Master gặp sự cố, hệ thống vẫn hoạt động bình thường nhờ các node còn lại.

Thành phần chính:

  • 💠 Master Nodes (Control Plane): quản lý API Server, Controller, Scheduler, Etcd
  • 🧱 Worker Nodes: nơi triển khai container và ứng dụng
  • 🔁 Load Balancer (HAProxy / Keepalived): phân tải yêu cầu đến các Master

Sơ đồ cơ bản:


+------------------------------+
|      Load Balancer (VIP)     |
|   192.168.10.100:6443        |
+-------------+----------------+
              |
    +---------+---------+
    |         |         |
+---+---+ +---+---+ +---+---+
|Master1| |Master2| |Master3|
+---+---+ +---+---+ +---+---+
    |         |         |
    +----+----+----+----+
         |
     +---+---+
     | Worker |
     +-------+

2️⃣ Chuẩn Bị Trước Khi Chạy Script

Trước khi cài đặt, bạn cần chuẩn bị tối thiểu 4 máy chủ (ảo hoặc vật lý) và đảm bảo:

  • 🖥️ 3 node Master: mỗi node 2 CPU, 4GB RAM
  • 🖥️ 1 hoặc nhiều Worker: mỗi node 2 CPU, 4GB RAM
  • 🌐 Hệ điều hành: Ubuntu Server 22.04 hoặc RHEL 9.4
  • 🔒 Quyền root hoặc sudo full
  • ⚙️ IP tĩnh cho từng node
  • 🚀 Kết nối mạng nội bộ giữa các node

Ví dụ IP:

Master1: 192.168.10.11
Master2: 192.168.10.12
Master3: 192.168.10.13
Worker1: 192.168.10.21
VIP (LoadBalancer): 192.168.10.100

3️⃣ Script Cài Đặt Tự Động Kubernetes HA Cluster

ATSVN HA Script là một bash script tự động hóa toàn bộ quy trình:

  • Cài Docker hoặc containerd
  • Cài kubeadm, kubelet, kubectl
  • Cấu hình Keepalived + HAProxy (VIP HA)
  • Khởi tạo cụm Control Plane tự động
  • Join Master và Worker Node chỉ với 1 lệnh

📜 Cách tải và chạy script

bash <(curl -s -H "X-ATS-Token: ATSVN-SECURE-2025" https://install.atsvn.net/setup-k8s-ha)

Script sẽ tự động hỏi bạn nhập thông tin:

  • Tên cụm (Cluster Name)
  • VIP LoadBalancer (VD: 192.168.10.100)
  • Node Role: Master hoặc Worker
  • Địa chỉ IP các node Control Plane

📦 File Script: install-k8s-ha.sh (tự động hóa hoàn toàn)

#!/bin/bash
# =============================================================
# 🧱 ATSVN - Kubernetes HA Auto Installer
# Version: 3.0 (2025)
# Author: ATS GLOBAL VN - https://atsvn.net
# =============================================================

set -e
echo "🚀 Cài đặt Kubernetes HA Cluster tự động - ATSVN"

# Bước 1: Cập nhật hệ thống
apt update -y && apt upgrade -y
apt install -y curl apt-transport-https ca-certificates gnupg lsb-release

# Bước 2: Cài containerd
apt install -y containerd
mkdir -p /etc/containerd
containerd config default > /etc/containerd/config.toml
systemctl enable --now containerd

# Bước 3: Cài đặt kubeadm, kubelet, kubectl
curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb http://apt.kubernetes.io/ kubernetes-xenial main
EOF
apt update -y
apt install -y kubelet kubeadm kubectl
apt-mark hold kubelet kubeadm kubectl

# Bước 4: Tắt swap
swapoff -a
sed -i '/swap/d' /etc/fstab

# Bước 5: Cài HAProxy và Keepalived cho VIP
apt install -y haproxy keepalived
cat <<EOF >/etc/haproxy/haproxy.cfg
frontend kubernetes-api
    bind *:6443
    default_backend kubernetes-masters
backend kubernetes-masters
    balance roundrobin
    server master1 192.168.10.11:6443 check
    server master2 192.168.10.12:6443 check
    server master3 192.168.10.13:6443 check
EOF

cat <<EOF >/etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass atssecure
    }
    virtual_ipaddress {
        192.168.10.100
    }
}
EOF
systemctl enable --now haproxy keepalived

# Bước 6: Init Control Plane
kubeadm init --control-plane-endpoint "192.168.10.100:6443" --upload-certs --pod-network-cidr=10.244.0.0/16

# Bước 7: Cấu hình kubectl
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config

# Bước 8: Cài Flannel Network
kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml

echo "✅ Hoàn tất cài đặt Control Plane. Dùng kubeadm join để thêm node."

4️⃣ Thêm Node Master Và Worker

Sau khi Master chính đã được khởi tạo, script sẽ hiển thị lệnh kubeadm join như sau:


kubeadm join 192.168.10.100:6443 --token abc123.def456 \
--discovery-token-ca-cert-hash sha256:xxxxx \
--control-plane --certificate-key yyyy

Chạy lệnh này trên 2 node Master còn lại để thêm vào cụm.

Đối với Worker Node, chạy lệnh tương tự nhưng bỏ tham số --control-plane.

5️⃣ Kiểm Tra Trạng Thái Cụm


kubectl get nodes -o wide
kubectl get pods -A

Kết quả mong đợi:


NAME        STATUS   ROLES           AGE   VERSION   INTERNAL-IP
master1     Ready    control-plane   5m    v1.30.1   192.168.10.11
master2     Ready    control-plane   4m    v1.30.1   192.168.10.12
master3     Ready    control-plane   4m    v1.30.1   192.168.10.13
worker1     Ready              3m    v1.30.1   192.168.10.21

6️⃣ Triển Khai Ứng Dụng Test

Kiểm tra cụm hoạt động ổn định bằng cách triển khai ứng dụng mẫu Nginx:


kubectl create deployment web --image=nginx --replicas=3
kubectl expose deployment web --type=NodePort --port=80
kubectl get svc

Truy cập qua IP của bất kỳ node nào (hoặc VIP):

http://192.168.10.100:NodePort

7️⃣ Cập Nhật & Bảo Mật Tự Động

  • 🧱 Tự động cập nhật Kubernetes: định kỳ hàng tuần
  • 🔒 Tự động gia hạn SSL cho API Server
  • 🛡️ Bật tường lửa & Fail2ban cho SSH
  • 💾 Sao lưu ETCD tự động mỗi 24h

# Backup ETCD
ETCDCTL_API=3 etcdctl snapshot save /backup/etcd-$(date +%F).db \
  --cacert /etc/kubernetes/pki/etcd/ca.crt \
  --cert /etc/kubernetes/pki/etcd/server.crt \
  --key /etc/kubernetes/pki/etcd/server.key

8️⃣ Ưu Điểm Khi Dùng Script Của ATS GLOBAL VN

  • ✅ Triển khai hoàn toàn tự động
  • ✅ Hỗ trợ cả Ubuntu và RHEL
  • ✅ Tự động nhận diện vai trò node
  • ✅ Không cần nhập lệnh thủ công
  • ✅ Cấu hình chuẩn sản xuất (production ready)
  • ✅ Tự động tạo HAProxy + Keepalived VIP
  • ✅ Dễ mở rộng (chỉ cần chạy script join)

9️⃣ Các Lỗi Thường Gặp Và Cách Xử Lý

❌ Swap chưa tắt

swapoff -a && sed -i '/swap/d' /etc/fstab

❌ IP xung đột hoặc VIP không nhận

systemctl restart keepalived haproxy

❌ Token hết hạn

kubeadm token create --print-join-command

🔟 Kết Luận

Chỉ với 1 dòng lệnh duy nhất, bạn đã có thể triển khai cụm Kubernetes HA hoàn chỉnh, sẵn sàng cho môi trường sản xuất. Script tự động của ATS GLOBAL VN giúp bạn tiết kiệm hàng giờ cấu hình thủ công, giảm rủi ro sai sót và đảm bảo tính ổn định của hạ tầng.

Hãy thử ngay hôm nay với lệnh:

bash <(curl -s -H "X-ATS-Token: ATSVN-SECURE-2025" https://install.atsvn.net/setup-k8s-ha)

ATS GLOBAL VN – Giải pháp hạ tầng tự động và DevOps chuyên nghiệp cho doanh nghiệp Việt Nam.

📞 Liên Hệ Hỗ Trợ

  • 🌐 Website: https://atsvn.net
  • 📧 Email: support@atsvn.net
  • 📱 Hotline / Zalo: 0985 128 051

🔖 Từ khóa gợi ý:

Kubernetes HA Cluster, cài đặt K8s tự động, kubeadm script, Kubernetes high availability, ATSVN Script, cài cụm Kubernetes, K8s HA Ubuntu, tự động cài đặt Kubernetes, DevOps Script, setup K8s HA

Bài viết liên quan

Chia sẻ:FacebookLinkedIn
Cài Đặt Kubernetes HA Cluster Chỉ Với 1 Script