Open bmson7112 opened 1 year ago
Tạo các overlay network là frontend và backend bằng các lệnh sudo docker network create -d overlay backend
sudo docker network create -d overlay frontend
Tạo 2 service sử dung mạng overlay frontend, mapping qua cổng 80 với số replicas là 2
Tạo 3 service sử dung mạng overlay backend, với số replicas là 2 trong đó có 1 service là postgreSql được dùng làm cơ sở dữ liệu cho app, và 1 service worker dùng để xử lý và kết nối 2 mạng overlay backend và frontend
Kiểm tra các service, các container trong cụm
Kết quả trả về khi truy cập vào ứng dụng bằng cách sử dụng địa chỉ ip của 1 node và cổng tham chiếu
Demo 1 sản phẩm trên cluster là 1 web app sử dụngj cơ sở dữ liệu là mongoDB kết nối với nhau bằng ConfigMap và Secret
mongo-config.yaml
, mongo-secret.yaml
, mongo.yaml
, myapp.yaml
với nội dung như hình để cấu hình các service
Sử dụng các tệp cấu hình vào kubernetes để tạo các service trong cluster, dùng lệnh kubectl apply -f ...yaml
Sử dụng kubectl get all
để kiểm tra thông tin deployment, pod
Tạo thêm node và add node vào cluster
Sau đó kiểm tra lại node trong cluster
Sau khi cluster có thể node mới, số lượng node sẽ được cân đối lại để giảm tải cho node master, dùng lệnh kubectl get node -o wide
để kiểm tra các pod trên từng node
Docker swarm
base=https://github.com/docker/machine/releases/download/v0.16.0 && curl -L $base/docker-machine-$(uname -s)-$(uname -m) >/tmp/docker-machine && sudo install /tmp/docker-machine /usr/local/bin/docker-machine
Sau khi chạy lại lệnh
sudo docker-machine create --driver virtualbox vps1
, xuất hiện lỗiVì Virtualbox có 1 cấu hình IP mặc định khi được cài đặt trong Linux nên cần tạo 1 file cấu hình network cho nó, tạo file
networks.conf
có đường dẫn/etc/vbox/networks.conf
Tạo các docker host như hình
SSH vào cả 3 docker host, chọn vps1 làm manager node
Sử dụng vps2, vps3 làm các node worker, join vào swarm bằng swarm join token, sau đó ta được swarm có các node như hình
Deploy service
Chạy docker service với image getting-started của docker, để kiểm tra service dùng lệnh
docker service ls
Kiểm tra container có được chạy trong các node của swarm không, truy cập vào địa của ip của node vps2 là 192.168.99.100, container chạy ở cổng 3000
Mỗi node trong swarm sẽ được chia cho 1 số container để quản lý, để kiểm tra thông tin các container của service, dùng lệnh
sudo docker servide ps [tên service]
Mỗi khi truy cập vào service, docker sẽ dựa trên mức độ làm việc của các container để lựa chọn 1 container của 1 node để phục vụ nhu cầu của user
Hệ thống docker swarm đảm bảo cho các container hoạt động liên tục, nếu cú 1 container nào dừng hoạt động thì sẽ có 1 container mới được tạo để bù vào
Scale service
Nêus muôns thay đổi số tác vụ hiện tại của 1 service thì dùng lệnh
docker service scale [service-id]=[NUMBER-OF-TASKS]
Sử dụng lệnh
docker stats
để kiểm tra trạng thái các container, tài nguyên sử dụngDeploy app to Swarm
Tạo file bb-stack.yml trong thư mục getting-started
Khởi động các host và copy file bb-stack.yml vào thư mục
home
của node vps1Deploy app lên Swarm bằng lệnh
sudo docker stack deploy -c bb-stack.yaml demo
KIểm tra lại các service bằng lệnh
sudo docker service ls
KIểm tra cacs container đang chạy dùng lệnh
sudo docker stack ps demo
Khi muốn update service mà thay đổi file
.yml
, sau khi chạy lệnhsudo docker stack deploy -c ...
, nếu stack đã tồn tại thì nó sẽ thực hiện update các container hiện tại mà không bị xóa điTìm hiểu về mạng overlay trên docker swarm
KIểm tra danh sách mạng trên swarm bằng lệnh
docker network ls
, khi hệ thống docker swarm được khơir tạo, nó tạo sẵn 1 mạng giữa các host là mạng overlay , có tên mặc định là ingress