Docker Swarm là gì? cách sử dụng Docker Swarm. Đây là những câu hỏi mà hầu hết các bạn mới vào nghề đều tìm tòi. Nếu bạn đang gặp phải vướng mắc về Docker Swarm, hãy cùng mình tìm hiểu những thông tin chi tiết ngày bài viết này nhé.
Docker swarm là gì?
Docker Swarm chính là công cụ tạo ra clustering Docker. Cho phép chúng ta có thể kết nối các docker host lại với nhau tạo thành một cụm máy. Khi đã tạo được hệ thống Docker Swarm, thì bạn có thể quản lý và chạy các dịch vụ trên hệ thống này một cách dễ dàng nhất. Ví dụ: bạn có các hệ thống docker được chạy trên các vps khác nhau thì bạn có kể kết nối chúng thành một cụm docker.
Những tính năng nổi bật
- Cluster management integrated with Docker Engine được sử dụng bộ Docker Engine CLI để tạo ra swarm một cách dễ dàng.
- Decentralized design: Docker Swarm được thiết kế ở dạng phân cấp. Thay vì các bạn phải xử lý roles của node tại thời điểm đã được triển khai, Docker sẽ xử lý bất kỳ tác vụ nào khi có runtime. Bạn có thể triển khai worker và node managers bằng Docker Engine.
- Declarative service model: Docker Engine cho phép khai báo trạng thái của các dịch vụ trong stack ứng dụng của bạn.
- Scaling: Với mỗi một server có thể khai báo số lượng stask mà bạn muốn chạy.
- Desired state reconciliation: Swarm phải đảm bảo một service hoạt động ổn định, bằng cách tự động thay một replicas crash bằng một replicas mới cho các worker đang chạy.
- Multi-host networking: Swarm manager có thể tự động gán địa chỉ IP cho mỗi service khi nó cập nhật và khởi tạo application.
- Service discovery: Swarm manager gắn mỗi service trong swarm một DNS riêng. Do đó các bạn có thể truy xuất thông qua DNS này.
- Load balancing: Có thể cho services cân bằng và tái sử dụng thuật toán Round-robin.
- Secure by default: Các service có thể giao tiếp với nhau và sử dụng giao thức bảo mật TLS.
- Rolling updates: Với warm sẽ cập nhập hình ảnh của service một cách tự động. Swarm manager giúp cho bạn kiểm soát được độ trễ giữa service deploy tới các nút khác nhau và các bạn có thể quay trở lại bất cứ lúc nào.
Khởi tạo Docker Swarm
Phần này các bạn sẽ tạo một cụm docker với 2 máy host và 1 host làm node manager.
- Tạo máy ảo Swarm manager bằng lệnh $ docker-machine create manager
- Tạo 2 máy ảo cho Swarm node worker bằng các lệnh $ docker-machine create worker1 và $ docker – machine create worker 2
- Kiểm tra danh sách máy ảo $ docker-machine cho ta thấy rằng các máy ảo cần thiết đã được tạo thành công.
- Cần kiểm tra thông tin một máy ảo lúc đó ta có thể dùng lệnh $ docker – machine inspect manager
- Khởi tạo Swarm trên máy ảo để truy cập vào máy manager. Nếu muốn truy cập vào các máy khác thì manager chính là tên máy mà các bạn muốn truy cập vào.
- Quay trở lại local host exit.
- Ở local host khi khởi tạo Swarm với node manager thì IP máy được chọn làm manager. IP này các bạn có thể lấy ở lệnh $ docker-machine inspect manager hoặc$ docker-machine ls. Tạo xong thì sẽ hiện ra, dòng bôi trắng là lệnh được dùng để các worker jorn vào Swarm, lệnh này được dùng vào phần sau.
- Kiểm tra các lại danh sách hiện tại đang có trong Swarm Docker node ls.
- Join 1 máy ảo khác vào Swarm vừa tạo bật 1 terminal mới và SSH vào worker1 rồi sử dụng lệnh Jorn ở trên .
- Quay lại terminal của manager để kiểm tra xem có những nốt nào trong Swarm.
Nên sử dụng Docker khi nào?
Một khi các bạn đã hiểu rõ Docker là gì? thì chắc chắn bạn sẽ thắc mắc rằng không biết nên sử dụng Docker khi nào cho hợp lý đúng không? Và dưới đây là thời điểm thích hợp để các bạn có thể sử dụng nó.
- Khi các bạn triển khai kiến trúc Microservices.
- Khi các bạn muốn xây dựng ứng dụng thường sẽ cần đến scale một cách linh hoạt hơn.
- Khi mọi người không muốn mất quá nhiều thời gian để config server và máy local trong cùng một môi trường mà vẫn có thể chạy được ứng dụng. Bạn hoàn toàn có thể sử dụng một lần mà chạy ở nhiều nơi.
- Các sản phẩm của công ty mà bạn đang cần cách tiếp cận để xây dựng cũng như đưa server lên, thì việc thực thi những ứng dụng đó sẽ cần hoàn thiện nhanh chóng một cách dễ dàng nhất.
Chắc hẳn, với những thông tin mà mình vừa cung cấp bên trên thì bạn hoàn toàn có thể hiểu rõ được Docker Swarm là gì rồi đúng không? Hiện nay, Docker Swarm là một nền tảng quan trọng không thể thiếu với các bạn lập trình viên. Các bạn nên căn cứ vào nhu cầu sử dụng để cài đặt Docker Swarm sao cho phù hợp với công việc của mình nhé. Chúc các bạn có những trải nghiệm mới mẻ với ứng dụng Docker Swarm.