Máy Tính

Thiết Lập Docker Swarm Cho Home Lab: Hướng Dẫn Toàn Diện Từ A-Z

Giao diện tab Containers bên trong Portainer hiển thị danh sách các container

Trong kỷ nguyên công nghệ số, việc tự xây dựng và quản lý các dịch vụ tại gia (home lab) đã trở thành một sở thích phổ biến của nhiều người yêu công nghệ. Từ việc lưu trữ đám mây riêng tư đến chạy các ứng dụng đa phương tiện, các dịch vụ tự host mang lại sự linh hoạt và kiểm soát cao hơn so với các giải pháp thương mại phụ thuộc vào đăng ký và thu thập dữ liệu. Tuy nhiên, khi số lượng ứng dụng container hóa ngày càng tăng, nhu cầu về một công cụ quản lý hiệu quả, có khả năng cân bằng tải và tự động mở rộng trở nên thiết yếu.

Đó là lúc Docker Swarm phát huy vai trò của mình. Đối với những người dùng Docker, tiện ích Docker Swarm cung cấp một phương pháp đơn giản để quản lý khối lượng công việc container hóa của bạn. Bài viết này sẽ hướng dẫn bạn cách thiết lập Docker Swarm trong home lab, giúp bạn nâng tầm khả năng quản lý các dịch vụ công nghệ tại gia một cách chuyên nghiệp.

Docker Swarm Là Gì Và Tại Sao Bạn Nên Sử Dụng?

Định nghĩa và vai trò của Docker Swarm

Giống như Kubernetes, Docker Swarm là một công cụ điều phối container (container orchestration tool) được thiết kế để giúp bạn thiết lập các cụm máy tính, máy tính bo mạch đơn (SBCs) hoặc thậm chí là máy ảo (VMs) cho các tác vụ container hóa. Nhờ Swarm, bạn có thể xây dựng một cụm đáng tin cậy gồm các máy chủ Docker có khả năng tự động cấp phát hoặc loại bỏ các node bổ sung để đáp ứng nhu cầu tài nguyên của các container. Điều này không chỉ tối ưu hóa việc sử dụng tài nguyên mà còn làm cho home lab của bạn có khả năng chịu lỗi cao hơn. Docker Swarm có thể tự động chuyển giao khối lượng công việc của một node ngoại tuyến sang các hệ thống khác trong cụm, đảm bảo dịch vụ luôn sẵn sàng.

Ưu điểm của Docker Swarm so với các giải pháp khác

Mặc dù Kubernetes nổi tiếng với khả năng mạnh mẽ, các cụm mà bạn thường thấy trên Kubernetes hoặc thậm chí các nền tảng ảo hóa như Proxmox có thể khá phức tạp đối với người mới bắt đầu. Ngược lại, Docker Swarm lại dễ tiếp cận hơn rất nhiều cho người dùng home lab và những ai mới làm quen với công nghệ điều phối container.

Docker Swarm được tích hợp sẵn trong Docker Engine, giúp việc thiết lập trở nên thuận tiện. Hơn nữa, nó tương thích tốt với giao diện web Portainer, cho phép bạn quản lý kho vũ khí container của mình mà không cần phải học thêm quá nhiều lệnh terminal mới. Sự đơn giản này giúp người dùng dễ dàng bắt đầu mà vẫn tận hưởng các lợi ích của một hệ thống quản lý container phân tán.

Giao diện tab Containers bên trong Portainer hiển thị danh sách các containerGiao diện tab Containers bên trong Portainer hiển thị danh sách các container

Hướng Dẫn Thiết Lập Các Node Docker Swarm

Về mặt kỹ thuật, bạn có thể có một môi trường Docker Swarm hoạt động chỉ với một node quản lý (manager) và một node worker. Tuy nhiên, để tận dụng tối đa tiềm năng của cụm và đảm bảo tính sẵn sàng cao (High-Availability), bạn nên có ba hoặc nhiều hơn các node quản lý trong cụm (lý tưởng là số lẻ). Mặc dù khuyến nghị sử dụng các máy tính Linux riêng biệt để giảm thiểu vấn đề điểm lỗi duy nhất, bạn cũng có thể sử dụng máy ảo để cấu hình cụm Docker của mình. Giả sử bạn đã cài đặt Docker Engine trên mỗi node, hãy làm theo các bước sau:

Chuẩn bị trước khi thiết lập

Đảm bảo tất cả các máy tính (PC, SBC hoặc máy ảo) mà bạn định dùng làm node đều đã được cài đặt Docker Engine. Các máy này cũng nên có kết nối mạng ổn định với nhau.

Các bước thiết lập node quản lý (Manager Node)

  1. Khởi động node chính (node bạn muốn làm manager) và mở ứng dụng terminal của nó.
  2. Chạy lệnh ip addr và ghi lại địa chỉ IPv4 của node này. Đây sẽ là địa chỉ mà các node khác sẽ dùng để kết nối.
    ip addr

    Hiển thị địa chỉ IPv4 trên terminal sau khi chạy lệnh ip addrHiển thị địa chỉ IPv4 trên terminal sau khi chạy lệnh ip addr

  3. Thực hiện lệnh này để cấu hình node làm trung tâm của thiết lập Docker Swarm:
    sudo docker swarm init --advertise-addr IP_addr_of_manager

    Lệnh khởi tạo Docker Swarm với địa chỉ IP của node quản lýLệnh khởi tạo Docker Swarm với địa chỉ IP của node quản lý

  4. Sao chép mã token được hiển thị trong terminal trước khi chuyển sang các hệ thống khác mà bạn muốn thêm vào cụm.
    Token được hiển thị để tham gia vào cụm Docker SwarmToken được hiển thị để tham gia vào cụm Docker Swarm

