Trang chủ Thủ Thuật Docker Swarm Mode là gì và khi nào bạn nên sử dụng...

Docker Swarm Mode là gì và khi nào bạn nên sử dụng nó?

0
46

Docker Swarm Mode là gì và khi nào bạn nên sử dụng nó?

Illustration showing the Docker logo

Chế độ Swarm là hệ thống điều phối tích hợp của Docker để mở rộng các vùng chứa trên một cụm máy vật lý. Nhiều khách hàng độc lập đang chạy Docker Engine tổng hợp tài nguyên của họ, tạo thành một nhóm.

Tính năng này đi kèm với Docker và bao gồm mọi thứ bạn cần để triển khai ứng dụng trên các nút. Chế độ Swarm có mô hình chia tỷ lệ khai báo trong đó bạn nêu số lượng bản sao mà bạn yêu cầu. Trình quản lý bầy đàn thực hiện hành động để khớp số lượng bản sao thực tế với yêu cầu của bạn, tạo và phá hủy các vùng chứa nếu cần.

Swarms cũng có nhiều chức năng hơn. Các cụm được hưởng lợi từ các chức năng khám phá dịch vụ tích hợp, hỗ trợ cập nhật luân phiên và định tuyến lưu lượng mạng thông qua bộ cân bằng tải bên ngoài.

Đây là cách bạn có thể sử dụng chế độ Swarm để thiết lập khối lượng công việc phân tán đơn giản trên một nhóm máy. Bạn nên sử dụng Swarm nếu bạn muốn lưu trữ các ứng dụng có thể mở rộng với khả năng dự phòng bằng cách sử dụng cài đặt Docker tiêu chuẩn, không yêu cầu phụ thuộc nào khác.

Tạo bầy của riêng bạn

Đảm bảo rằng bạn đã cài đặt Docker trước khi tiếp tục. Bạn sẽ cần gói Docker CE đầy đủ trên mỗi máy mà bạn muốn thêm vào nhóm.

Quảng cáo

Chỉ định một trong các máy chủ của bạn làm người quản lý bầy đàn. Nút này sẽ điều phối cụm bằng cách đưa ra các yêu cầu lập lịch vùng chứa cho các nút khác. Chạy docker swarm init trên trình quản lý để bắt đầu quá trình thiết lập cụm:

docker swarm init --advertise-addr 192.168.0.1

af9d7b66

Thay thế địa chỉ IP bằng IP thực của nút người quản lý của bạn. Lệnh sẽ phát ra docker swarm join mà bạn nên chạy trên các nút phụ của mình. Sau đó, chúng sẽ tham gia vào bầy đàn và đủ điều kiện để lưu trữ các vùng chứa.

0ec83c27

Khi bạn đã thêm các nút của mình, hãy chạy docker info trên trình quản lý để kiểm tra trạng thái của cụm. Phần Swarm trong đầu ra của lệnh phải được liệt kê là “hoạt động”. Kiểm tra số lượng “Nút” khớp với số lượng nút bạn đã thêm.

1c780b44

Bạn có thể biết thêm chi tiết về một nút bằng cách chạy docker node ls . Điều này hiển thị ID duy nhất của mỗi nút, tên máy chủ và trạng thái hiện tại của nó. Các nút cho thấy khả năng sẵn sàng “hoạt động” với trạng thái “sẵn sàng” là khỏe mạnh và sẵn sàng hỗ trợ khối lượng công việc của bạn. Cột Trạng thái người quản lý chỉ ra các nút cũng hoạt động như người quản lý bầy đàn. “Người lãnh đạo” là nút chịu trách nhiệm chung cho cụm.

Triển khai một Container

Khi các nút của bạn đã sẵn sàng, bạn có thể triển khai một vùng chứa vào nhóm của mình. Chế độ Swarm sử dụng khái niệm “dịch vụ” để mô tả việc triển khai vùng chứa. Mỗi cấu hình dịch vụ tham chiếu đến hình ảnh Docker và số lượng bản sao để tạo từ hình ảnh đó.

dịch vụ docker tạo --replicas 3 --name apache httpd: mới nhất

Lệnh này tạo một dịch vụ bằng cách sử dụng httpd:latest hình ảnh mới nhất cho máy chủ web Apache. Ba bản sao độc lập sẽ được tạo, giúp bạn có khả năng phục hồi chống lại sự kết thúc của vùng chứa và sự cố ngừng hoạt động của nút. Bản sao vùng chứa được gọi là “nhiệm vụ” trong cách nói của Docker Swarm.

