Tích hợp Kubernetes & Rancher
Triển khai và quản lý các cụm Kubernetes trên VergeOS với Docker Machine Driver, Cloud Controller Manager, CSI Driver, tiện ích mở rộng giao diện Rancher và Helm Charts.
Chạy Kubernetes trên VergeOS không phải là phần gắn thêm — đó là một tích hợp hạng nhất được xây dựng từ bốn thành phần chuyên dụng (Docker Machine Driver, Rancher UI Extension, Cloud Controller Manager và CSI Driver), cộng thêm một Cluster Autoscaler tùy chọn cho các cụm do Rancher cung cấp, giúp Rancher (và bất kỳ triển khai RKE2/K3s nào) nhận biết đầy đủ về tính toán, lưu trữ và mạng của VergeOS. Thay vì coi VergeOS là một máy chủ VM đơn thuần, các thành phần này cho phép Kubernetes cung cấp nút, gắn lưu trữ bền vững và tạo bộ cân bằng tải thông qua các API gốc của VergeOS — chính những API đang vận hành dashboard.
Yêu cầu tiên quyết
Trước khi cài đặt tích hợp, hãy đảm bảo môi trường cung cấp:
Một Rancher Server cài đặt (v2.10+) với
kubectlvàhelmcác công cụ CLIMột máy ảo mẫu chạy Ubuntu 24.04 với cloud-init đã được cài đặt (và khuyến nghị QEMU guest agent)
Một khóa API VergeOS được tạo dưới Cài đặt người dùng
Một mạng VergeOS đích với DHCP được bật — trình điều khiển phát hiện IP của nút qua QEMU guest agent và các VM đã nhân bản sẽ không nhận địa chỉ nếu không có DHCP
Đối với lưu trữ bền vững dựa trên block: một VM VergeOS trống có tên
k8spoolđể chứa các ổ đĩa block nhàn rỗi (VM ID của nó được truyền vào Helm chart CSI tại thời điểm cài đặt; VM này không bao giờ cần khởi động)
Tổng quan ngăn xếp
Tích hợp Kubernetes của VergeOS được cung cấp dưới dạng bốn thành phần riêng biệt — Docker Machine Driver, Rancher UI Extension, Cloud Controller Manager và CSI Driver — mỗi thành phần chịu trách nhiệm cho một lớp của ngăn xếp, với Cluster Autoscaler tùy chọn dành cho các cụm do Rancher cung cấp:
Docker Machine Driver
Cung cấp các VM VergeOS làm nút Kubernetes — nhân bản mẫu, chèn khóa SSH, thay đổi kích thước đĩa và gắn mạng.
Rancher UI Extension
Hiển thị trực tiếp các bảng Cloud Credential và Machine Config dành riêng cho VergeOS trong dashboard Rancher.
Cloud Controller Manager
Đồng bộ trạng thái nút Kubernetes với vòng đời VM VergeOS và cung cấp các dịch vụ bộ cân bằng tải theo yêu cầu.
CSI Driver
Ánh xạ lưu trữ vSAN/NAS/block của VergeOS thành PersistentVolumes của Kubernetes cho các workload có trạng thái.
Cả bốn thành phần (DMD, UI Extension, CCM, CSI driver) đều được phân phối qua kho Helm verge-io, đảm bảo phiên bản nhất quán và cài đặt đơn giản hơn. Một Cluster Autoscaler tùy chọn có sẵn cho các cụm do Rancher cung cấp.
Docker Machine Driver
Tính năng docker-machine-driver-vergeos là nền tảng của tích hợp. Nó dạy Docker Machine (và qua đó là Rancher) cách tạo VM trên VergeOS — biến VergeOS thành trình cung cấp nút hạng nhất cho các cụm RKE2 và K3s.
Cách hoạt động
Khi Rancher (hoặc Docker Machine độc lập) yêu cầu một nút mới, trình điều khiển thực hiện chuỗi sau:
Nhân bản VM mẫu — Một mẫu VM VergeOS dựng sẵn (ví dụ: Ubuntu 24.04 với cloud-init) được nhân bản để tạo nút mới
Cấu hình tài nguyên tính toán — Số lõi CPU và RAM được đặt theo đặc tả của cụm
Chèn khóa SSH qua cloud-init — Trình điều khiển tạo cặp khóa SSH và chèn khóa công khai thông qua cloud-init để truy cập an toàn, không cần mật khẩu
Thay đổi kích thước đĩa chính — Nếu cụm yêu cầu nhiều dung lượng hơn mẫu cung cấp, trình điều khiển sẽ thay đổi kích thước đĩa khởi động
Gắn vào mạng đích — VM được kết nối vào mạng ảo VergeOS đã chỉ định
Bật nguồn và chờ IP — Trình điều khiển theo dõi địa chỉ IP qua QEMU guest agent (ưu tiên) hoặc phương án dự phòng bằng lease DHCP
Nếu bất kỳ bước nào thất bại, trình điều khiển sẽ tự động dọn dẹp các VM được tạo dở dang — không để lại tài nguyên mồ côi.
Xác thực
Trình điều khiển sử dụng xác thực bằng khóa API để giao tiếp với API REST của VergeOS. Tạo một khóa API từ giao diện VergeOS tại Cài đặt người dùng, rồi cung cấp nó qua --vergeos-api-key cờ hoặc biến môi trường VERGEOS_API_KEY .
Các cờ cấu hình
--vergeos-host
VERGEOS_HOST
(bắt buộc)
URL điểm cuối VergeOS
--vergeos-api-key
VERGEOS_API_KEY
(bắt buộc)
Khóa API để xác thực
--vergeos-insecure
VERGEOS_INSECURE
false
Bỏ qua xác minh TLS
--vergeos-template-vm
VERGEOS_TEMPLATE_VM
(bắt buộc)
Tên VM mẫu để nhân bản
--vergeos-network
VERGEOS_NETWORK
(bắt buộc)
Mạng đích để gắn vào
--vergeos-cpu-cores
VERGEOS_CPU_CORES
2
Số lõi CPU trên mỗi nút
--vergeos-ram
VERGEOS_RAM
2048
RAM tính bằng MB trên mỗi nút
--vergeos-disk-size
VERGEOS_DISK_SIZE
0 (kích thước mẫu)
Ghi đè kích thước đĩa tính bằng MB
--vergeos-ssh-user
VERGEOS_SSH_USER
root
Tên người dùng SSH
--vergeos-ssh-port
VERGEOS_SSH_PORT
22
Cổng SSH
--vergeos-cloudinit
—
—
Cấu hình cloud-init tùy chỉnh (tệp hoặc nội tuyến)
Yêu cầu của mẫu
Mẫu VM của bạn phải bao gồm:
Cloud-init đã cài đặt và bật — cần cho việc chèn khóa SSH và cấu hình hostname
QEMU guest agent (khuyến nghị) — cung cấp khả năng phát hiện địa chỉ IP đáng tin cậy; sẽ chuyển sang lease DHCP của NIC nếu không có
Docker (chỉ dùng khi sử dụng độc lập) — các triển khai Rancher sẽ tự động cài đặt runtime của container
Hỗ trợ Ubuntu 24.04
Trình điều khiển bao gồm xử lý tự động cho các đặc thù của Ubuntu 24.04:
Cấu hình DHCP của Netplan cho việc đặt tên
en*giao diện độngTạo lại Machine-ID để đảm bảo định danh DHCP duy nhất cho mỗi bản nhân bản
Dọn dẹp lease DHCP cũ để ngăn xung đột IP do kế thừa từ mẫu
Kích thước nút Rancher
Các triển khai Rancher yêu cầu tối thiểu 4 GB RAM mỗi nút. Để ổn định trong môi trường sản xuất, 8 GB RAM mỗi nút được khuyến nghị.
Sử dụng độc lập
Bạn có thể sử dụng trình điều khiển bên ngoài Rancher để cung cấp Docker Machine theo nhu cầu:
Rancher UI Extension
Tính năng ui-extension-vergeos thêm các bảng dành riêng cho VergeOS vào dashboard Rancher, cung cấp trải nghiệm người dùng gốc để quản lý các cụm Kubernetes dựa trên VergeOS mà không cần rời khỏi giao diện Rancher UI.
Bảng Thông tin xác thực đám mây
Khi tạo một Cloud Credential mới trong Rancher, tiện ích mở rộng sẽ thêm một VergeOS tùy chọn nhà cung cấp. Nhập URL máy chủ VergeOS, khóa API và cài đặt TLS của bạn — Rancher lưu các thông tin này an toàn và sử dụng chúng cho tất cả các thao tác cung cấp nút tiếp theo.
Bảng Cấu hình máy
Khi định nghĩa các node pool cho một cụm mới, tiện ích mở rộng hiển thị các trường cấu hình dành riêng cho VergeOS:
Máy ảo mẫu — Chọn từ các mẫu VM VergeOS hiện có
Mạng — Chọn mạng ảo đích
CPU / RAM / Đĩa — Đặt tài nguyên tính toán cho mỗi nút
Cloud-init — Cung cấp các script khởi tạo tùy chỉnh
Tiện ích mở rộng được triển khai như một phần của vergeos-node-driver Helm chart, gói cả Docker Machine Driver và UI Extension lại với nhau.
Cloud Controller Manager
Tính năng vergeos-cloud-controller-manager (CCM) kết nối các thao tác của cụm Kubernetes với control plane của VergeOS, triển khai giao diện cloud-provider chuẩn của Kubernetes.
Đồng bộ vòng đời nút
CCM liên tục giám sát danh sách nút Kubernetes và đồng bộ nó với trạng thái VM VergeOS:
Đăng ký nút — Khi một nút mới tham gia cụm, CCM gắn thêm metadata dành riêng cho VergeOS (VM ID, mạng, vùng)
Xóa nút — Khi một VM VergeOS bị xóa hoặc tắt nguồn, CCM đánh dấu nút Kubernetes tương ứng là không khả dụng và kích hoạt việc lên lịch lại pod
Giám sát sức khỏe — Các kiểm tra định kỳ đảm bảo trạng thái nút Kubernetes phản ánh tình trạng thực tế của VM
Cung cấp bộ cân bằng tải
Khi một Service Kubernetes kiểu LoadBalancer được tạo, CCM sẽ cung cấp một bộ cân bằng tải thông qua lớp mạng của VergeOS:
Cấp phát một IP ảo từ pool địa chỉ đã cấu hình
Cấu hình phân phối lưu lượng trên các cổng node backend
Cập nhật
status.loadBalancer.ingresscủa Service với IP đã cấp phát
VergeOS xử lý việc cung cấp bộ cân bằng tải một cách nguyên bản thông qua CCM.
CSI Driver
Tính năng csi-vergeos (Container Storage Interface) driver đưa lưu trữ VergeOS lên các workload Kubernetes thông qua đặc tả CSI chuẩn.
Các backend lưu trữ
CSI driver hỗ trợ hai backend, cả hai đều được phục vụ bởi một binary Go duy nhất:
NAS
ReadWriteMany
Các volume EXT4 trên dịch vụ NAS của VergeOS, được cung cấp qua NFS
Block
ReadWriteOnce
Các ổ đĩa VM được hotplug vào VM VergeOS qua vSAN
Cách hoạt động
Một nhà phát triển tạo một
PersistentVolumeClaim(PVC) trong KubernetesCSI driver giao tiếp với API của VergeOS để cung cấp bộ nhớ được yêu cầu
Bộ nhớ được gắn vào nút đang chạy pod và được mount tại đường dẫn đã chỉ định
Khi pod bị xóa, CSI driver xử lý việc tháo mount và (tùy chọn) xóa dựa trên chính sách reclaim
Ví dụ StorageClass
Các quản trị viên Kubernetes định nghĩa StorageClass các tài nguyên ánh xạ tới backend lưu trữ VergeOS. Sau đó các nhà phát triển tham chiếu những lớp này trong PVC của họ mà không cần hiểu hạ tầng bên dưới.
Các Helm chart
Tính năng helm-charts kho lưu trữ đóng gói tất cả các thành phần Kubernetes của VergeOS để triển khai gọn gàng. Có ba chart khả dụng:
Các chart khả dụng
vergeos-node-driver
Docker Machine Driver + UI Extension
Cung cấp nút và tích hợp dashboard Rancher
vergeos-cloud-controller-manager
CCM
Đồng bộ vòng đời nút và cung cấp bộ cân bằng tải
vergeos-csi
CSI Driver
Lưu trữ bền vững (NAS + block)
Cài đặt
Thêm kho Helm của VergeOS và cài đặt các chart:
Tính năng vergeosHosts là danh sách cho phép bắt buộc gồm các hostname VergeOS mà proxy của Rancher được phép truy cập. Thay vergeos.example.com bằng hostname của các môi trường VergeOS của bạn; nếu không có nó, trình điều khiển không thể truy cập API của VergeOS.
Quy trình triển khai từ đầu đến cuối
Kết hợp cả bốn thành phần lại, đây là quy trình đầy đủ để triển khai một cụm Kubernetes trên VergeOS với Rancher:
Bước 1: Chuẩn bị một mẫu VM
Tạo một VM VergeOS với Ubuntu 24.04 (Noble Numbat) — hiện là hệ điều hành mẫu duy nhất được hỗ trợ — cài cloud-init và QEMU guest agent, rồi lưu nó làm mẫu. Mẫu này sẽ được nhân bản cho mọi nút Kubernetes.
Bước 2: Đăng ký Node Driver
Áp dụng manifest VergeOS NodeDriver vào cụm quản trị Rancher của bạn bằng kubectl. Điều này thông báo cho Rancher về Docker Machine Driver của VergeOS và bật nó như một tùy chọn cung cấp. Khởi động lại Rancher sau khi đăng ký để kích hoạt lược đồ trình điều khiển.
Bước 3: Tạo Cloud Credential
Trong giao diện Rancher, tạo một Cloud Credential mới bằng nhà cung cấp VergeOS (được thêm bởi UI Extension). Nhập URL máy chủ VergeOS và khóa API của bạn.
Bước 4: Cung cấp cụm
Tạo một cụm RKE2 hoặc K3s mới trong Rancher, chọn VergeOS làm nhà cung cấp hạ tầng. Định nghĩa các node pool của bạn (control plane, etcd, workers) với tài nguyên tính toán mong muốn. Rancher dùng Docker Machine Driver để nhân bản VM, chèn khóa SSH và khởi động cụm Kubernetes.
Bước 5: Triển khai CCM và CSI
Cài đặt Cloud Controller Manager và CSI Driver qua Helm vào cụm mới. CCM ngay lập tức bắt đầu đồng bộ trạng thái nút với VergeOS, và CSI driver làm cho lưu trữ VergeOS khả dụng cho PersistentVolumeClaims.
Bước 6: Chạy workload
Triển khai ứng dụng của bạn bằng các manifest Kubernetes chuẩn. Các Service kiểu LoadBalancer được CCM xử lý, và PersistentVolumeClaims được CSI driver đáp ứng — tất cả đều dựa trên hạ tầng VergeOS.
Đăng ký Node Driver trong Rancher
Docker Machine Driver phải được đăng ký như một tài nguyên Rancher NodeDriver. Áp dụng manifest sau với kubectl:
Sau khi áp dụng, hãy khởi động lại Rancher để tải lược đồ trình điều khiển mới. Khi đó tùy chọn VergeOS sẽ xuất hiện trong trình hướng dẫn tạo cụm.
Tóm tắt
Tích hợp Kubernetes của VergeOS biến VergeOS từ một nền tảng VM thành một nhà cung cấp đám mây Kubernetes hoàn chỉnh. Bằng cách triển khai các giao diện Docker Machine, Cloud Controller Manager và CSI, VergeOS cung cấp cho Kubernetes các primitive giống như từ các nhà cung cấp đám mây công cộng — cấp phát nút tự động, quản lý vòng đời, cân bằng tải và lưu trữ bền vững — tất cả chạy trên hạ tầng của riêng bạn với hiệu năng và hiệu quả của vSAN và mạng ảo VergeOS.
Cấp phát nút tự động
Docker Machine Driver sao chép máy ảo từ các mẫu với cloud-init, khóa SSH và kết nối mạng — hoàn toàn tự động thông qua Rancher.
Nhà cung cấp đám mây gốc
CCM và CSI driver triển khai các giao diện Kubernetes tiêu chuẩn, vì vậy các workload sử dụng LoadBalancer dịch vụ và PersistentVolumeClaims mà không cần sửa đổi.
Triển khai được quản lý bởi Helm
Tất cả các thành phần được đóng gói dưới dạng biểu đồ Helm để cài đặt nhất quán, có kiểm soát phiên bản trên các cụm.
Trải nghiệm gốc Rancher
Phần mở rộng UI đưa cấu hình VergeOS trực tiếp vào bảng điều khiển Rancher — không cần chuyển đổi ngữ cảnh.
Cập nhật lần cuối
Nội dung này có hữu ích không?