Computer >> Máy Tính >  >> Phần mềm >> Máy ảo

Chế độ bầy Docker - Hướng dẫn thêm nút worker

Hãy để chúng tôi mở rộng về những gì chúng tôi đã bắt đầu với CentOS 7.2 vài tuần trước. Trong hướng dẫn này, chúng ta đã học cách khởi tạo và bắt đầu chức năng điều phối và phân cụm gốc được tích hợp trong Docker 1.12. Nhưng chúng tôi chỉ có nút quản lý và không có công nhân nào khác. Hôm nay, chúng ta sẽ mở rộng điều này.

Tôi sẽ chỉ cho bạn cách thêm các nút không đối xứng vào nhóm, tức là Fedora 24 sẽ nằm cạnh hộp CentOS của chúng tôi và cả hai sẽ tham gia vào cụm, với tất cả cân bằng tải ưa thích có liên quan và những thứ khác. Tất nhiên, điều này sẽ không tầm thường, và chúng ta sẽ gặp phải một số trở ngại, và vì vậy nó sẽ khá thú vị. Sau tôi.

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

Có một số điều chúng ta cần làm trước khi có thể tham gia thành công các nút bổ sung vào bầy đàn. Lý tưởng nhất là tất cả các nút phải chạy cùng một phiên bản Docker và ít nhất phải là 1.12 để hỗ trợ điều phối gốc. Giống như CentOS, Fedora không có bản repo tích hợp mới nhất, vì vậy bạn sẽ cần thêm và cài đặt phiên bản phần mềm phù hợp theo cách thủ công, theo cách thủ công hoặc sử dụng kho lưu trữ Docker, sau đó khắc phục một số xung đột phụ thuộc. Tôi đã chỉ cho bạn cách thực hiện điều này với CentOS và bài tập cũng giống hệt như vậy.

Hơn nữa, tất cả các nút của bạn sẽ cần có khả năng giao tiếp với nhau. Sẽ phải có các quy tắc định tuyến và tường lửa ở những nơi để người quản lý và công nhân có thể nói chuyện với nhau. Nếu không, bạn sẽ không thể tham gia các nút vào bầy đàn. Cách dễ nhất để khắc phục sự cố là tạm thời xóa các quy tắc tường lửa (iptables -F), nhưng điều này có thể làm giảm tính bảo mật của bạn. Đảm bảo rằng bạn hoàn toàn hiểu những gì mình đang làm và bạn tạo các quy tắc phù hợp cho các nút và cổng của mình.

Phản hồi lỗi từ daemon:Đã hết thời gian chờ trước khi nối nút. Nỗ lực tham gia bầy đàn sẽ tiếp tục ở chế độ nền. Sử dụng lệnh "docker info" để xem trạng thái bầy đàn hiện tại của nút của bạn.

Bạn cần có sẵn các hình ảnh Docker giống nhau trên máy chủ của mình. Trong hướng dẫn trước của chúng tôi, chúng tôi đã tạo một hình ảnh Apache và bạn sẽ cần thực hiện tương tự trên các nút công nhân của mình hoặc phân phối các hình ảnh đã tạo. Nếu bạn không làm điều đó, bạn sẽ gặp lỗi. Nếu bạn cần trợ giúp thiết lập Docker, vui lòng đọc hướng dẫn giới thiệu và hướng dẫn kết nối mạng của tôi.

7vwdxioopmmfp3amlm0ulimcu   \_ websky.11   my-apache2:latest
localhost.localdomain   Tắt   Bị từ chối 7 phút trước
"Không có hình ảnh như vậy:my-apache2:lat&"

Bắt đầu nào

Vì vậy, chúng tôi đã thiết lập và chạy hộp CentOS của mình và nó đang sinh ra các vùng chứa thành công. Bạn có thể kết nối với các dịch vụ bằng cách sử dụng cổng máy chủ và mọi thứ trông thật tuyệt vời. Hiện tại, bầy đàn của bạn chỉ có người quản lý.

Tham gia công nhân

Để thêm các nút mới, bạn sẽ cần sử dụng lệnh nối. Nhưng trước tiên bạn cần khám phá mã thông báo, địa chỉ IP và cổng nào bạn phải cung cấp trên các nút công nhân để chúng xác thực chính xác với trình quản lý bầy đàn. Sau đó thực hiện (trên Fedora).

[root@localhost ~]# docker swarm join-token worker
Để thêm một worker vào bầy đàn này, hãy chạy lệnh sau:

docker swarm tham gia \
--token SWMTKN-1-0xvojvlza90nrbihu6gfu3qm34ari7lwnza ... \
192.168.2.100:2377