Quảng cáo

Docker sẽ liên tục duy trì trạng thái được yêu cầu. Nếu một trong các nút bị gián đoạn, bản sao mà nó đang lưu trữ sẽ được lên lịch lại cho các nút khác. Bạn sẽ có ba vùng chứa Apache chạy trong suốt thời gian tồn tại của dịch vụ.

Dịch vụ mở rộng quy mô

Bạn có thể mở rộng quy mô dịch vụ bất kỳ lúc nào bằng cách sử dụng lệnh docker service scale

quy mô dịch vụ docker apache = 5

Docker sẽ thêm hai phiên bản vùng chứa mới để số lượng bản sao tiếp tục khớp với số lượng được yêu cầu. Các phiên bản bổ sung sẽ được lên lịch cho các nút có đủ dung lượng trống để hỗ trợ chúng.

Các dịch vụ cũng có thể được mở rộng với docker service update :

cập nhật dịch vụ docker apache --replicas = 5

Khi bạn sử dụng biến thể này, bạn có thể khôi phục thay đổi bằng cách sử dụng một lệnh chuyên dụng:

dịch vụ docker khôi phục apache

Dịch vụ sẽ được hoàn nguyên trở lại ba bản sao. Docker sẽ phá hủy hai trường hợp vùng chứa, cho phép số lượng bản sao trực tiếp khớp lại với trạng thái trước đó.

Cập nhật lần lượt

Chế độ bầy đàn hỗ trợ cập nhật luân phiên trong đó các phiên bản vùng chứa được tăng tỷ lệ tăng dần. Bạn có thể chỉ định độ trễ giữa việc triển khai dịch vụ đã sửa đổi cho mỗi nút trong nhóm. Điều này cho bạn thời gian để hành động trên các hồi quy nếu các vấn đề được lưu ý. Bạn có thể nhanh chóng khôi phục vì không phải tất cả các nút đều sẽ nhận được dịch vụ mới.

Quảng cáo

Thêm cờ – --update-delay docker service scale để kích hoạt các bản cập nhật liên tục. Độ trễ được xác định là sự kết hợp của giờ h , phút m và giây s . Trình quản lý bầy đàn sẽ cập nhật từng cá thể vùng chứa riêng lẻ. Bạn có thể điều chỉnh số lượng nhiệm vụ được cập nhật trong một thao tác bằng cờ --update-parallelism

Dưới đây là cách chia tỷ lệ một dịch vụ thành 10 bản sao, cập nhật ba vùng chứa cùng một lúc với độ trễ năm phút giữa mỗi lô:

quy mô dịch vụ docker - tên apache --replicas = 10 - cập nhật-trễ 5m - cập nhật-song song 3

Quản lý dịch vụ

Nhiều lệnh Docker quen thuộc cũng hoạt động với các dịch vụ. Thêm các lệnh quản lý vùng chứa thông thường với docker service để liệt kê các dịch vụ, xem nhật ký của chúng và xóa chúng.

  • docker service inspect – Kiểm tra dữ liệu kỹ thuật của một dịch vụ được đặt tên.
  • docker service logs – Xem đầu ra nhật ký được liên kết với một dịch vụ được đặt tên.
  • docker service ls – Liệt kê tất cả các dịch vụ đang chạy.
  • docker service ps – Hiển thị các cá thể vùng chứa riêng lẻ được đóng gói bởi một dịch vụ cụ thể.
  • docker service rm – Loại bỏ một dịch vụ với tất cả các bản sao của nó. Không có lời nhắc xác nhận.

Bên cạnh các hoạt động quản lý cơ bản được mô tả cho đến nay, các dịch vụ đi kèm với một tập hợp các tùy chọn cấu hình phong phú. Những điều này có thể được áp dụng khi tạo một dịch vụ hoặc sau đó bằng lệnh docker service update

Các tùy chọn dịch vụ bao gồm các biến môi trường, lệnh kiểm tra tình trạng, cài đặt DNS, nhãn và điều kiện khởi động lại. Các phiên bản vùng chứa đang chạy thường không bị phá hủy docker service update trừ khi bạn đang thay đổi cài đặt yêu cầu giải trí có hiệu lực.

Hiển thị các cổng mạng

Các cổng mạng vùng chứa được hiển thị với cờ --publish docker service create docker và docker service update docker. Điều này cho phép bạn chỉ định một cổng container đích và cổng công cộng để hiển thị nó dưới dạng.