Thêm các node worker vào cụm Swarm

  1. Trên các hệ thống khác (mà bạn muốn làm node worker), chạy lệnh docker swarm join theo sau là mã token bạn đã nhận được từ node quản lý để thêm chúng làm node worker.
    sudo docker swarm join --token token_string IP_addr_of_manager:2377

    Lệnh tham gia cụm Docker Swarm với token và địa chỉ IP của node quản lýLệnh tham gia cụm Docker Swarm với token và địa chỉ IP của node quản lý

(Tùy chọn) Nâng cấp quyền node worker lên manager

Nếu bạn muốn cấp quyền quản lý cho các node worker, bạn có thể chuyển sang node quản lý chính và nâng cấp chúng bằng lệnh này:

sudo docker node promote name_of_worker_node

Lệnh nâng cấp quyền của một node worker lên manager trong Docker SwarmLệnh nâng cấp quyền của một node worker lên manager trong Docker Swarm

(Tùy chọn) Thiết Lập Portainer Để Quản Lý Cụm Docker Swarm

Mặc dù bạn có thể sử dụng các lệnh terminal để quản lý môi trường Swarm của mình, Portainer là một công cụ tuyệt vời dành cho những người thích sự đơn giản của giao diện người dùng web dựa trên menu. Để cấu hình Portainer trên cụm Swarm của bạn, hãy làm theo các bước sau:

Các bước cài đặt Portainer trên node quản lý

  1. Chuyển sang node Manager và sử dụng lệnh curl để tải tệp .yml cho Portainer.
    curl -L https://downloads.portainer.io/ce-lts/portainer-agent-stack.yml -o portainer-agent-stack.yml

    Sử dụng lệnh curl để tải file cấu hình Portainer Agent Stack YMLSử dụng lệnh curl để tải file cấu hình Portainer Agent Stack YML

  2. Sử dụng lệnh docker stack deploy để khởi chạy Portainer instance:
    sudo docker stack deploy -c portainer-agent-stack.yml portainer

    Triển khai một instance Portainer trên thiết lập Docker SwarmTriển khai một instance Portainer trên thiết lập Docker Swarm

Truy cập và cấu hình Portainer

  1. Bạn có thể truy cập giao diện người dùng Portainer bằng cách nhập https://IP_addr_of_manager:9443 vào trình duyệt web của bất kỳ hệ thống nào được kết nối với cùng mạng với node manager.
    Giao diện Portainer đang được truy cập thông qua trình duyệt webGiao diện Portainer đang được truy cập thông qua trình duyệt web
  2. Chọn một Mật khẩu cho người dùng admin và nhấn Create User.
    Màn hình tạo người dùng quản trị trong PortainerMàn hình tạo người dùng quản trị trong Portainer

Nếu bạn đã thực hiện tất cả các bước một cách chính xác, bảng điều khiển Portainer sẽ xuất hiện và cụm Swarm sẽ có thể truy cập được từ tab Home. Portainer có giao diện người dùng thân thiện với người mới bắt đầu, vì vậy bạn sẽ không gặp quá nhiều khó khăn khi điều hướng các menu của nó.

Giao diện tab Stacks trong Portainer hiển thị các dịch vụ đang chạyGiao diện tab Stacks trong Portainer hiển thị các dịch vụ đang chạy

Giao diện Portainer hiển thị nhiều container đang chạy, minh họa việc quản lý containerGiao diện Portainer hiển thị nhiều container đang chạy, minh họa việc quản lý container

Xây Dựng Cụm Self-Hosting Mạnh Mẽ Với Docker Swarm

Với các bước trên, bạn đã sẵn sàng để thử nghiệm và khai thác cụm Docker Swarm trong home lab của mình. Docker Swarm cung cấp một giải pháp hiệu quả để quản lý các dịch vụ container hóa, đảm bảo tính ổn định, khả năng cân bằng tải và chịu lỗi cho các ứng dụng của bạn.

Đối với những người đam mê thử nghiệm và học viên sysadmin/DevOps, việc tìm hiểu thêm về Kubernetes cũng có thể là một ý tưởng hay. Mặc dù phức tạp hơn đáng kể so với Docker Swarm, Kubernetes tương thích với Podman và một loạt các công cụ chuyên nghiệp khác. Chưa kể, nó có khả năng mở rộng và tự phục hồi tốt hơn so với đối thủ dựa trên Docker của nó.

Tuy nhiên, nếu bạn là người mới làm quen với hệ sinh thái home lab hoặc chỉ muốn tự host một vài dịch vụ, một môi trường Docker Swarm là giải pháp hoàn hảo cho những vấn đề liên quan đến điều phối container của bạn. Hãy bắt đầu xây dựng cụm của riêng bạn và trải nghiệm những lợi ích mà Docker Swarm mang lại!

Bạn đã thử thiết lập Docker Swarm trong home lab của mình chưa? Hãy chia sẻ kinh nghiệm hoặc bất kỳ câu hỏi nào của bạn trong phần bình luận bên dưới!

Related posts

VRAM GPU: Lượng lớn có thực sự đảm bảo FPS cao trong game?

Administrator

Tiết Kiệm Chi Phí: 5 Phần Mềm Miễn Phí & Mã Nguồn Mở Vượt Trội Bản Trả Phí

Administrator

Qualcomm Ra Mắt Dòng Chip Snapdragon G Series Mới: Nâng Tầm Trải Nghiệm Gaming Di Động

Administrator