Nếu bạn không sửa tường lửa và quy tắc định tuyến, bạn sẽ gặp lỗi hết thời gian chờ. Nếu bạn đã tham gia bầy đàn, việc lặp lại lệnh tham gia sẽ tạo ra tiếng ồn của chính nó:

Phản hồi lỗi từ daemon:Nút này đã là một phần của bầy đàn. Sử dụng "docker swarm Leave" để rời khỏi bầy này và tham gia vào một bầy khác.

Nếu còn nghi ngờ, bạn có thể rời khỏi nhóm rồi thử lại:

[root@localhost ~]# docker swarm rời đi
Nút rời bầy đàn.

docker swarm tham gia --token
SWMTKN-1-0xvojvlza90nrbihu6gfu3qnza4 ... 192.168.2.100:2377
Nút này đã tham gia một bầy đàn với tư cách là một công nhân.

Trên worker node, bạn có thể sử dụng docker info để kiểm tra trạng thái:

Bầy đàn:tích cực
ID nút:2i27v3ce9qs2aq33nofaon20k
Là người quản lý:sai
Địa chỉ nút:192.168.2.103

Tương tự, trên trình quản lý:

Bầy đàn:tích cực
NodeID:cneayene32jsb0t2inwfg5t5q
Là người quản lý:đúng
ClusterID:8degfhtsi7xxucvi6dxvlx1n4
Quản lý:1
Nút:3
Dàn nhạc:
Giới hạn lưu giữ lịch sử tác vụ:5
bè:
Khoảng thời gian chụp nhanh:10000
Đánh dấu nhịp tim:1
Đánh dấu bầu cử:3
Điều phối:
Thời gian nhịp tim:5 giây
Cấu hình CA:
Thời hạn sử dụng:3 tháng
Địa chỉ nút:192.168.2.100

Tạo hoặc mở rộng dịch vụ

Bây giờ, chúng ta cần xem liệu Docker có phân phối các thùng chứa giữa các nút hay không và bằng cách nào. Thử nghiệm của tôi cho thấy một thuật toán cân bằng khá đơn giản dưới tải rất nhẹ. Một hoặc hai lần, Docker đã không cố gắng phân phối lại các dịch vụ đang chạy cho các công nhân mới, ngay cả sau khi tôi đã cố gắng mở rộng quy mô và cập nhật chúng. Tương tự như vậy, trong một lần, nó đã tạo ra một dịch vụ mới hoàn toàn trên nút worker. Có lẽ đó là sự lựa chọn tốt nhất.

Dịch vụ mới được tạo hoàn toàn trên nút công nhân.

Sau một thời gian, đã có một số phân phối lại vùng chứa cho các dịch vụ hiện có giữa hai bên, nhưng phải mất một thời gian. Dịch vụ mới hoạt động tốt. Đây chỉ là một quan sát ban đầu, vì vậy tôi không thể nói nhiều hơn vào thời điểm này. Hiện tại, đây là điểm khởi đầu tốt để bắt đầu khám phá và điều chỉnh.

Cân bằng tải khởi động sau một thời gian.

Kết luận

Docker là một con thú nhỏ gọn gàng và nó sẽ chỉ tiếp tục phát triển lớn hơn, phức tạp hơn, mạnh mẽ hơn và tất nhiên là thanh lịch hơn. Chỉ là vấn đề thời gian trước khi nó bị nuốt chửng bởi một doanh nghiệp lớn, béo bở. Khi nói đến cách phối hợp gốc, chế độ bầy đàn hoạt động khá tốt, nhưng không chỉ một vài vùng chứa để khai thác triệt để sức mạnh của các thuật toán và khả năng mở rộng của nó.

Hướng dẫn của tôi chỉ ra cách thêm một nút Fedora vào một cụm do hộp CentOS điều hành và cả hai hoạt động tốt khi song song với nhau. Có một số câu hỏi xung quanh cân bằng tải, nhưng đây là điều tôi sẽ khám phá trong các bài viết sau. Nói chung, tôi hy vọng đây là một bài học đáng giá. Chúng tôi đã giải quyết một số điều kiện tiên quyết và các vấn đề phổ biến mà bạn có thể gặp phải khi cố gắng thiết lập một nhóm, chúng tôi đã kích hoạt một loạt các vùng chứa và thậm chí chúng tôi đã đề cập ngắn gọn về cách mở rộng quy mô và phân phối dịch vụ. Và hãy nhớ rằng, đây chỉ là một sự khởi đầu.

Chúc mừng.