Image default
Máy Tính

Thiết Lập Docker Swarm Cho Home Lab: Tối Ưu Hóa Quản Lý Container Từ A Đến Z

Với những người đam mê công nghệ và chủ sở hữu các dịch vụ tự lưu trữ (self-hosted service) tại nhà, việc nâng cấp phòng thí nghiệm cá nhân (home lab) bằng các ứng dụng hữu ích là một hành trình không ngừng nghỉ. Tuy nhiên, khi chuyển đổi từ các ứng dụng truyền thống chứa đầy quảng cáo, dựa trên đăng ký và thu thập dữ liệu sang một bộ dịch vụ tự lưu trữ hoàn chỉnh, bạn có thể mong muốn thiết lập khả năng cân bằng tải (load-balancing) và tự động mở rộng (auto-scaling) cho bộ công cụ lưu trữ cục bộ của mình. Nếu bạn là người dùng Docker chính, tiện ích Docker Swarm cung cấp một phương tiện đơn giản để giúp bạn quản lý các workload được container hóa. Bài viết này sẽ hướng dẫn bạn cách thiết lập Docker Swarm trên home lab của mình một cách chi tiết và hiệu quả.

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

Giống như Kubernetes, Docker Swarm là một công cụ điều phối container (container orchestration) được thiết kế để giúp bạn thiết lập các cụm máy tính (clusters) gồm các PC, SBC (Single-Board Computer) hoặc thậm chí là máy ảo để thực hiện các tác vụ container hóa của mình. Nhờ có Swarm, bạn có thể xây dựng một cụm máy chủ Docker đáng tin cậy, có khả năng phân bổ (hoặc loại bỏ) động các node bổ sung để đáp ứng nhu cầu tài nguyên của các container. Docker Swarm cũng giúp home lab của bạn có khả năng chịu lỗi tốt hơn, vì nó có thể chuyển workload của một node bị offline sang các hệ thống khác trong cụm.

Tuy nhiên, không giống như các cụ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, Docker Swarm dễ tiếp cận hơn nhiều đối với những người mới bắt đầu và người dùng home lab. Nó cũng tương thích với giao diện người dùng web (UI) của Portainer, vì vậy bạn không cần phải bận tâm đến việc học các lệnh terminal mới để quản lý kho container của mình. Đây là một lợi thế lớn giúp việc quản lý Docker Swarm trở nên trực quan và đơn giản hơn, đặc biệt cho những ai chưa quen với việc làm việc qua dòng lệnh.

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

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 manager và một node worker, nhưng bạn sẽ không thể tận dụng tối đa tiềm năng của cụm. Để có một thiết lập Docker Swarm có độ sẵn sàng cao (high-availability), bạn sẽ cần ba hoặc nhiều hơn các node manager (lý tưởng là số lẻ) trong cụm. Mặc dù chúng tôi khuyên bạn nên sử dụng các thiết bị Linux riêng biệt để giảm thiểu các vấn đề về điểm lỗi đơn lẻ (single point of failure), 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ị Node Manager Chính

  1. Khởi động node chính của bạn và khởi chạy ứng dụng terminal của nó.

  2. Chạy lệnh ip addr và ghi lại địa chỉ IPv4 của nó:

    ip addr

    Màn hình terminal hiển thị kết quả lệnh ip addr để xác định địa chỉ IP cho thiết lập Docker Swarm.Màn hình terminal hiển thị kết quả lệnh ip addr để xác định địa chỉ IP cho thiết lập Docker Swarm.

  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

    Terminal hiển thị quá trình khởi tạo Docker Swarm với lệnh docker swarm init và địa chỉ IP.Terminal hiển thị quá trình khởi tạo Docker Swarm với lệnh docker swarm init và địa chỉ IP.

    • Hãy nhớ thay thế chuỗi IP_addr_of_manager bằng địa chỉ IPv4 bạn đã lấy ở bước trước. Lệnh này sẽ khởi tạo cụm Swarm và chỉ định địa chỉ IP mà các node khác sẽ sử dụng để kết nối.

