Cách thiết lập và cấu hình Docker Swarm Cluster trên Ubuntu

theanh

Administrator
Nhân viên
Docker Swarm là một công cụ cho phép bạn triển khai một cụm Docker Host. Đây là một công cụ cụm gốc do Docker cung cấp, cung cấp tính khả dụng cao và hiệu suất cao cho ứng dụng của bạn bằng cách phân phối nó cho tất cả các nút bên trong cụm swarm.

Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn từng bước cách tạo một cụm Swarm bằng Ubuntu 16.04. Chúng tôi sẽ tạo một cụm swarm bằng cách sử dụng 2 máy chủ Ubuntu, 1 nút máy chủ làm trình quản lý và 1 nút khác làm công nhân. Sau đó, chúng ta sẽ thử triển khai dịch vụ Nginx đơn giản cho cụm swarm.

Điều kiện tiên quyết​

  • 2 hoặc nhiều hơn - Ubuntu 16.04 Servermanager 132.92.41.4
  • worker01 132.92.41.5
[*] Quyền root

Chúng ta sẽ làm gì?​

  1. Cấu hình máy chủ
  2. Cài đặt Docker-ce
  3. Khởi tạo Docker Swarm
  4. Triển khai dịch vụ đầu tiên cho cụm

Bước 1 - Cấu hình máy chủ​

Trước khi cài đặt bất kỳ gói nào cho cụm swarm, chúng ta sẽ cấu hình tệp hosts trên cả hai máy chủ.

Chạy các lệnh bên dưới trên tất cả các máy chủ, 'manager' và 'worker01'.

Chỉnh sửa tệp '/etc/hosts' bằng trình soạn thảo vim.
Mã:
vim /etc/hosts
Thêm cấu hình sau vào cuối dòng.
Mã:
132.92.41.4 manager
 132.92.41.5 worker01
Lưu và thoát.

Bây giờ hãy ping tất cả các nút bằng 'hostname' thay vì sử dụng địa chỉ IP.
Mã:
ping -c 3 manager
ping -c 3 worker01
Và đảm bảo rằng nó đang hoạt động trên tất cả các máy chủ.


Bước 2 - Cài đặt Docker-ce​

Để tạo cụm swarm, chúng ta cần cài đặt docker trên tất cả các nút máy chủ. Trong bước này, chúng ta sẽ cài đặt Docker-ce Community Edition trên cả máy chủ manager và worker01.

Cài đặt các phụ thuộc Docker-ce bằng lệnh apt bên dưới.
Mã:
sudo apt install apt-transport-https software-properties-common ca-certificates -y
Bây giờ hãy thêm khóa Docker và kho lưu trữ Docker-ce vào máy chủ của chúng ta.
Mã:
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
sudo echo "deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable" > /etc/apt/sources.list.d/docker-ce.list
Cập nhật kho lưu trữ và cài đặt các gói Docker-ce bằng lệnh apt install bên dưới.
Mã:
sudo apt update
sudo apt install docker-ce -y
Sau khi cài đặt hoàn tất, hãy khởi động dịch vụ docker và cho phép dịch vụ này khởi chạy mỗi khi khởi động hệ thống.
Mã:
systemctl start docker
systemctl enable docker
Docker-ce hiện đã được cài đặt trên các nút máy chủ của chúng tôi.

Tiếp theo, chúng tôi sẽ cấu hình docker để chạy như một người dùng bình thường hoặc người dùng không phải root.

Tạo một người dùng mới có tên là 'mohammad' và thêm người dùng đó vào nhóm 'docker'.
Mã:
useradd -m -s /bin/bash mohammad
sudo usermod -aG docker mohammad
Bây giờ hãy đăng nhập vào người dùng 'mohammad' và chạy Lệnh docker hello-world như bên dưới.
Mã:
su - mohammad
docker run hello-world
Và bạn sẽ nhận được hello world từ docker như hiển thị bên dưới.


