#

Docker Swarm là gì? Tính năng và hoạt động của Docker Swarm

 27/06/2022 - 15:34 Trịnh Duy Thanh

Docker ra đời là một sự thay thế hoàn toàn cho các máy ảo. Với tính năng vượt trội hơn hẳn, Docker cho phép các nhà phát triển dễ dàng giải quyết các vấn đề nhanh chóng và chính xác hơn. Hãy cùng BKHOST tìm hiểu về nền tảng Docker và các đặc điểm của Docker Swarm ở bài viết dưới đây.

Docker và Docker Container là gì?

Docker là một công cụ cho phép triển khai ứng dụng với dung lượng tối ưu hoá nhằm nâng cao hiệu suất hoạt động trong mọi môi trường.

Docker-va-docker-container

Đăng ký dịch vụ Email Sever chỉ từ 15k/tháng

BKHOST đang có chương trình khuyến mãi cực tốt dành cho khách hàng đăng ký dịch Email Server:

  • Giảm giá lên đến 30%.
  • Chỉ từ 15k/tháng.

Đăng ký ngay:

mail sever

Docker container là một gói phần mềm nhẹ gồm mã, framework hay thư viện… cần thiết để chạy một ứng dụng.

Virtual machine va docker container

Các Swarm giúp Docker hoạt động linh hoạt trên nhiều nút và có thể chia sẻ container với nhau hiệu quả hơn trong một hệ điều hành máy chủ.

Docker Swarm là gì?

Docker Swarm là một công cụ được sử dụng để thiết lập và triển khai một cụm gồm nhiều nút được chạy trên các ứng dụng Docker.

Docker Swarm la gi

Docker Swarm gồm nhiều nút Docker Daemon tương tác với nhau thông qua API và có nhiệm vụ triển khai các container trong Swarm.

Cau truc Docker Swarm

Năm yếu tố chính trong môi trường Docker đó là: Docker container, Docker daemon, Docker images, Docker client và Docker registry.

Ví dụ về Docker container:

Docker container

Các Swarm có khả năng khắc phục các container bị lỗi.

Docker compose va docker swarm

Docker Swarm còn có khả năng sắp xếp các container bị lỗi nút bằng cách sử dụng thư mục sao lưu của các nút trong Swarm để khôi phục dữ liệu.

Docker Swarm sap xep container

Các tính năng của Docker Swarm

Docker Swarm có các tính năng như:

  • Decentralized access hỗ trợ tiếp cận và quản lý môi trường.
  • High security giúp bảo mật các giao tiếp trong Swarm.
  • Autoload balancing giúp cân bằng tải và thiết lập các cấu trúc trong môi trường Swarm.
  • High scalability là khả năng mở rộng cho phép chuyển đổi môi trường Swarm sang một cơ sở hạ tầng tốt hơn.
  • Roll-back a task có khả năng khôi phục môi trường an toàn trước khi xảy ra lỗi.

Các khái niệm về Swarm Mode

Service and Tasks

Service and Tasks

  • Docker container hoạt động dựa trên các dịch vụ.
  • Có hai cách triển khai dịch vụ chính là tổng thể và sao chép.
  • Dịch vụ tổng thể có nhiệm vụ quản lý các container chạy trên nút Swarm, còn dịch vụ sao chép giúp quản lý lượng truy cập giống nhau trên máy chủ.
  • Dịch vụ cho phép mở rộng quy mô ứng dụng.
  • Điều kiện để triển khai dịch vụ trong Swarm đó là thiết lập các nút.
  • Dịch vụ được truy cập bởi mọi nút trong nhóm.
  • Một dịch vụ bao gồm nhiệm vụ thực hiện các công việc.
  • Dịch vụ được thiết lập dựa trên Docker và một nút cụ thể.

Node

  • Mỗi một nút Swarm là một phiên bản của công cụ Docker.
  • Một máy chủ có thể chạy nhiều nút khác nhau.
  • Trong một mô hình các nút được phân phối chạy trên các thiết bị khác nhau.

Docker Swarm hoạt động như thế nào?

Gói dịch vụ bao gồm một nhóm các container của hình ảnh được sử dụng để thay đổi quy mô ứng dụng trong Swarm. Điều kiện của việc triển khai dịch vụ này đó là thiết lập các nút như nút quản lý hoặc nút thực thi.

Ví dụ:

Nút quản lý gửi lệnh đến nút thực thi.

Docker Swarm hoat dong

Nút quản lý có nhiệm vụ theo dõi các nút thực thi trong cụm thực hiện các tác vụ được yêu cầu. Sau đó các agent của nút thực thi sẽ tiến hành báo cáo công việc về nút quản lý. Hai nút này giao tiếp với nhau bằng API thông qua HTTP cho phép triển khai và truy cập các dịch vụ dễ dàng hơn.

Ví dụ về hoạt động của Swarm:

hoat dong cua Swarm

Swarm với các liên kết API cho phép điều phối và tạo tác vụ tương ứng cho dịch vụ thông qua giao diện dòng lệnh. Đồng thời các địa chỉ IP cũng được sử dụng để phân chia nhiệm vụ công việc chi tiết hơn thông qua các nút thực thi chạy trên tác vụ.

So sánh Kubernetes vs Docker Swarm