Thêm Các Node Worker Vào Swarm Cluster

  1. Sao chép mã token 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.
    Mã token được tạo ra để các node worker tham gia vào cluster Docker Swarm.Mã token được tạo ra để các node worker tham gia vào cluster Docker Swarm.

  2. Chạy lệnh docker swarm join theo sau là mã token bạn đã nhận từ node manager để thêm các hệ thống khác làm node worker:

    sudo docker swarm join --token token_string IP_addr_of_manager:2377

    Lệnh docker swarm join được thực thi để thêm node vào cluster Docker Swarm.Lệnh docker swarm join được thực thi để thêm node vào cluster Docker Swarm.

    • Đảm bảo mỗi node có một tên riêng biệt, nếu không, bạn có thể gặp phải các vấn đề khi Docker không thể chạy dịch vụ trên một máy cụ thể. Cổng 2377 là cổng mặc định để giao tiếp giữa các node Swarm.

(Tùy Chọn) Nâng Cấp Quyền Node Worker Lên Manager

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

    sudo docker node promote name_of_worker_node

    Nâng cấp quyền một node worker thành manager trong Docker Swarm bằng lệnh docker node promote.Nâng cấp quyền một node worker thành manager trong Docker Swarm bằng lệnh docker node promote.

    • Việc có nhiều node manager sẽ tăng cường khả năng chịu lỗi và tính sẵn sàng của cụm.

(Tùy Chọn) Cài Đặt Portainer Để Quản Lý Docker Swarm Bằng Giao Diện Web

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ụ vững chắc cho những người thích sự đơn giản của giao diện người dùng web (web UI) 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:

  1. Chuyển sang node Manager và sử dụng lệnh curl để lấy 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 cho Docker Swarm.Sử dụng lệnh curl để tải file cấu hình Portainer cho Docker Swarm.

  2. Sử dụng lệnh docker stack deploy để triển khai Portainer:

    sudo docker stack deploy -c portainer-agent-stack.yml portainer

    Triển khai Portainer lên môi trường Docker Swarm bằng lệnh docker stack deploy.Triển khai Portainer lên môi trường Docker Swarm bằng lệnh docker stack deploy.

  3. 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.
    Truy cập giao diện web Portainer qua trình duyệt bằng địa chỉ IP của node manager.Truy cập giao diện web Portainer qua trình duyệt bằng địa chỉ IP của node manager.

  4. 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ị trên Portainer sau khi cài đặt thành công.Màn hình tạo người dùng quản trị trên Portainer sau khi cài đặt thành công.

    Giả sử bạn đã thực hiện tất cả các bước một cách chính xác, dashboard của Portainer sẽ xuất hiện, và cụm Swarm sẽ có thể truy cập 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 vấn đề khi điều hướng các menu của nó.
    Giao diện Containers trong Portainer hiển thị các container đang chạy.Giao diện Containers trong Portainer hiển thị các container đang chạy.Tab Stacks trong giao diện Portainer hiển thị các dịch vụ được triển khai trên Docker Swarm.Tab Stacks trong giao diện Portainer hiển thị các dịch vụ được triển khai trên Docker Swarm.

Xây Dựng Cụm Tự Lưu Trữ Mạnh Mẽ Với Docker Swarm

Với các bước trên, bạn có thể tự do thử nghiệm với cụm Swarm của mình theo ý muốn. Đối với những người có kinh nghiệm thử nghiệm chuyên sâu và những người học sysadmin/DevOps, việc mở rộng sang 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 việc 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.

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ự lưu trữ một vài dịch vụ, môi trường Docker Swarm là giải pháp hoàn hảo cho những lo ngại về điều phối container của bạn. Nó cung cấp sự cân bằng tuyệt vời giữa hiệu suất, tính dễ sử dụng và độ tin cậy, giúp bạn xây dựng một hạ tầng quản lý container mạnh mẽ và linh hoạt. Hãy bắt đầu xây dựng hệ thống quản lý container mạnh mẽ của bạn ngay hôm nay!

Related posts

11 Vật Dụng Hữu Ích Bạn Có Thể Tự In 3D Thay Vì Mua Sắm

Administrator

Tự động hóa trên Windows: Nâng tầm hiệu suất với các công cụ hàng đầu

Administrator

6 Ý Tưởng Sáng Tạo Với Máy In 3D: Nâng Tầm Không Gian Làm Việc Của Bạn

Administrator

5 Tính Năng Ẩn Trên Windows Bạn Nên Tận Dụng Ngay Để Tăng Hiệu Suất

Administrator

Top 6 Phần Mềm Thay Thế Adobe Miễn Phí Mạnh Mẽ Bạn Nên Thử

Administrator

Hướng Dẫn Chi Tiết Cách Truy Cập Máy Tính Từ Xa: Phân Biệt Remote Desktop và VPN

Administrator