dịch vụ docker tạo --name apache --replicas 5 --publish đã xuất bản = 8080, target = 80 nginx: mới nhất
Quảng cáo

Giờ đây, bạn có thể kết nối với cổng 8080 trên bất kỳ nút công nhân nào của mình để truy cập phiên bản của dịch vụ NGINX. Điều này hoạt động ngay cả khi nút bạn kết nối không thực sự lưu trữ một trong các tác vụ của dịch vụ. Bạn chỉ cần tương tác với bầy đàn và nó sẽ đảm nhận việc định tuyến mạng. Cách tiếp cận này được gọi là “lưới định tuyến”.

Một tùy chọn thay thế cho phép bạn xuất bản các cổng vùng chứa trên các nút riêng lẻ nơi các tác vụ đang chạy. Thêm mode=host vào --published để kích hoạt tính năng này. Dịch vụ sẽ chỉ được hiển thị trên các nút lưu trữ nó. Điều này hữu ích trong trường hợp bạn muốn kết nối với một phiên bản cụ thể của dịch vụ. Lưới định tuyến ngẫu nhiên hóa phiên bản bạn kết nối, bất kể nút bạn sử dụng để kết nối.

Docker Swarm cũng hỗ trợ mạng lớp phủ. Chúng tương tự như các mạng Docker thông thường. Tham gia một dịch vụ vào một mạng cho phép các vùng chứa của nó giao tiếp với bất kỳ dịch vụ nào khác trên mạng.

docker service create --name service1 --network demo-network my-image: new
docker service create --name service2 --network demo-network my-image: new

Các tác vụ được tạo bởi service1service2 sẽ có thể kết nối với nhau thông qua mạng lớp phủ. Mạng mặc định được gọi là ingress cung cấp chức năng lưới định tuyến tiêu chuẩn được mô tả ở trên.

Sự kết luận

Chế độ Swarm là một bộ điều phối vùng chứa được tích hợp ngay trong Docker. Vì nó được bao gồm theo mặc định, bạn có thể sử dụng nó trên bất kỳ máy chủ nào có cài đặt Docker Engine.

Tạo một bầy cho phép bạn tái tạo các vùng chứa trên một nhóm máy vật lý. Swarm cũng cho phép bạn thêm nhiều nút quản lý để cải thiện khả năng chịu lỗi. Nếu người lãnh đạo tích cực rời khỏi cụm, người quản lý khác có thể tiếp quản để duy trì hoạt động.

Quảng cáo

Chế độ Docker Swarm so sánh thuận lợi với các nền tảng điều phối thay thế như Kubernetes. Bắt đầu dễ dàng hơn vì nó được tích hợp với Docker và có ít khái niệm hơn để học. Việc cài đặt và bảo trì trên phần cứng tự quản lý thường đơn giản hơn, mặc dù các giải pháp Kubernetes đóng gói sẵn như MicroK8s đã làm xói mòn yếu tố tiện lợi của Swarm. Mặc dù vậy, chế độ Swarm vẫn là một bộ điều phối khả thi cho các khối lượng công việc tự lưu trữ, đặc biệt nếu bạn đang tìm kiếm một giải pháp CLI theo định hướng dành cho nhà phát triển, ít yêu cầu hơn đối với các nhóm vận hành.

How to Lint Your Kubernetes Manifests With Kube-Score

Làm thế nào để thu hút Kubernetes của bạn thao túng với Kube-Score

How Deepfakes Are Powering a New Type of Cyber Crime

Deepfakes đang thúc đẩy một loại tội phạm mạng mới như thế nào

What Is a .gitignore File, And How Do You Configure It?

Tệp .gitignore là gì và bạn định cấu hình nó như thế nào?

How to Scale Docker Containers Across Servers Using Kubernetes

Làm thế nào để mở rộng vùng chứa Docker trên các máy chủ bằng cách sử dụng Kubernetes

How to Use Multi-Threaded Processing in Bash Scripts

Cách sử dụng xử lý đa luồng trong Bash Scripts

What Is a Race Condition?

Điều kiện Cuộc đua là gì?

Dịch từ: https://www.cloudsavvyit.com/13049/what-is-docker-swarm-mode-and-when-should-you-use-it/

BÌNH LUẬN

Vui lòng nhập bình luận của bạn
Vui lòng nhập tên của bạn ở đây