0
0
Lập trình
Hưng Nguyễn Xuân 1
Hưng Nguyễn Xuân 1xuanhungptithcm

Docker: Mạng Nâng Cao Với Overlay và Multi-Host

Đăng vào 7 tháng trước

• 2 phút đọc

Docker Series: Tập 22 — Mạng Docker Nâng Cao: Nhiều Máy Chủ & Mạng Overlay 🌐

Chào mừng bạn trở lại! Sau khi đã khám phá các khái niệm cơ bản về mạng, Docker Compose, Swarm và ghi nhật ký, bây giờ chúng ta sẽ đi sâu vào mạng Docker nâng cao cho các thiết lập nhiều máy chủ. Điều này rất cần thiết khi triển khai các ứng dụng có khả năng mở rộng trên nhiều máy.


🔹 Tại Sao Cần Mạng Nâng Cao?

  • Giao tiếp giữa các container trên các máy chủ khác nhau là cần thiết.
  • Mạng overlay cho phép giao tiếp liền mạch giữa các container trên các máy khác nhau.
  • Điều này rất hữu ích cho cụm Swarm hoặc các ứng dụng phân tán.

🔹 Mạng Overlay

  • Mạng overlay kết nối nhiều Docker daemon (máy chủ) lại với nhau.
  • Tự động mã hóa lưu lượng giữa các nút trong một Swarm.

Tạo Mạng Overlay

bash Copy
docker network create -d overlay my_overlay
  • -d overlay chỉ định driver overlay.

Kết Nối Các Dịch Vụ

bash Copy
docker service create --name web --replicas 3 --network my_overlay nginx
  • Các dịch vụ giờ đây có thể giao tiếp qua lại giữa các nút một cách minh bạch.

🔹 Ví Dụ Về Mạng Nhiều Máy Chủ

  1. Khởi tạo Swarm trên máy chủ đầu tiên:
bash Copy
docker swarm init --advertise-addr <MANAGER-IP>
  1. Tham gia các nút worker:
bash Copy
docker swarm join --token <WORKER-TOKEN> <MANAGER-IP>:2377
  1. Triển khai một dịch vụ trên mạng overlay.
  2. Kiểm tra giao tiếp giữa các bản sao trên các nút:
bash Copy
docker service ps web
docker exec -it <container_id> ping <other_container_name>

🔹 Mạng Macvlan

  • Cho phép các container xuất hiện như các thiết bị vật lý trên mạng.
  • Hữu ích cho các ứng dụng cũ hoặc các ứng dụng cần truy cập LAN trực tiếp.

Ví dụ:

bash Copy
docker network create -d macvlan \
  --subnet=192.168.1.0/24 \
  --gateway=192.168.1.1 \
  -o parent=eth0 my_macvlan

🔹 Thực Hành Tốt Nhất

  • Sử dụng mạng overlay cho các ứng dụng nhiều máy chủ.
  • Sử dụng mạng bridge cho các dịch vụ được cô lập trên một máy chủ.
  • Tránh việc công khai tất cả các cổng.
  • Sử dụng VLAN hoặc Macvlan chỉ khi cần thiết cho việc tích hợp mạng.

🔹 Thách Thức Thực Hành

  1. Tạo một mạng overlay.
  2. Triển khai một dịch vụ Nginx với 3 bản sao trên các nút Swarm.
  3. Kiểm tra giao tiếp giữa các container.
  4. Thử nghiệm với Macvlan cho một container cần truy cập LAN.

✅ Tập Tiếp Theo: Tập 23 — Docker Swarm Nâng Cao: Dịch Vụ, Secrets & Configs — làm chủ các tính năng điều phối cho việc triển khai sẵn sàng sản xuất.

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào