Docker Swarm là gì?” là nghi vấn của không ít người muốn tìm tòi về lập trình web. Trong đó Docker và Docker Swarm luôn được đưa lên bàn cân để so sánh với nhau. Vậy bạn có biết Docker Swarm là gì cũng như sự khác nhau giữa hai nhóm này là gì không? Nếu cũng đang gặp vướng mắc trong vấn đề này thì hãy cùng chúng tôi tìm hiểu những thông tin tổng hợp được chia sẻ sau đây.

Bạn đang xem: Docker swarm là gì

Docker là gì? 

Để có thể biết được Docker Swarm là gì? là gì thì đầu tiên chúng ta phải hiểu được Docker là gì trước đã. Docker được định nghĩa là một platform mở. Platform cung cấp cho người dùng những công cụ và dịch vụ để người dùng có thể đóng gói cũng như chạy chương trình của chính mình trên những môi trường khác nhau một cách nhanh chóng nhất.

*

Docker là gì?

Theo wikipedia thì Docker chính là một dự án mã nguồn mở. Nó có khả năng tự động triển khai các ứng dụng Windows và Linux vào trong các container ảo hóa.

Trong đó, Docker gồm có 2 thành phần chính là:

Docker Engine: được dùng để tạo ra các Docker Image và để chạy Docker container.Docker Hub: là dịch vụ lưu trữ cho khả năng chứa các Docker image.

Docker Swarm là gì?

Sau khi đã đôi nét hiểu được Docker thì chúng ta quay lại với vấn đề chính là Docker Swarm là gì?Docker Swarm được định nghĩa là một nhóm máy vật lý hoặc máy ảo đang chạy ứng dụng Docker và đã được cấu hình để kết hợp với nhau trong một cụm. Khi một nhóm máy đã được nhóm lại với nhau, bạn vẫn có thể chạy các lệnh Docker mà bạn đã quen. Nhưng giờ chúng sẽ được thực hiện bởi các máy trong cụm máy của bạn.

*

Docker Swarm là gì?

Các hoạt động của nhóm máy được kiểm soát bởi một trình quản lý swarm và các máy đã tham gia vào cụm được gọi là nodes. Một Swarm node là một phiên bản của công cụ Docker. Có thể chạy nhiều node trên một máy chủ. Nhưng trong triển khai sản xuất, các node được phân phối trên nhiều thiết bị khác nhau.

Các Docker Swarm Nodes là gì?

Một nhóm Docker bao gồm một nhóm máy vật lý hoặc máy ảo hoạt động trong một cụm. Khi một máy tham gia cụm, nó sẽ trở thành một node trong nhóm đó. Chức năng Swarm của Docker nhận ra ba loại node khác nhau, mỗi loại có vai trò khác nhau trong hệ sinh thái Swarm của Docker.

Manager Node

Chức năng chính của các Manager Node là gán nhiệm vụ cho các Worker Node trong nhóm. Các Manager Node cũng giúp thực hiện một số nhiệm vụ quản lý cần thiết để vận hành bầy đàn. Docker đề xuất tối đa bảy Manager Node cho một nhóm.

Leader Node

Khi một cụm được thiết lập, thuật toán đồng thuận Raft được sử dụng để chỉ định một trong số chúng làm “Leader Node”. Leader Node thực hiện tất cả các quyết định manager swarm và điều phối nhiệm vụ cho swarm. Nếu Leader Node không khả dụng do sự cố hoặc sự cố, một Leader Node mới có thể được bầu bằng cách sử dụng thuật toán đồng thuận Raft.

Xem thêm: equal to là gì

Worker Node

Trong một nhóm Docker với nhiều máy chủ, mỗi Worker Node hoạt động bằng cách nhận và thực thi các tác vụ được các nút người quản lý phân bổ cho nó. Theo mặc định, tất cả các chế độ quản lý cũng là các Worker Node và có khả năng thực thi các tác vụ khi chúng có sẵn tài nguyên để thực hiện.

*

Một số Swarm node phổ biến nhất hiện nay

Docker Swarm được sử dụng để làm gì?

Docker Swarm là một công cụ điều phối container (vùng chứa). Có nghĩa là nó cho phép người dùng quản lý nhiều vùng chứa được triển khai trên nhiều máy chủ.

Một trong những lợi ích chính liên quan đến hoạt động của một Docker Swarm là mức độ sẵn sàng cao được cung cấp cho các ứng dụng. Trong một Docker Swarm, thường có một số node worker và ít nhất một node manager chịu trách nhiệm xử lý tài nguyên của các node worker một cách hiệu quả và đảm bảo rằng cụm máy hoạt động hiệu quả.

Một số tính năng cụ thể của Docker Swarm là:

Truy cập phi tập trung: Swarm giúp các nhóm truy cập và quản lý môi trường rất dễ dàng Bảo mật cao: Mọi giao tiếp giữa người quản lý và các client node trong Swarm đều được bảo mật cao Cân bằng tự động tải: Docker Swarm lên lịch các tác vụ bằng nhiều phương pháp khác nhau để đảm bảo rằng có đủ tài nguyên cho tất cả các vùng chứa. Thông qua một quy trình có thể được mô tả là cân bằng tải tự động, trình quản lý Swarm đảm bảo rằng khối lượng công việc vùng chứa được chỉ định chạy trên máy chủ phù hợp nhất để đạt hiệu quả tối ưu.Khả năng mở rộng cao: Cân bằng tải chuyển đổi môi trường Swarm thành một cơ sở hạ tầng có khả năng mở rộng cao.Khôi phục một nhiệm vụ: Swarm cho phép bạn khôi phục các môi trường về các môi trường an toàn trước đó.Đảm bảo tính khả dụng cao: Để hoạt động, một nhóm Docker phải có một trình quản lý nhóm có thể chỉ định nhiệm vụ cho các Worker node. Bằng cách triển khai nhiều trình quản lý, các nhà phát triển đảm bảo rằng hệ thống có thể tiếp tục hoạt động ngay cả khi một trong các Manager node bị lỗi. Docker đề xuất tối đa bảy Manager node cho mỗi cụm.

Cách xác định nodes của Docker Swarm là gì?

Hiện nay Docker Swarm sử dụng 3 cách khác nhau để xác định mỗi nodes mà container sẽ chạy.

Spread: Hoạt động như cài đặt mặc định. Phương pháp này cân bằng các vùng chứa trên các node trong một cụm dựa trên CPU và RAM có sẵn của các node cũng như số lượng vùng chứa mà nó hiện đang chạy. Lợi ích của chiến lược Spread là nếu nút bị lỗi, chỉ một vài vùng chứa bị mất.BinPack: Lập lịch các vùng chứa để sử dụng đầy đủ từng node. Khi một node đã đầy, nó sẽ chuyển sang node tiếp theo trong cụm. Lợi ích của BinPack là nó sử dụng một lượng cơ sở hạ tầng nhỏ hơn. Đặc biệt nó để lại nhiều không gian hơn cho các container lớn hơn trên các máy không sử dụng.Random: Swarm sẽ chọn ngẫu nhiên một nodes.

Các bộ lọc để lập dịch container của Docker Swarm là gì?

Swarm có năm bộ lọc để lập lịch các vùng chứa:

Constraint – Còn được gọi là node tags. Constraint là các cặp khóa/giá trị được liên kết với các node cụ thể. Người dùng có thể chọn một tập hợp con các node khi tạo container và chỉ định một hoặc nhiều cặp giá trị khóa.Affinity – Để đảm bảo các vùng chứa chạy trên cùng một network node. Bộ lọc Affinity yêu cầu một vùng chứa chạy bên cạnh vùng chứa khác dựa trên số nhận dạng, hình ảnh hoặc nhãn.Port – Với bộ lọc này, các cổng đại diện cho một tài nguyên duy nhất. Khi một vùng chứa cố gắng chạy trên một cổng đã bị chiếm dụng, nó sẽ di chuyển đến node tiếp theo trong cụm.Dependency – Khi các vùng chứa phụ thuộc vào nhau, bộ lọc này lập lịch cho chúng trên cùng một node.Health – Trong trường hợp nút không hoạt động bình thường, bộ lọc này sẽ ngăn lập lịch các vùng chứa trên đó.

Sự khác nhau giữa Docker và Docker Swarm

*

Sự khác nhau giữa Docker và Docker Swarm

Docker và Docker Swarm có sự khác biệt như sau. Mục đích của việc thiết kế Docker là tạo ra một môi trường để chạy các thùng chứa (containers).

Xem thêm: 30/4 1/5 Là Ngày Gì – Chào Mừng Ngày Lễ 30/4 Và 1/5

Trong khi đó, Docker Swarm lại chạy trên nhiều máy chủ Docker để sắp xếp các vùng chứa (containers) trên nhiều máy. Docker Swarm cũng bổ sung một số khả năng cho Docker. Cụ thể như kết nối mạng Docker nhiều máy, phân cụm và đơn giản hóa việc quản lý trên hệ sinh thái vùng chứa lớn. Nó có thể chạy trên một máy duy nhất, nhưng cho mục đích học tập. 

Một điểm khác biệt nữa là Docker là một trong những công nghệ vùng chứa trong khi Docker Swarm là một công cụ lập lịch vùng chứa tương tự như Kubernetes. 

Trên đây là những thông tin khái lược về Docker Swarm là gì cũng như sự khác biệt giữa Docker và Docker Swarm. Hy vọng những chia sẻ tổng hợp trên đây có thể phần nào giúp quý vị hiểu hơn về hai nhóm này.

Chuyên mục: Hỏi Đáp