Cách tạo Docker Swarm Manager và Nodes trên Linode

Trước khi bạn bắt đầu

  1. Để hoàn thành hướng dẫn này, bạn cần có ít nhất hai Linodes nằm trong cùng một trung tâm dữ liệu. Các hướng dẫn trong hướng dẫn này được viết cho Ubuntu 16.04, nhưng có thể sử dụng các bản phân phối khác; Linodes không cần sử dụng cùng một bản phân phối.
  2. Làm theo hướng dẫn Thiết lập và Bảo mật Phiên bản Compute của chúng tôi để cập nhật hệ thống của bạn. Bạn cũng có thể muốn đặt múi giờ, cấu hình tên máy chủ, tạo tài khoản người dùng giới hạn và tăng cường quyền truy cập SSH.
  3. Cài đặt Docker trên mỗi Linode. Xem hướng dẫn Cài đặt Docker và Triển khai LAMP Stack hoặc tài liệu cài đặt Docker để biết thêm thông tin.

Ghi chú: Các bước trong hướng dẫn này yêu cầu quyền root. Hãy đảm bảo chạy các bước bên dưới dưới dạng roothoặc với sudotiền tố. Để biết thêm thông tin về quyền, hãy xem hướng dẫn Người dùng và Nhóm của chúng tôi .

Tăng sức mạnh của Docker bằng cách tạo một cụm máy chủ Docker, được gọi là Docker Swarm. Bạn cần một Linode để làm Docker Swarm Manager và một vài máy chủ Docker để tham gia Swarm dưới dạng Nodes.

Trong hướng dẫn này, bạn sẽ thiết lập Docker Swarm Manager và kết nối các Node để triển khai container có thể mở rộng. Điều này yêu cầu nhiều Linode có Docker được cài đặt và chạy trong cùng một trung tâm dữ liệu. Chúng không cần phải chạy cùng một bản phân phối.

Tạo Trình quản lý Docker Swarm

Mục đích của Docker Swarm Manager là nhận lệnh thay mặt cho cụm và chỉ định container cho các nút. Swarm Manager sử dụng Raft Consensus Algorithm để quản lý trạng thái Swarm. Raft Consensus Algorithm đảm bảo rằng tất cả các nút quản lý chịu trách nhiệm quản lý và lên lịch tác vụ trong cụm đều lưu trữ cùng một trạng thái nhất quán. Nếu xảy ra lỗi, một nút duy nhất sẽ đảm nhận các tác vụ và khôi phục trạng thái ổn định.

Trong hướng dẫn này, chúng tôi tạo một Swarm Manager duy nhất. Nếu mục tiêu của bạn là tính khả dụng cao, bạn có thể tạo nhiều trình quản lý.

1.Đăng nhập vào Linode bạn đã chọn cho trình quản lý Swarm và khởi tạo trình quản lý. Thay thế trong ví dụ này bằng địa chỉ IP công khaiPUBLIC_IP của Linode :

docker swarm init --advertise-addr PUBLIC_IP

Docker phản hồi bằng lệnh cần thiết để các nút tham gia Swarm:

Lệnh tham gia Docker Swarm

2.Sử dụng docker infođể xác minh rằng Swarm của bạn đang chạy và hoạt động:

docker info

Đàn ong đang chạy và hoạt động

Kết nối các nút với Trình quản lý

Ở Bước 1 của phần trước, docker swarm initlệnh sẽ đưa ra hướng dẫn về cách tham gia trình quản lý.

docker swarm join --token TOKEN PUBLIC_IP:2377

TOKENChuỗi ký tự dài được hiển thị cho bạn khi bạn khởi tạo Swarm là gì và PUBLIC_IPlà địa chỉ IP công khai của Swarm Manager Linode của bạn. Nếu bạn không nhớ mã thông báo, hãy chạy join-tokentrên trình quản lý để xem thông tin từ swarm initlệnh:

docker swarm join-token worker

1.Để tham gia nút vào Swarm, hãy chạy docker swarm jointừ nút. Thay đổi TOKENthành mã thông báo từ Bước 1 trong phần trước và PUIBLIC_IPthành IP công khai của người quản lý:

docker swarm join --token TOKEN PUBLIC_IP:2377

Đầu ra cho thấy nút đã tham gia vào bầy đàn với tư cách là một công nhân. Bây giờ bạn có một cụm Docker Swarm nhỏ, với một trình quản lý và một nút:Node đã tham gia bầy đàn với tư cách là một công nhân

2.Lặp lại Bước 1 để nối nhiều nút vào Swarm tùy theo nhu cầu.

3.Trên trình quản lý, sử dụng docker node lsđể xem thông tin về trình quản lý và danh sách tất cả các nút:

docker node ls

Triển khai dịch vụ với Docker Swarm

Để triển khai dịch vụ với Docker Swarm, hãy sử dụng trình quản lý để chuẩn bị một nút duy nhất, sau đó mở rộng cấu hình để phù hợp với nhu cầu của bạn. Trong ví dụ này, bạn sẽ cài đặt NGINX trên một nút, sau đó mở rộng thành một cụm (swarm) gồm ba nút.

1.Từ Swarm Manager, sử dụng service createđể triển khai dịch vụ tới một nút. Thay đổi nginxexamplethành bất kỳ thứ gì bạn thích:

docker service create -p 80:80 --name nginxexample nginx

2.Mở rộng dịch vụ NGINX thành ba nút:

docker service scale nginxexample=3

3.Xác minh rằng dịch vụ đã được triển khai docker ps -atừ bất kỳ nút nào:

docker ps -a

4.Để dừng nginxexampledịch vụ, hãy sử dụng service removelệnh:

docker service remove nginxexample

Thông tin thêm

Bạn có thể muốn tham khảo các nguồn sau để biết thêm thông tin về chủ đề này. Mặc dù chúng tôi cung cấp với hy vọng rằng chúng sẽ hữu ích, nhưng xin lưu ý rằng chúng tôi không thể đảm bảo tính chính xác hoặc tính kịp thời của các tài liệu được lưu trữ bên ngoài.

Nguồn: https://www.linode.com/docs/guides/how-to-create-a-docker-swarm-manager-and-nodes-on-linode/