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
Quản Trị Chuyên Sâu Hệ Thống Kubernetes (K8s) HA Cluster
Quản Trị Chuyên Sâu Hệ Thống Kubernetes (K8s) HA Cluster – Tối Ưu, Bảo Mật Và Giám Sát Hiệu Năng Sau khi bạn đã triển khai thành công cụm Kubernetes HA Cluster bằng VPS Script tự động của ATS GLOBAL VN, bước tiếp theo chính là quản trị, giám sát và tối ưu vận hành. […]
Cài đặt và Quản lý Server Dễ Dàng Với VPS Script
Cài đặt và Quản lý Server Dễ Dàng Với VPS Script – Hướng Dẫn Chi Tiết Từ A Đến Z Bạn đang tìm cách cài đặt và quản lý máy chủ VPS nhanh gọn, an toàn và hiệu quả? Thay vì phải cấu hình thủ công từng gói dịch vụ, giờ đây bạn có thể […]