Cách thiết lập triển khai nhiều node với Rancher 2.1, Kubernetes và Docker Machine trên Ubuntu 18.04
Rancher là một nền tảng quản lý containers open-souce phổ biến. Được phát hành vào đầu năm 2018, Rancher 2.X hoạt động trên Kubernetes và đã kết hợp các công cụ mới như quản lý đa cụm và các đường ống CI tích hợp sẵn. Ngoài các công cụ triển khai đơn giản, khả năng mở rộng và bảo mật nâng cao đã có trong Kubernetes, Rancher cung cấp giao diện user đồ họa giúp quản lý các containers dễ dàng hơn. Thông qua GUI của Rancher, user có thể quản lý bí mật, xử lý an toàn các role và quyền, chia tỷ lệ các node và group cũng như cài đặt bộ cân bằng tải và dung lượng mà không cần đến công cụ dòng lệnh hoặc các file YAML phức tạp.Trong hướng dẫn này, bạn sẽ triển khai server Rancher 2.1 nhiều nút bằng Docker Machine trên Ubuntu 18.04. Cuối cùng, bạn có thể cung cấp các server DigitalOcean mới và group containers thông qua giao diện user Rancher để nhanh chóng mở rộng hoặc giảm quy mô môi trường lưu trữ của bạn.
Yêu cầu
Trước khi bắt đầu hướng dẫn này, bạn cần có account DigitalOcean , ngoài những thứ sau:
Mã thông báo truy cập cá nhân DigitalOcean, bạn có thể tạo theo hướng dẫn trong hướng dẫn này . Mã thông báo này sẽ cho phép Rancher có quyền truy cập API vào account DigitalOcean của bạn.
Tên domain được đăng ký đầy đủ với bản ghi A trỏ đến địa chỉ IP của Server mà bạn tạo ở Bước 1. Bạn có thể tìm hiểu cách trỏ domain tới DigitalOcean Server bằng cách đọc qua tài liệu DNS và Tên domain của DigitalOcean. Trong suốt hướng dẫn này, hãy thay thế domain của bạn cho
example.com
.
Bước 1 - Tạo server bằng Docker được cài đặt
Để bắt đầu và cấu hình Rancher, bạn cần tạo một Server mới có cài đặt Docker. Để thực hiện điều này, bạn có thể sử dụng Docker image của DigitalOcean.
Đầu tiên, đăng nhập vào account DigitalOcean của bạn và chọn Tạo server . Sau đó, trong phần Chọn hình ảnh , hãy chọn tab Thị trường . Chọn Docker 18.06.1 ~ ce ~ 3 trên 18.04 .
Tiếp theo, chọn Server không nhỏ hơn 2GB và chọn vùng trung tâm dữ liệu cho Server.
Cuối cùng, thêm các SSH key của bạn, cung cấp tên server cho Server và nhấn nút Tạo .
Sẽ mất vài phút để server cung cấp và để Docker download . Khi Server triển khai thành công, bạn đã sẵn sàng bắt đầu Rancher trong containers Docker mới.
Bước 2 - Khởi động và cấu hình Rancher
Server bạn đã tạo ở Bước 1 sẽ chạy Rancher trong containers Docker. Trong bước này, bạn sẽ khởi động containers Rancher và đảm bảo nó có certificate SSL Let's Encrypt để bạn có thể truy cập an toàn vào bảng quản trị Rancher. Let's Encrypt là cơ quan cấp certificate open-souce tự động cho phép các nhà phát triển cung cấp certificate SSL chín mươi ngày miễn phí.
Đăng nhập vào Server mới của bạn:
- ssh root@your_server_ip
Để đảm bảo Docker đang chạy, hãy nhập:
- docker -v
Kiểm tra xem version Docker được liệt kê có phải là version bạn mong đợi hay không. Bạn có thể khởi động Rancher với chứng chỉ Let's Encrypt đã được cài đặt bằng cách chạy lệnh sau:
- docker run -d --restart=unless-stopped -p 80:80 -p 443:443 -v /host/rancher:/var/lib/rancher rancher/rancher --acme-domain example.com
Tùy chọn --acme-domain
cài đặt certificate SSL từ Let's Encrypt đảm bảo administrator Rancher của bạn được cung cấp qua HTTPS. Tập lệnh này cũng hướng dẫn Server tìm nạp Docker image của rancher/rancher
và bắt đầu một version Rancher trong một containers sẽ tự động khởi động lại nếu nó vô tình gặp sự cố. Để dễ dàng khôi phục trong trường hợp mất dữ liệu, tập lệnh gắn một ổ đĩa trên server (tại /host/rancher
) có chứa dữ liệu Rancher.
Để xem tất cả các containers đang chạy, hãy nhập:
- docker ps
Bạn sẽ thấy kết quả tương tự như sau (với ID và tên containers duy nhất):
OutputCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 7b2afed0a599 rancher/rancher "entrypoint.sh" 12 seconds ago Up 11 seconds 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp wizardly_fermat
Nếu containers không chạy, bạn có thể thực hiện lại lệnh docker run
.
Trước khi có thể truy cập bảng quản trị Rancher, bạn cần đặt password quản trị và URL server Rancher của bạn . Giao diện quản trị Rancher sẽ cung cấp cho bạn quyền truy cập vào tất cả các node , group và bí mật đang chạy của bạn, vì vậy điều quan trọng là bạn phải sử dụng password mạnh cho nó.
Truy cập domain trỏ đến Server mới của bạn trong trình duyệt web . Lần đầu tiên bạn truy cập địa chỉ này, Rancher sẽ cho phép bạn đặt password :
Khi được yêu cầu cung cấp URL server Rancher của bạn, hãy sử dụng domain được trỏ vào Server.
Đến đây bạn đã hoàn thành cài đặt server Rancher của bạn và bạn sẽ thấy màn hình chính của administrator Rancher:
Bạn đã sẵn sàng để tiếp tục cài đặt cụm Rancher.
Bước 3 - Cấu hình một cụm với một nút duy nhất
Để sử dụng Rancher, bạn cần tạo một cụm với ít nhất một nút . Một cụm là một group gồm một hoặc nhiều nút. Hướng dẫn này sẽ cung cấp cho bạn thêm thông tin về Kiến trúc Kubernetes. Trong hướng dẫn này, các node tương ứng với các server mà Rancher sẽ quản lý. Các group đại diện cho một group các containers Docker đang chạy trong Server. Mỗi nút có thể chạy nhiều group . Sử dụng giao diện user Rancher, bạn có thể cài đặt các cụm và nút trong môi trường Kubernetes bên dưới.
Đến cuối bước này, bạn sẽ cài đặt một cụm với một nút duy nhất sẵn sàng để chạy group đầu tiên của bạn.
Trong Rancher, nhấp vào Thêm cụm và chọn DigitalOcean làm nhà cung cấp cơ sở hạ tầng .
Nhập Tên cụm và cuộn xuống phần Node Pools . Nhập Tiền tố tên , để Số đếm ở mức 1 ngay bây giờ, và kiểm tra etcd , Mặt phẳng điều khiển và Công nhân .
- etcd là hệ thống lưu trữ giá trị quan trọng của Kubernetes để giữ trạng thái toàn bộ môi trường của bạn. Để duy trì tính khả dụng cao, bạn nên chạy ba hoặc năm nút etcd để nếu một nút gặp sự cố, môi trường của bạn vẫn có thể quản lý được.
- Máy bay điều khiển kiểm tra tất cả các Đối tượng Kubernetes - chẳng hạn như các group - trong môi trường của bạn và cập nhật chúng với cấu hình bạn cung cấp trong giao diện quản trị Rancher.
- Nhân viên điều hành dung lượng công việc thực tế và các tác nhân giám sát đảm bảo các container của bạn luôn hoạt động và được nối mạng. Các node công nhân là nơi các group của bạn sẽ chạy phần mềm mà bạn triển khai.
Trước khi tạo cụm, hãy nhấp vào Thêm mẫu nút để cấu hình các tùy chọn cụ thể cho nút mới của bạn.
Nhập Mã truy cập cá nhân DigitalOcean của bạn vào hộp nhập Mã thông báo truy cập và nhấp vào Tiếp theo: Cấu hình server .
Tiếp theo, chọn Vùng và Kích thước server giống như Bước 1. Đối với Hình ảnh , hãy đảm bảo chọn Ubuntu 16.04.5 x64 vì hiện tại có vấn đề về khả năng tương thích với Rancher và Ubuntu 18.04 . Nhấn Tạo để lưu mẫu.
Cuối cùng, nhấp vào Tạo tại trang Thêm cụm để bắt đầu quá trình cấp phép.Sẽ mất một vài phút để Rancher hoàn thành bước này, nhưng bạn sẽ thấy một server mới trong trang tổng quan DigitalOcean Server của bạn khi hoàn tất.
Trong bước này, bạn đã tạo một cụm và nút mới mà bạn sẽ triển khai dung lượng công việc trong phần tiếp theo.
Bước 4 - Triển khai dung lượng công việc ứng dụng web
Khi cụm và nút mới đã sẵn sàng, bạn có thể triển khai group đầu tiên của bạn trong một dung lượng công việc . Kubernetes Pod là đơn vị công việc nhỏ nhất có sẵn cho Kubernetes và bởi Rancher mở rộng. Dung lượng công việc mô tả một group group đơn lẻ mà bạn triển khai cùng nhau. Ví dụ: bạn có thể chạy nhiều group web server của bạn trong một dung lượng công việc đảm bảo rằng nếu một group làm chậm với một yêu cầu cụ thể, các version khác có thể xử lý các yêu cầu đến. Trong phần này, bạn sẽ triển khai hình ảnh Nginx Hello World cho một group duy nhất.
Di chuột qua Toàn cục trong tiêu đề và chọn Mặc định . Điều này sẽ đưa bạn đến console dự án Mặc định . Bạn sẽ tập trung vào việc triển khai một dự án trong hướng dẫn này, nhưng từ console này, bạn cũng có thể tạo nhiều dự án để đạt được môi trường lưu trữ containers riêng biệt.
Để bắt đầu cấu hình group đầu tiên của bạn, hãy nhấp vào Triển khai .
Nhập Tên và đặt nginxdemos/hello
vào trường Docker Image . Tiếp theo, ánh xạ cổng 80 trong containers thành cổng 30000 trên các node server . Điều này sẽ đảm bảo các group bạn triển khai có sẵn trên mỗi nút tại cổng 30000. Bạn có thể đặt Giao thức thành TCP và menu thả xuống tiếp theo là NodePort .
Lưu ý: Mặc dù phương pháp chạy group này trên mọi cổng của nút dễ bắt đầu hơn, Rancher cũng bao gồm Ingress để cung cấp tính năng cân bằng tải và kết thúc SSL để sử dụng trong production .
Để chạy group , cuộn xuống dưới cùng và nhấp vào Chạy .
Rancher sẽ đưa bạn trở lại trang chủ dự án mặc định và trong vài giây group của bạn sẽ sẵn sàng. Nhấp vào liên kết 30000 / tcp ngay bên dưới tên của dung lượng công việc và Rancher sẽ mở một tab mới với thông tin về môi trường của containers đang chạy.
Địa chỉ server và cổng bạn thấy trên trang này là của mạng Docker nội bộ chứ không phải địa chỉ IP công cộng mà bạn thấy trong trình duyệt của bạn . Điều này nghĩa là Rancher đang làm việc và định tuyến lưu lượng truy cập từ http:// first_node_ip :30000/
đến dung lượng công việc như mong đợi.
Đến đây, bạn đã triển khai thành công dung lượng công việc đầu tiên của một group tới một nút Rancher. Tiếp theo, bạn sẽ thấy cách mở rộng môi trường Rancher của bạn .
Bước 5 - Mở rộng các node và group
Rancher cung cấp cho bạn hai cách để mở rộng tài nguyên lưu trữ của bạn: tăng số lượng group trong dung lượng công việc của bạn hoặc tăng số lượng nút trong cụm của bạn.
Thêm group vào dung lượng công việc của bạn sẽ cung cấp cho ứng dụng của bạn nhiều quy trình chạy hơn. Điều này sẽ cho phép nó xử lý nhiều lưu lượng hơn và cho phép triển khai thời gian chết bằng 0, nhưng mỗi nút chỉ có thể xử lý một số group hữu hạn.Khi tất cả các node của bạn đã đạt đến giới hạn group , bạn sẽ phải tăng số lượng nút nếu bạn muốn tiếp tục mở rộng quy mô.
Một cân nhắc khác là trong khi việc tăng group thường miễn phí, bạn sẽ phải trả tiền cho mỗi nút bạn thêm vào môi trường của bạn . Trong bước này, bạn sẽ mở rộng quy mô cả các node và group , đồng thời thêm một nút khác vào cụm Rancher của bạn.
Lưu ý: Phần này của hướng dẫn sẽ tự động cung cấp DigitalOcean Server mới thông qua API, vì vậy hãy lưu ý bạn sẽ phải trả thêm phí khi nút thứ hai đang chạy.
Điều hướng đến trang chủ cụm của cài đặt Rancher của bạn bằng cách chọn Cụm: tên-cụm-của bạn từ thanh chuyển trên cùng. Tiếp theo, nhấp vào Nút từ thanh chuyển trên cùng.
Trang này cho thấy rằng bạn hiện có một nút đang chạy trong cụm. Để thêm các node khác, hãy nhấp vào Chỉnh sửa Cụm và cuộn đến phần Node Pools ở cuối trang. Nhấp vào Thêm group nút , nhập tiền tố và chọn hộp Công nhân . Nhấp vào Lưu để cập nhật cụm.
Trong vòng 2–5 phút, Rancher sẽ cung cấp server thứ hai và cho biết nút là Hoạt động trong console của cụm. Nút thứ hai này chỉ là một worker, nghĩa là nó sẽ không chạy các containers Rancher etcd hoặc Control Plane. Điều này cho phép Công nhân có thêm năng lực để chạy dung lượng công việc.
Lưu ý: Việc có số lượng nút etcd không đồng đều sẽ đảm bảo chúng luôn có thể đạt đến số đại biểu (hoặc sự đồng thuận). Nếu bạn chỉ có một nút etcd, bạn có nguy cơ không thể truy cập được cụm của bạn nếu một nút đó gặp sự cố. Trong môi trường production , cách tốt hơn là chạy ba hoặc năm nút etcd.
Khi nút thứ hai đã sẵn sàng, bạn có thể xem dung lượng công việc mà bạn đã triển khai ở bước trước trên nút này bằng cách chuyển đến http:// second_node_ip :30000/
trong trình duyệt của bạn .
Mở rộng các node cung cấp cho bạn nhiều server hơn để phân phối dung lượng công việc của bạn, nhưng bạn cũng có thể cần chạy nhiều version hơn của mỗi group trong dung lượng công việc. Để thêm các group khác, hãy quay lại trang Dự án mặc định , nhấn vào mũi tên ở bên trái dung lượng công việc hello-world
của bạn và nhấp + hai lần để thêm hai group khác.
Rancher sẽ tự động triển khai nhiều group hơn và phân phối các containers đang chạy cho mỗi nút tùy thuộc vào nơi có sẵn.
Như vậy, bạn có thể mở rộng các node và group của bạn để phù hợp với các yêu cầu của ứng dụng.
Kết luận
Đến đây bạn đã cài đặt triển khai nhiều nút bằng cách sử dụng Rancher 2.1 trên Ubuntu 18.04 và đã mở rộng quy mô lên hai nút đang chạy và nhiều group trong một dung lượng công việc. Bạn có thể sử dụng chiến lược này để lưu trữ và chia tỷ lệ bất kỳ loại containers Docker nào mà bạn cần chạy trong ứng dụng của bạn và sử dụng console và cảnh báo của Rancher để giúp bạn tối đa hóa hiệu suất của dung lượng công việc và các node trong mỗi cụm.
Các tin liên quan
Cách tạo ứng dụng Node.js với Docker2018-11-29
Cách quản lý triển khai nhiều node với Máy Rancher và Docker trên Ubuntu 16.04
2018-10-30
Cách cài đặt và sử dụng Docker trên Ubuntu 16.04
2018-10-19
Cách cung cấp và quản lý server Docker từ xa bằng Máy Docker trên Ubuntu 18.04
2018-10-02
Cách cài đặt và bảo mật OpenFaaS bằng Docker Swarm trên Ubuntu 16.04
2018-09-19
Cách cài đặt Docker Compose trên Debian 9
2018-09-06
Cách cài đặt và sử dụng Docker trên Debian 9
2018-09-04
Cách chia sẻ dữ liệu giữa Docker Container và Host
2018-07-11
Cách cài đặt Docker Compose trên Ubuntu 18.04
2018-07-09
Cách cài đặt và sử dụng Docker trên Ubuntu 18.04
2018-07-05