Bước 3 - Tạo cụm Swarm​

Trong bước này, chúng ta sẽ tạo Cụm Swarm cho các nút của mình. Và để tạo các nút cụm swarm, chúng ta cần khởi tạo chế độ swarm trên nút 'manager' rồi join nút 'worker01' vào cụm.

Khởi tạo chế độ Docker Swarm bằng cách chạy lệnh docker bên dưới trên nút 'manager'.
Mã:
docker swarm init --advertise-addr 132.92.41.4
Và bạn sẽ nhận được kết quả như hiển thị bên dưới.



Bạn sẽ thấy 'join-token' đã được tạo bởi nút 'manager'.

Tiếp theo, chúng ta cần thêm nút 'worker01' vào cụm 'manager'. Và để làm được điều đó, chúng ta cần một 'join-token' từ nút 'manager' của cụm, vì vậy hãy đảm bảo ghi nó vào ghi chú của bạn.

Chạy lệnh docker swarm join trên nút 'worker01'.
Mã:
docker swarm join --token SWMTKN-1-5p5ujrr67rl2rlmyvrj56fksblbcrtaeirf7fj5r4snid2vn6y-918gbqr02m64xct43i2ssi4qs 132.92.41.4:2377
Bây giờ bạn sẽ nhận được kết quả như hiển thị bên dưới.



Nút 'worker01' đã được join vào cụm.

Kiểm tra bằng cách chạy lệnh sau trên nút 'manager'.
Mã:
docker node ls
Bây giờ bạn thấy nút 'worker01' đã được tham gia vào cụm swarm.



Cụm Swarm đã được tạo.

Bước 4 - Triển khai dịch vụ đầu tiên vào cụm​

Trong bước này, chúng ta sẽ tạo và triển khai dịch vụ đầu tiên cho cụm swarm. Chúng tôi muốn tạo dịch vụ máy chủ web Nginx mới chạy trên cổng http mặc định 80, sau đó hiển thị dịch vụ này trên cổng 8080 trên máy chủ lưu trữ, sau đó thử sao chép dịch vụ nginx bên trong cụm swarm.

Tạo dịch vụ​

Tạo dịch vụ Nginx mới có tên là 'my-web' và hiển thị cổng HTTP của container đến cổng 8080 trên máy chủ.
Mã:
docker service create --name my-web --publish 8080:80 nginx:1.13-alpine
Và khi nó được tạo, hãy kiểm tra bằng lệnh docker service bên dưới.
Mã:
docker service ls
Và bạn sẽ nhận được kết quả như hiển thị bên dưới.



Dịch vụ Nginx đã được tạo và triển khai đến cụm swarm dưới dạng dịch vụ có tên là 'my-web', dịch vụ này dựa trên Nginx Alpine Linux, hiển thị cổng HTTP của dịch vụ container tới cổng '8080' trên máy chủ và chỉ có 1 bản sao.

Bản sao và mở rộng quy mô dịch vụ​

Bây giờ chúng ta sẽ tạo bản sao cho dịch vụ 'my-web'. Chúng tôi sẽ tạo 2 bản sao của dịch vụ 'my-web' để dịch vụ có thể truy cập được trên các nút 'manager' và 'worker01'.

Để sao chép dịch vụ 'my-web', hãy chạy lệnh sau.
Mã:
docker service scale my-web=2
Sau khi hoàn tất, hãy kiểm tra lại bằng lệnh docker service.
Mã:
docker service ls
Và bây giờ máy chủ có 2 bản sao.



Mở trình duyệt web của bạn và nhập địa chỉ IP của nút quản lý với cổng 8080.


Và bạn sẽ nhận được trang mặc định của Nginx.



Dưới đây là kết quả từ 'worker01' node.




Cụm Swarm đã được tạo và dịch vụ Nginx đã được triển khai hoàn tất cho Cụm Swarm của chúng tôi.

Tham khảo​

 
Back
Bên trên