CodeGym /Các khóa học /Docker SELF /Nghiên cứu mạng overlay

Nghiên cứu mạng overlay

Docker SELF
Mức độ , Bài học
Có sẵn

7.1 Nghiên cứu mạng overlay

Mạng overlay — là một mạng phân tán Docker, cho phép các container chạy trên các host khác nhau giao tiếp với nhau. Nó thường được sử dụng trong ngữ cảnh orchestration container, chẳng hạn như Docker Swarm hoặc Kubernetes, để đảm bảo kết nối giữa các container chạy trên những node khác nhau. Trong bài giảng này, chúng ta sẽ thảo luận cách tạo và sử dụng mạng overlay, cũng như các ví dụ về việc sử dụng nó.

Mạng overlay tạo ra một mạng phân tán ảo trên các mạng hiện có, kết hợp nhiều host thành không gian mạng duy nhất. Điều này cho phép các container giao tiếp như thể chúng đang nằm trong cùng một mạng cục bộ, bất kể vị trí vật lý của các host.

Lợi ích của việc sử dụng mạng overlay:

  1. Kết nối giữa các container trên các host khác nhau: cung cấp sự tương tác mạng giữa các container chạy trên các node khác nhau.
  2. Isolation: cho phép tạo ra các không gian mạng cách ly cho từng ứng dụng.
  3. Khả năng mở rộng: hỗ trợ thêm và xóa các node một cách động mà không bị gián đoạn hoạt động.

7.2 Tạo mạng overlay

Để tạo mạng overlay, trước hết cần khởi tạo cluster Docker Swarm. Việc này sẽ tạo một node quản lý (manager) và cho phép tạo các network phân tán.

Bước 1: Khởi tạo Docker Swarm

Chạy lệnh trên máy chủ sẽ đóng vai trò là manager của cluster. Lệnh này sẽ khởi tạo cluster Swarm và hiển thị lệnh để thêm các node khác vào cluster.

Terminal

docker swarm init

Bước 2: Thêm các worker node vào cluster

Trên các máy chủ khác, chạy lệnh mà docker swarm init cung cấp để thêm chúng vào cluster. Ví dụ lệnh:

Terminal

docker swarm join --token <SWARM_TOKEN> <MANAGER_IP>:2377

Bước 3: Tạo mạng overlay

Sau khi khởi tạo cluster, tạo mạng overlay bằng cách chạy lệnh:

Terminal

docker network create -d overlay my_overlay_network

Bước 4: Kiểm tra network

Để kiểm tra việc tạo network thành công, chạy lệnh docker network ls, lệnh này sẽ hiển thị danh sách tất cả các network, bao gồm cả network overlay mới:

Terminal

docker network ls

Ví dụ kết quả:

Terminal

NETWORK ID     NAME                DRIVER    SCOPE
a1b2c3d4e5     my_overlay_network overlay  swarm

Bây giờ mạng my_overlay_network đã sẵn sàng để sử dụng cho các ứng dụng phân tán.

7.3 Sử dụng mạng overlay

Bây giờ, khi mạng đã được tạo, bạn có thể chạy các container và dịch vụ kết nối với mạng này.

Ví dụ sử dụng mạng overlay cho dịch vụ

Trong Docker Swarm, bạn có thể sử dụng dịch vụ để quản lý các container. Hãy tạo một số dịch vụ được kết nối với mạng overlay.

Bước 1: Tạo dịch vụ web server

Terminal

docker service create --name webserver --network my_overlay_network -p 8080:80 nginx

Lệnh này tạo dịch vụ webserver, kết nối với mạng my_overlay_network. Web server sẽ có thể truy cập tại địa chỉ http://localhost:8080.

Bước 2: Tạo dịch vụ cơ sở dữ liệu

Terminal

docker service create --name database --network my_overlay_network -e POSTGRES_PASSWORD=mysecretpassword postgres

Ở đây tạo dịch vụ database, kết nối vào cùng mạng với thiết lập biến môi trường POSTGRES_PASSWORD.

Bước 3: Kiểm tra kết nối giữa các dịch vụ

Chạy một container tạm thời để kiểm tra kết nối giữa các dịch vụ:

Terminal

docker run -it --network my_overlay_network busybox

Bên trong container, sử dụng các lệnh ping để kiểm tra kết nối với web server và cơ sở dữ liệu:

Terminal

ping webserver
ping database

Nếu thiết lập chính xác, lệnh ping sẽ hiển thị kết nối thành công, xác nhận rằng các container có thể tương tác qua hostname.

Bước 4: Xem trạng thái dịch vụ

Sử dụng lệnh docker service ls, để kiểm tra trạng thái của các dịch vụ đã tạo:

Terminal

docker service ls

Kết quả mong đợi sẽ hiển thị thông tin về các dịch vụ đang chạy, trạng thái và số lượng bản sao.

Lưu ý: Mạng overlay cho phép các container trên các host khác nhau trao đổi dữ liệu, nếu chúng được kết nối vào cùng một Swarm cluster.

7.4 Ví dụ sử dụng mạng overlay trong Docker Compose

Docker Compose giúp đơn giản hóa việc quản lý các ứng dụng đa container và mạng. Bạn có thể định nghĩa một mạng overlay và sử dụng nó để kết nối giữa các container trong file docker-compose.yml.

Ví dụ file docker-compose.yml:

Yaml

version: '3.8'

services:
  web:
    image: nginx:latest
    ports:
      - "8080:80"
    networks:
      - my_overlay_network
        
  db:
    image: postgres:latest
    environment:
      POSTGRES_PASSWORD: matkhauculatuyetmat
    networks:
      - my_overlay_network
        
networks:
  my_overlay_network:
    driver: overlay
    attachable: true

Chạy Docker Compose:

Terminal

docker stack deploy -c docker-compose.yml mystack

Lệnh này sẽ triển khai stack sử dụng file docker-compose.yml và tạo các dịch vụ được kết nối tới mạng my_overlay_network.

Lời khuyên thực tế:

  1. Giám sát mạng: Sử dụng các công cụ giám sát Docker Swarm như Docker Dashboard hoặc Prometheus để theo dõi trạng thái mạng và tương tác giữa các container.
  2. Quản lý khả năng mở rộng: Mạng Overlay hỗ trợ thêm và xóa node một cách linh hoạt. Đảm bảo cấu hình đủ tài nguyên mạng để mở rộng ứng dụng.
  3. Sao lưu cấu hình: Thường xuyên lưu lại các cấu hình mạng và stack để khôi phục nhanh chóng trong trường hợp xảy ra sự cố.
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION