Sự chuyển dịch sang Hạ tầng Bất biến (Immutable Infrastructure)
Hầu hết các quản trị viên Kubernetes dành quá nhiều thời gian để “chăm bẵm” máy chủ của mình. Quy trình truyền thống thường rất dễ đoán: bạn cài đặt Ubuntu, tăng cường bảo mật SSH, thiết lập Containerd và cuối cùng là chạy kubeadm. Nhưng sau sáu tháng, các node đó bắt đầu có sự sai lệch. Một worker có thể kết thúc với một bản vá kernel khác, một worker khác lại có file log đi lạc chiếm tới 5GB dung lượng đĩa, và việc cập nhật bảo mật trở thành một trò chơi đuổi bắt thủ công đầy mệt mỏi.
Talos Linux đi theo một con đường hoàn toàn khác. Đây là một hệ điều hành bất biến (immutable), tạm thời (ephemeral) và được tăng cường bảo mật, được thiết kế từ đầu chỉ dành riêng cho Kubernetes. Không có SSH, không có shell bash và không có apt-get. Thay vào đó, bạn quản lý OS chính xác như cách bạn quản lý các pod: thông qua một API có phiên bản và các file YAML. Việc chuyển sang mô hình này buộc bạn phải coi hạ tầng như code thuần túy, loại bỏ hoàn toàn vấn đề “snowflake server” (máy chủ đặc thù) một cách triệt để.
Kết hợp Talos với Proxmox là một bước đi cực kỳ mạnh mẽ cho HomeLab. Bạn sẽ có được khả năng ảo hóa cấp doanh nghiệp kết hợp với phong cách quản lý hiện đại, rảnh tay, tương tự như các nền tảng đám mây lớn hiện nay.
Thiết lập nền tảng trên Proxmox
Chúng ta cần chuẩn bị môi trường ảo hóa trên Proxmox trước khi đi sâu vào mã nguồn. Đối với một cụm cluster ổn định và có tính sẵn sàng cao, hãy hướng tới mục tiêu một node control plane và hai node worker. Nếu phần cứng của bạn khiêm tốn—ví dụ như một chiếc Intel NUC duy nhất—thì một node control plane duy nhất là hoàn toàn ổn để thử nghiệm.
1. Tải xuống Image của Talos
Lấy file ISO từ trang phát hành của Talos Linux. Bản tiêu chuẩn talos-amd64.iso cực kỳ nhẹ—thường dưới 100MB. Hãy tải nó lên bộ lưu trữ ISO của Proxmox ngay lập tức.
2. Tạo các máy ảo (VM)
Khi cấp phát các máy ảo, hãy sử dụng các cài đặt cụ thể sau để hệ thống vận hành mượt mà:
- CPU: Chọn loại ‘Host’. Điều này cho phép VM sử dụng các tập lệnh AES-NI, giúp tăng tốc độ mã hóa của Kubernetes. Cấp cho control plane 2 core và các worker ít nhất 2 core.
- Bộ nhớ (RAM): Mặc dù 2GB có thể hoạt động, nhưng 4GB là mức lý tưởng để xử lý các tác vụ hệ thống mà không cần dùng đến swap.
- Mạng: Sử dụng
VirtIObridge. Đây là con đường nhanh nhất cho mạng trong Proxmox. - Ổ đĩa: 20GB là dư dả. Vì OS rất nhỏ, hầu hết không gian đó sẽ dành cho các image container thực tế của bạn.
- Loại máy (Machine Type): Sử dụng
q35để hỗ trợ tốt hơn các tính năng Linux hiện đại.
Sau khi các VM đã sẵn sàng, hãy mount file ISO và thiết lập thứ tự khởi động. Tôi thực sự khuyên bạn nên gán địa chỉ MAC với IP tĩnh trong router của mình. Talos là một hệ thống điều khiển qua API, vì vậy nó cần biết chính xác địa chỉ của các node lân cận.
Cấu hình Cluster thông qua API
Vì không có SSH, chúng ta sử dụng talosctl trên máy trạm cá nhân để giao tiếp with các node. Công cụ này xử lý mọi thứ từ việc xóa sạch đĩa ban đầu cho đến nâng cấp kernel.
1. Cài đặt talosctl
Cài đặt CLI rất nhanh chóng. Trên macOS hoặc Linux thông qua Homebrew:
brew install talosctl
Người dùng Windows có thể tải trực tiếp file thực thi từ GitHub và thêm vào đường dẫn Path hệ thống.
2. Tạo cấu hình cho Cluster
Xác định tên cụm của bạn và xác định IP của node control plane đầu tiên (ví dụ: 192.168.1.50).
talosctl gen config my-home-cluster https://192.168.1.50:6443
Lệnh này tạo ra bốn file thiết yếu:
controlplane.yaml: Cấu hình cho node master.worker.yaml: Cài đặt cho các node tính toán (compute nodes).talosconfig: Thông tin xác thực cho máy khách cục bộ của bạn.secrets.yaml: Các khóa được sử dụng để mã hóa giao tiếp trong cụm.
3. Áp dụng cấu hình
Khởi động các VM trên Proxmox. Chúng sẽ ở trạng thái “Maintenance Mode” để chờ hướng dẫn. Bây giờ, hãy đẩy cấu hình từ máy tính của bạn tới các node:
# Cấu hình node master
talosctl apply-config --insecure --nodes 192.168.1.50 --file controlplane.yaml
# Cấu hình các node worker
talosctl apply-config --insecure --nodes 192.168.1.51 --file worker.yaml
talosctl apply-config --insecure --nodes 192.168.1.52 --file worker.yaml
Tham số --insecure chỉ được sử dụng một lần duy nhất. Nó cho phép talosctl thiết lập sự tin tưởng ban đầu trước khi các chứng chỉ TLS được tạo ra. Sau lệnh này, các node sẽ khởi động lại, xóa sạch ổ đĩa cục bộ và cài đặt OS trong khoảng 15 giây.
4. Bootstrap cho Cluster
Tại thời điểm này, OS đang chạy nhưng control plane của Kubernetes vẫn chưa hoạt động. Bạn cần kích hoạt quá trình thiết lập ban đầu. Trước tiên, hãy trỏ môi trường cục bộ tới cấu hình mới:
export TALOSCONFIG=$(pwd)/talosconfig
talosctl config endpoint 192.168.1.50
talosctl config node 192.168.1.50
talosctl bootstrap
Lệnh này sẽ bắt đầu quá trình hình thành etcd. Hãy đợi khoảng 2 đến 3 phút để hệ thống tải các image container cần thiết và khởi tạo cơ sở dữ liệu.
Kiểm tra và Giám sát
Khi cụm cluster đã online, chúng ta cần xác nhận tình trạng sức khỏe của nó. Vì không thể ssh và chạy htop, chúng ta sử dụng API của Talos để quan sát.
1. Lấy file Kubeconfig
Hãy quên việc sao chép file thủ công từ /etc/kubernetes đi. Talos tự tạo kubeconfig cho bạn thông qua API:
talosctl kubeconfig ./kubeconfig
export KUBECONFIG=$(pwd)/kubeconfig
2. Kiểm tra trạng thái các Node
Xác nhận rằng Kubernetes đã nhận diện phần cứng mới của bạn:
kubectl get nodes
Đừng hoảng hốt nếu chúng hiển thị trạng thái NotReady. Talos không bao gồm sẵn CNI (Container Network Interface) theo mặc định. Đối với một HomeLab hiện đại, tôi khuyên bạn nên cài đặt Cilium; nó nhanh hơn và cung cấp thông tin chi tiết về mạng tốt hơn nhiều so với các tùy chọn cũ như Flannel.
3. Giám sát sức khỏe hệ thống bằng Dashboard
Để xem những gì đang diễn ra bên dưới hệ thống, hãy sử dụng dashboard tích hợp sẵn:
talosctl dashboard
Lệnh này mở ra một giao diện dòng lệnh (TUI) hiển thị mức sử dụng CPU thời gian thực, áp lực bộ nhớ và tình trạng của các dịch vụ nội bộ. Cần xem tại sao một dịch vụ bị lỗi? Hãy stream log trực tiếp:
talosctl logs controller-runtime
Lời kết
Chuyển sang Talos trên Proxmox thay đổi quy trình làm việc của bạn từ việc quản lý từng máy chủ riêng lẻ sang quản lý một nền tảng thống nhất. Nếu một node có biểu hiện lạ, bạn không cần mất hàng giờ để debug log—bạn chỉ việc reset nó. Triết lý “cattle, not pets” (gia súc, không phải thú cưng) này là tiêu chuẩn vàng cho độ tin cậy trong môi trường production.
Giờ đây bạn đã có một cụm cluster bảo mật, tối giản, dễ dàng nâng cấp và không thể bị hỏng do các thay đổi cấu hình thủ công. Bước tiếp theo của bạn? Triển khai một ứng dụng và tìm hiểu về Longhorn để quản lý lưu trữ lâu dài một cách dễ dàng.

