‫Đây sẽ là bài giảng đầu tiên mà chúng ta thực sự sẽ sử dụng nhiều máy chủ hoặc nút, hoặc phiên bản, hoặc
‫bất cứ thứ gì bạn muốn ... nhiều hệ điều hành. Chúng tôi sẽ thiết lập một nhóm 3
‫nút trên cả ba nút đó.
‫Rất tiếc, chúng tôi không thể thực hiện phần này với Docker tích hợp trên máy của bạn vì điều
‫đó sẽ chỉ cung cấp cho chúng tôi một hệ điều hành. Chúng tôi cần ba hệ điều hành Linux để sử dụng bộ tính năng tiếp theo này.
‫Tùy chọn đầu tiên bạn sẽ có là sử dụng play-with-docker. com.
‫Đó hoàn toàn là cách dễ dàng nhất để bắt đầu.
‫Nó đi kèm với Docker được cài đặt sẵn. Bạn chỉ mất vài giây để cung cấp
‫ba máy khác nhau và bạn không cần đầu tư. Nhưng nó có nghĩa là cứ sau bốn giờ, nó sẽ xóa sạch tất cả công việc bạn đã làm.
‫Vì vậy, nếu bạn nghĩ rằng bạn sẽ thực hiện phần còn lại của phần này trong vài ngày, thì đây
‫có thể không phải là lựa chọn tốt nhất cho bạn. Nhưng nếu bạn định tập trung trong vài giờ, bạn chắc
‫chắn có thể vượt qua hầu hết, nếu không phải là tất cả, của đám đông nhiều nút bằng cách sử dụng Play With Docker chỉ trong một lần.
‫Một tùy chọn khác mà bạn có là bạn có thể sử dụng docker-machine, đây chưa phải là thứ mà chúng
‫ta đã nói đến, nhưng đó là một công cụ dòng lệnh thực sự được cài đặt với Docker cho Windows và Docker cho Mac.
‫Bạn có thể tải xuống nó cho Linux và về cơ bản nó là một công cụ tự động hóa để cung cấp máy
‫ảo cục bộ và trên Internet, sau đó tự động thiết lập Docker cho bạn.
‫Cách hoạt động mặc định của nó là với VirtualBox, bạn có thể cài đặt miễn phí. Nhưng điều đó có nghĩa là nếu bạn định chạy
‫cục bộ ba máy ảo, thì mỗi một trong số chúng có thể cần một hợp đồng RAM hoặc hơn để chạy
‫qua rất nhiều ví dụ này. Vì vậy, bạn sẽ cần một chiếc máy có dung lượng RAM tốt. Một tùy chọn khác, và
‫một tùy chọn mà tôi sẽ mặc định cho rất nhiều bản demo và hướng dẫn này, là DigitalOcean.
‫Tôi chỉ giới thiệu DigitalOcean chỉ vì họ có dịch vụ rẻ nhất và dễ dàng nhất để bắt đầu, và
‫họ chạy mọi thứ trên SSD nên rất tốt và nhanh chóng. Bạn thực sự có thể sử dụng điều này trong
‫một thiết lập rất, rất giống với quy trình sản xuất vì bạn đang sử dụng ba máy ảo thực tế,
‫trên đám mây và mất khoảng một phút để khởi chạy mỗi máy ảo.
‫Nếu bạn đang nghĩ rằng đó có thể là một tùy chọn, bạn có thể sử dụng mã giới thiệu của
‫tôi và các tham chiếu đến phần này để nhận 10 đô la đầu tiên miễn phí.
‫Nếu bạn chỉ mất một vài ngày để vượt qua mớ hỗn độn này, bạn có thể cung cấp ba nút, 10
‫đô la một tháng và có chúng trong vài ngày hoặc một tuần.
‫Và điều đó có thể phù hợp với ngân sách 10 đô la nên về mặt kỹ thuật sẽ không khiến bạn mất bất cứ thứ gì.
‫Và cuối cùng, có rất nhiều cách để cài đặt Docker, và đó thực sự là tất cả những gì
‫bạn cần là ba máy được cài đặt Docker. Bạn có thể sử dụng Docker Machine.
‫Nó được tích hợp sẵn các trình điều khiển cho phép bạn sử dụng nó để cung cấp các phiên bản Amazon hoặc phiên bản Azure, hoặc DigitalOcean Droplets, hoặc các
‫nút Google Compute hoặc bất kỳ nơi nào bạn có thể nhận được một máy ảo Linux, bạn thực sự có thể chỉ cần cài đặt Docker bằng một tập
‫lệnh tự động từ lấy. người đóng tàu. com.
‫Thành thật mà nói, tôi thích nhận được hơn. người đóng tàu. phiên bản com chỉ vì Docker Machine có thể giúp
‫bạn tiết kiệm một vài bước, đặc biệt đối với các địa điểm như Amazon và Azure yêu cầu bạn cung cấp nhiều thứ khác
‫nhau trước khi bạn có thể chỉ cấp phép một máy ảo. Nhưng có thể bạn sẽ không sử dụng
‫Docker Machine trong sản xuất.
‫Nó là một công cụ để tự động hóa các môi trường dev và test một cách đơn giản. Nó chưa bao giờ thực sự được thiết kế để thiết lập
‫tất cả các cài đặt sản xuất mà bạn có thể cần cho một nhóm nhiều nút.
‫Không có gì sai với nó, nhưng thường mắc phải. người đóng tàu. com hoạt động trên tất cả các
‫bản phân phối Linux chính và không mất nhiều thời gian hơn là thực sự sử dụng Docker Machine.
‫Tôi sẽ cung cấp cho bạn một ví dụ thực sự nhanh chóng về việc đưa bất kỳ tình huống nào trong
‫số này đến điểm Docker được cài đặt. Sau đó, tất cả chúng sẽ rất giống nhau về cách chúng tôi thực sự
‫tạo ra bầy đàn và thực hiện các dịch vụ của chúng tôi.
‫Vì vậy, đừng nghĩ rằng bạn phải làm theo cách tôi làm.
‫Thực sự chúng tôi chỉ đang cố gắng lấy thông tin Docker để thực sự mang lại thông tin và sau
‫đó chỉ để đảm bảo rằng ba nút có quyền truy cập mạng với nhau và chúng nằm trên một mạng được kết nối tốt.
‫Vì vậy, lý tưởng nhất là chúng nên ở trong cùng một mạng.
‫Nếu bạn định sử dụng Play With Docker, bạn thực sự chỉ cần truy cập play-with-docker. com và đánh dấu vào ô Tôi
‫không phải là người máy.
‫Và nếu nó cung cấp cho bạn màn hình CAPTCHA, chỉ cần làm theo.
‫Được rồi. Bạn sẽ thấy rằng nó đang đếm ngược bốn giờ.
‫Nhưng nếu tôi chỉ nhấp vào cá thể đang tạo và sau đó nhấp vào nó hai lần nữa, nó sẽ tạo ra ba môi
‫trường ảo rất nhanh chóng.
‫Lưu ý thêm, đây thực sự là sử dụng Docker trong Docker, đây là một công nghệ khá gọn gàng,
‫nơi chúng tôi thực sự đang chạy Docker bên trong vùng chứa Docker.
‫Nhưng trong thiết lập này với Play With Docker, được tạo bởi các đội trưởng Docker khác và nhóm Docker, thật sự khó
‫để nhận ra sự khác biệt.
‫Nếu tôi truy cập vào node1, tôi có thể thấy thông tin Docker cung cấp cho tôi phiên bản mới nhất. Và nếu tôi thậm chí cố gắng ping node2, nó thực sự nhận
‫ra những cái tên thân thiện, vì vậy nó sẽ giúp giao tiếp qua lại giữa chúng dễ
‫dàng hơn.
‫Vì vậy, nếu đây là điều bạn muốn thử, thì đó là một cách tuyệt vời và dễ dàng trên các máy có công suất thấp
‫hoặc nếu bạn không muốn dành thời gian để thiết lập môi trường trong bốn giờ tới.
‫Tùy chọn hai là sử dụng docker-machine. Nếu bạn đã cài đặt nó, nó phải có ít nhất phiên bản 10 nếu
‫không phải mới hơn.
‫Bạn sẽ biết liệu nó đã được cài đặt hay chưa vì bạn sẽ nhập lệnh docker-machine từ dòng lệnh của mình
‫và nó sẽ hoạt động hoặc sẽ không hoạt động.
‫Nếu bạn cần tải xuống nó cho hệ điều hành Linux cụ thể của mình, thì bạn có thể chuyển tới Tài liệu Docker, tài liệu này
‫thực sự sẽ cung cấp cho bạn một đường cong nhanh để tải xuống.
‫Nếu bạn đang sử dụng ToolBox trên Windows 7 và 8 hoặc Docker cho Windows trên Windows 10 hoặc Docker cho Mac trên
‫Mac OS, nó sẽ được cập nhật trên các hệ điều hành đó cho bạn.
‫Nếu bạn muốn sử dụng tùy chọn VirtualBox, đây là tùy chọn mặc định, bạn chỉ
‫cần chuyển qua hộp ảo. org và tải xuống phiên bản mới nhất cho hệ điều hành của bạn. Và bạn thậm chí không phải làm bất cứ điều gì với
‫VirtualBox.
‫Nó chỉ cần được cài đặt. Và sau đó từ dòng lệnh của bạn, bạn có thể chỉ
‫cần gõ docker-machine create node1, và điều này thực sự sẽ chạy thông qua việc tạo một máy ảo với BusyBox, đây
‫là một bản phân phối Linux rất nhẹ.
‫Điều này thực sự sẽ chạy thông qua việc tạo một máy Linux rất nhẹ và bạn sẽ chỉ
‫lặp lại hai lệnh đó cho node2 và 3.
‫Nếu bạn cần thêm thông tin về Máy Docker, bạn thực sự có thể xem phần tham
‫khảo của tôi để biết các liên kết hướng dẫn.
‫Sau khi máy của bạn được tạo, bạn thực sự có hai tùy chọn về cách bạn có thể truy cập vào các máy đó.
‫Bạn có thể sử dụng docker-machine ssh, sau đó là tên của nút bạn đã tạo và điều đó sẽ đưa bạn vào
‫ngay máy đó.
‫Hoặc bạn có thể sử dụng lệnh môi trường.
‫Vì vậy, lệnh docker-machine env, và sau đó là tên của máy bạn muốn, sẽ cung cấp cho bạn một số đầu ra và bạn có thể cắt và dán các tùy
‫chọn này vào dòng lệnh của mình hoặc bạn có thể sao chép và dán tùy chọn dưới cùng, và điều đó sẽ
‫thực sự tạo biến môi trường để khi tôi chạy lệnh docker của mình, bởi vì một lần nữa, Docker CLI chỉ
‫cần biết máy chủ Docker để nói chuyện với. Và theo mặc định, nó đang nói chuyện với máy cục
‫bộ của bạn.
‫Nhưng điều đó chỉ lập trình lại nó để nói chuyện
‫với Docker Machine node1.
‫Nếu tôi điền thông tin về docker, bạn sẽ thấy tên của nó là node1 vì đó là cái mà tôi đang thực sự sử
‫dụng.
‫Đối với ví dụ cuối cùng, tôi sẽ sử dụng DigitalOcean, mà tôi đã tạo tài khoản trên đó.
‫Ở đây, họ gọi các máy chủ là Droplets. Tôi khuyên bạn nên bắt đầu với Ubuntu 16 nếu
‫bạn không có lý do cụ thể để chạy một hệ điều hành khác. 04 vì đó có xu hướng là bản phân phối Linux đầu tiên hỗ trợ các
‫tính năng Docker mới hơn.
‫Vì vậy, đó là mặc định ở đó.
‫Sau đó, tôi sẽ đề xuất trong phần còn lại của khóa học này để chúng tôi sử dụng máy chủ $ 10 một tháng. Bạn có thể sử dụng máy chủ $ 5
‫một tháng, nhưng nó có thể hơi chậm trong một số bản trình diễn sau này
‫khi chúng tôi thực hiện giám sát và ghi nhật ký các vùng chứa trên ứng dụng của mình.
‫Sau đó, bạn có thể chọn trung tâm dữ liệu gần bạn nhất. Sau đó, lựa chọn khác duy nhất là thêm khóa SSH.
‫Nếu bạn không quen thuộc với cách tạo khóa SSH cục bộ của riêng mình và sau đó tải công khai lên DigitalOcean,
‫có một hướng dẫn
‫tuyệt vời dành cho họ mà bạn có thể tìm thấy trong các tài nguyên của phần này.
‫Ở dưới cùng, tôi sẽ tạo ba máy và tôi sẽ gọi chúng là node1, 2 và 3.
‫Sau đó, tôi cần phải đợi khoảng 60 giây và họ sẽ sẵn sàng cho tôi.
‫Bạn chỉ có thể sử dụng các địa chỉ IP ở đây ... nhảy trên các máy này.
‫Nhấp vào nút sao chép và sau đó ssh root @ địa chỉ IP.
‫Và nếu khóa SSH của bạn được thiết lập đúng cách trên máy của bạn, thì nó sẽ tự động đăng nhập bằng
‫khóa đó.
‫Nhưng trong phần tài nguyên, tôi đã cung cấp cho bạn một ví dụ về cách thiết lập a. tệp cấu hình ssh sẽ cho phép bạn có ba
‫nút này trong một cấu hình để bạn có thể chỉ cần gọi chúng là node1, node2,
‫node3, thay vì phải nhớ địa chỉ IP của chúng, trong trường hợp bạn
‫sẽ thực hiện việc này trong nhiều ngày . Đó thực sự là một cách dễ dàng để vào và ra khỏi các máy chủ này.
‫Nếu bạn đã sử dụng Docker Machine hoặc nếu bạn đã sử dụng Play With Docker, thì Docker đã được cài đặt và bạn
‫đã sẵn sàng để tạo nhóm của mình.
‫Nhưng nếu bạn sử dụng DigitalOcean hoặc bạn cuộn các máy ảo của riêng mình, thì bạn cần cài đặt Docker.
‫Cách dễ nhất để làm điều đó, mà tôi thích sử dụng, là sử dụng script ngay lập tức. người đóng tàu. com.
‫Bạn có thể xem các ví dụ ở đây về cách sử dụng tập lệnh này để tải bản phát hành sản xuất hiện tại
‫của Docker trên máy của bạn.
‫Bây giờ, tất cả ba máy chủ của tôi đã được cài đặt phiên bản Docker mới nhất và chúng tôi đã sẵn sàng
‫thiết lập nhóm của mình.
‫Một lần nữa, tất cả những gì cần thiết là ba nút này có mạng liên kết với nhau và các cổng
‫cụ thể mở.
‫Nếu bạn tò mò về các cổng của swarm, hãy xem tài nguyên của phần này, nơi tôi thực
‫sự có một liên kết đến danh sách của riêng tôi về các cổng tường lửa cần thiết để Swarm hoạt động.
‫Nếu bạn còn nhớ trước đây, chúng tôi đã từng làm docker swarm init. Bây giờ, trong trường hợp này, khá phổ biến trong các
‫máy chủ đám mây, nó muốn chúng tôi chỉ định một địa chỉ IP để quảng cáo dịch vụ Swarm.
‫Bạn muốn sử dụng địa chỉ IP có thể truy cập được từ các máy chủ khác.
‫Trong trường hợp này, tôi sẽ sử dụng địa chỉ IP công cộng cho máy chủ DigitalOcean của
‫mình.
‫Và chúng ta bắt đầu.
‫Cho đến nay, điều này giống như trên máy cục bộ của chúng tôi.
‫Tuy nhiên, lần này, tôi sẽ sao chép lệnh tham gia bầy đàn và chuyển đến node2 và thêm nó vào.
‫Và chúng ta bắt đầu.
‫Nút này bây giờ là một phần của bầy.
‫Vì vậy, chúng ta quay trở lại node1, docker node ls, và bây giờ chúng ta có hai.
‫Bạn sẽ nhận thấy nút thứ hai chỉ là một công nhân. Bởi vì như nó nói, nếu chúng tôi muốn nó trở thành một người quản lý, chúng tôi
‫nên nhận được mã thông báo người quản lý này. Nhưng đừng lo lắng. Chúng tôi thực sự có thể cập nhật nhân viên này để thăng
‫cấp thành người quản lý.
‫Nhưng nếu chúng ta đã kết thúc trên node2, hãy lưu ý rằng tôi không thể sử dụng các lệnh Swarm. Bởi vì người lao động không thực sự được đặc quyền.
‫Họ không có quyền truy cập để kiểm soát bầy đàn.
‫Vì vậy, họ sẽ không thể sử dụng bất kỳ lệnh Swarm nào mà chúng ta đã quen sử dụng trên các trình quản lý.
‫Quay lại node1 và trình quản lý, tôi sẽ thực hiện cập nhật nút docker ...
‫Những gì tôi đang làm ở đó là nhấn Tab để hoàn thành tab, đây luôn là một tính năng tuyệt
‫vời trong Docker, đặc biệt là với rất nhiều tính năng. Nó hướng dẫn tôi từng bước về cách sử dụng lệnh cập
‫nhật đó.
‫Bây giờ tôi đã hoàn thành bản cập nhật cuối cùng này và nó đã thay đổi node2.
‫Bây giờ nếu tôi thực hiện ls nút docker của mình, bạn sẽ thấy rằng bây giờ nó được coi là có thể truy cập được.
‫Nhưng nút gốc vẫn là đầu tàu. Nhân tiện, dấu hoa thị nhỏ? Điều đó chỉ có nghĩa đó
‫là nút mà bạn hiện đang nói chuyện.
‫Đối với node3, hãy thêm nó làm trình quản lý theo mặc định.
‫Chúng ta cần quay lại lệnh ban đầu của docker swarm và sau đó chúng ta cần tải trình quản lý mã
‫thông báo tham gia.
‫Bạn có thể nhận những mã thông báo này bất cứ lúc nào.
‫Bạn không cần phải viết chúng ra hoặc lưu chúng.
‫Chúng là một phần của cấu hình bầy đàn và được lưu trữ mã hóa trên đĩa, vì vậy đừng lo lắng về điều đó.
‫Bạn cũng có thể thay đổi những điều này trong trường hợp chúng có thể bị lộ hoặc bạn có thể nhận được một máy chủ có
‫thể có lỗ hổng bảo mật và bạn muốn đảm bảo rằng không có nút nào có thể tham gia nhóm từ khóa cũ, bạn thực
‫sự có thể xoay các khóa này .
‫Tôi sẽ sao chép nó, dán nó vào node3.
‫Và chúng ta bắt đầu. Quay lại nút1.
‫Nếu tôi thực hiện lại một nút docker, bạn sẽ thấy tôi có ba nút. Và tất cả họ đều có trạng thái người quản lý
‫cho thấy rằng họ là người quản lý.
‫Vì vậy, bây giờ chúng ta có một bầy 3 nút, dự phòng, với ba người quản lý. Hãy làm điều tương tự mà chúng ta
‫đã làm trước đó, dịch vụ docker tạo ping alpine
‫8. số 8. số 8. 8 Chỉ
‫lần này, hãy
‫cho nó ba bản sao.
‫Và sau đó thực hiện một dịch
‫vụ docker, và chúng tôi sẽ thấy rằng chúng tôi
‫đã có ba trong số ba đã chạy.
‫Nếu tôi đã tạo một nút docker ps, tôi thực sự có thể thấy nút cục bộ của mình đang thực sự chạy tác vụ hoặc vùng chứa này.
‫Tôi thực sự có thể chỉ định nút, node2 và nó sẽ chỉ cung cấp cho tôi các vùng chứa đang chạy trên node2.
‫Nếu tôi muốn có một danh sách đầy đủ, tôi có thể làm một ps dịch vụ docker, và sau đó màu nâu buồn ngủ là tên mà nó đã đặt
‫cho dịch vụ của chúng tôi. Và bạn sẽ thấy ở đây .. để tôi mở rộng màn hình một chút.
‫Bạn có thể thấy ở đây nó liệt kê tất cả ba nhiệm vụ của chúng tôi.
‫Khi bạn đã tạo nhóm này, thông thường bạn không cần phải nhập lệnh vào
‫tất cả các nút khác nhau. Bạn thực sự có thể vận hành cả bầy, đối với hầu hết mọi thứ, từ node1.
‫Vì vậy, chúng tôi sẽ thực hiện rất nhiều công việc của mình từ node1 trong các bài giảng trong tương lai, nhưng hiện tại, hãy tự
‫vỗ về vì bạn có một cụm bầy hoạt động đầy đủ.