Mô hình Kubernetes On-Premise
Kubernetes (K8s) on-premise là mô hình chạy cluster K8s trên hạ tầng vật lý hoặc VM nội bộ — không phụ thuộc cloud provider. Phù hợp khi tổ chức cần kiểm soát dữ liệu, compliance, hoặc đã có datacenter sẵn.
Kiến trúc cluster K8s On-Prem
Networking — CNI Plugins
Chọn CNI cho on-prem
| CNI | Đặc điểm | Phù hợp |
|---|---|---|
| Flannel | Đơn giản, VXLAN overlay | Homelab, môi trường nhỏ |
| Calico | NetworkPolicy mạnh, BGP routing | Production, security-focused |
| Cilium | eBPF-based, observability cao | High-performance, modern cluster |
| Weave | Simple mesh, easy setup | SMB, ease-of-use priority |
Storage — Persistent Volumes
| Storage | ReadWriteMany | Latency | Phù hợp |
|---|---|---|---|
| Local SSD | Không | Tốt nhất | DB, hiệu năng cao |
| NFS | Có | Trung bình | Shared files, ReadWriteMany |
| Rook-Ceph | Có | Tốt | Production, self-healing |
| iSCSI | Không | Tốt | Block storage, high IOPS |
GitOps với ArgoCD On-Prem
Các công cụ cài đặt K8s On-Prem
| Công cụ | Cài đặt | Đặc điểm | Phù hợp |
|---|---|---|---|
| kubeadm | Manual | Standard, flexible | Production tự quản lý |
| k3s | Script 1 lệnh | Lightweight (<100MB binary) | Edge, ARM, IoT |
| RKE2 | Script | Hardened, CIS benchmark | Security-focused |
| Rancher | Helm | Multi-cluster UI | Enterprise, nhiều cluster |
| OpenShift | Installer | Full enterprise platform | Red Hat ecosystem |
| Talos Linux | Image-based | Immutable OS, API-driven | High-security |
Ưu điểm & Nhược điểm
Ưu điểm:
- Kiểm soát hoàn toàn: Network, storage, scheduler, security policy — không bị giới hạn bởi cloud provider
- Dữ liệu nội bộ: Compliance, GDPR, dữ liệu không rời datacenter
- Cost predictable: Chi phí phần cứng cố định, không bill theo giờ
- Tự động hóa: Rolling update, self-healing, auto-restart — zero-touch operation
- Portable workload: Cùng manifest YAML chạy được lên EKS / AKS khi cần
Nhược điểm:
- Phức tạp vận hành: etcd backup, certificate rotation, upgrade cluster — cần kỹ năng cao
- HA Control Plane: Cần ≥ 3 master node → chi phí phần cứng tăng
- Không có managed load balancer: Cần tự cài MetalLB hoặc F5 thay vì cloud LB
- Storage tự quản: Không có EBS/EFS tự động — cần NFS server hoặc Ceph cluster
Checklist trước khi chạy K8s on-prem
- HA Control Plane: ≥ 3 master node với etcd quorum
- External etcd backup: snapshot etcd định kỳ vào S3-compatible hoặc NFS
- MetalLB hoặc F5 cho LoadBalancer type Service
- Private Container Registry: Harbor thay vì Docker Hub
- Network Policy: Calico/Cilium enforce zero-trust giữa namespaces
- Certificate management: cert-manager + internal CA
- Monitoring: kube-prometheus-stack (Prometheus + Grafana + Alertmanager)