Tính năngKubernetesDocker Swarm
Cài đặtPhức tạpĐơn giản
Cân bằng tảiKhông tự độngTự động
Khả năng mở rộngHoạt động chậmHoạt động nhanh
CụmKhó thiết lậpDễ dàng thiết lập
Thiết lập containerTriển khai thông qua hình thức thiết lập lạiTriển khai trực tiếp
Ghi nhật ký và giám sátCông cụ tích hợp để quản lý cả hai quy trìnhCác công cụ không cần thiết để ghi nhật ký và giám sát
Tính khả dụngTính khả dụng caoTăng tính khả dụng
Khối lượng dữ liệuĐược chia sẻ với các container từ cùng một nhómCó thể được chia sẻ với mọi container

Thử nghiệm trên Docker Swarm cho người mới bắt đầu

Để triển khai Docker Engine, chạy các lệnh Docker và cài đặt Docker Swarm cần có một số điều kiện như hai máy chủ khác nhau, hệ điều hành Ubuntu 64-bit, tài khoản Ubuntu…

Bước 1: Cập nhật kho phần mềm bằng lệnh:

sudo apt-get update

Bước 2: Gỡ cài đặt các phiên bản Docker cũ bằng lệnh:
sudo apt-get remove docker docker-engine docker.io

Bước 3: Cài đặt Docker trên Ubuntu bằng lệnh:
sudo apt install docker.io

Bước 4: Thiết lập Docker trong cửa sổ dòng lệnh:
sudo systemctl start docker

sudo systemctl enable docker

Bước 5: Xác minh phiên bản Docker bằng lệnh:
sudo docker --version

Bước 6: Chạy Docker Container

Lấy MySQL trong Docker Image từ Docker Hub:

sudo docker pull mysql

sudo docker run -d -p0.0.0.0:80:80 mysql:latest

Sau đó, lấy MySQL mới nhất và liệt kê các Docker Image trên máy bằng bệnh:
sudo docker ps -a

Bước 7: Tạo Swarm với địa chỉ IP của nút quản lý với lệnh:
sudo Docker Swarm init --advertise-addr 192.168.2.151

Hoàn thành cấu hình:

hoan thanh cau hinh Swarm voi dia chi ip

Tạo nút thực thi bằng cách sao chép lệnh “swarm init” và dán đầu ra vào đó:

sudo Docker Swarm tham gia --token SWMTKN-1- xxxxx

Kết quả hiển thị:

Ket qua hien thi

Quay trở lại nút quản lý để liệt kê nút thực thi bằng lệnh:

sudo docker node ls

Hoàn tất thiết lập Swarm Cluster:

hoan tat thiet lap Swarm Cluster

Khởi chạy dịch vụ trong Swarm với nút quản lý bằng lệnh:

sudo docker service create --name HelloWorld alpine ping docker.com

Lệnh này cho phép truy cập tệp HelloWorld từ hệ thống từ xa, để kiểm tra hãy chạy lệnh:
sudo docker service ls

Kết quả hiển thị như sau:

Ket qua hien thi

Tổng kết về Docker Swarm

Trên đây là một số thông tin về Docker Swarm mà chúng tôi đã tóm lược và hy vọng bạn sẽ áp dụng tốt nhất loại công cụ này vào dự án của mình. Ngoài ra, vẫn còn có những vấn đề khác liên quan đến Docker chưa được đề cập đến trong bài viết này.

Nếu bạn có thắc mắc về Docker Swarm, hãy để lại ở bên bình luận bên dưới, BKHOST sẽ trả lời bạn trong thời gian sớm nhất.

P/s: Bạn cũng có thể truy cập vào Blog của BKHOST để đọc thêm các bài viết chia sẻ kiến thức về lập trình, quản trị mạng, website, domain, hosting, vps, server, email,… Chúc bạn thành công.

Đăng ký tên miền .ME tại BKHOST

BKHOST đang có chương trình khuyến mãi cực tốt: giảm ngay 80k cho khách hàng đăng ký mới tên miền .ME

Bắt đầu một website với tên miền .ME và tự tin thể hiện bản thân với thế giới. BKHOST cam kết giá tốt. Đăng ký .me domain ngay hôm nay.

Tôi là Trịnh Duy Thanh, CEO & Founder Công ty Cổ Phần Giải Pháp Mạng Trực Tuyến Việt Nam - BKHOST. Với sứ mệnh mang tới các dịch vụ trên Internet tốt nhất cho các cá nhân và doanh nghiệp trong nước và quốc tế, tôi luôn nỗ lực hết mình nâng cấp đầu tư hệ thống phần cứng, nâng cao chất lượng dịch vụ chăm sóc khách hàng để đem đến những sản phẩm hoàn hảo nhất cho người tiêu dùng. Vì vậy, tôi tin tưởng sẽ đem đến các giải pháp CNTT mới nhất, tối ưu nhất, hiệu quả nhất và chi phí hợp lý nhất cho tất cả các doanh nghiệp.
Bình luận

Thanh toán linh hoạt

Chúng tôi chấp nhận thanh toán như ATM, Visa, Internet Banking, Paypal, Baokim, Ngân lượng

Gọi ĐT tư vấn ngay
Chat ngay qua Zalo
Chat ngay qua Messenger