2016-11-24 29 views
14

Tôi có một cụm bầy đàn với một người quản lý và một nút bình thường khác, khi tôi tạo một dịch vụ bầy tôi đang tạo với kiểu gắn kết, gắn kết nguồn và gắn kết đích. Nó tạo ra ổ đĩa có cùng tên trong cả trình quản lý và nút và bắt đầu vùng chứa và dịch vụ của tôi đang hoạt động.Làm thế nào để xóa khối lượng trong cụm swarm?

Khi tôi phát hành dịch vụ, khối lượng được tạo cùng với dịch vụ không bị xóa, điều này vẫn ổn.

Vấn đề tôi đang đối mặt là khi tôi xóa ổ đĩa với cùng điểm cuối, nó chỉ xóa khối lượng trong trình quản lý, khối lượng được tạo trong nút trong khi tạo dịch vụ vẫn tồn tại.

Tôi muốn người quản lý xóa tất cả các tập được tạo cùng với dịch vụ bầy đàn. Là có một cách ??

+0

Phiên bản docker là gì? Với sự khác biệt về thời gian, tôi đoán OP và tiền thưởng đang xem xét những thứ khác nhau. – BMitch

+0

Tiền thưởng nhìn vào Chế độ Swarm. Docker -> = 17.x – Rufinus

Trả lời

4

Sau quá nhiều phân tích ở đây là lý thuyết.

nếu bạn đang hướng dẫn tạo một dịch vụ với khối lượng, Swarm chỉ thực hiện các thao tác tạo dịch vụ bên trong cụm tức là trên nhiều nút có khi bạn gửi chi tiết về khối lượng. phát hành dịch vụ nó không kiểm tra trong các nút công nhân cho sự tồn tại của khối lượng trong khi phát hành của nó lỗi trong docker

Tôi đã đưa ra lỗi trong docker cho nó.

Hiện tại không có cách nào khác ngoài việc giải phóng khối lượng từ nút công nhân theo cách thủ công sau khi phát hành dịch vụ bầy đàn.

+2

Bạn có liên kết URL cho vấn đề mà bạn đã nêu lên không? – VonC

+0

Vui lòng tìm URL cho vấn đề được nêu ra: https://github.com/moby/moby/issues/35179 –

2

Có thể chỉ là vấn đề nâng cấp Docker? theo Git page, nó sẽ dọn sạch mọi thứ.

@test "docker volume rm" { 
    start_docker_with_busybox 2 
    swarm_manage 

    # check for failure when removing a non-existent volume 
    run docker_swarm volume rm test_volume 
    [ "$status" -ne 0 ] 

    # run a container that exits immediately but stays around and 
    # connected to the volume. Wait for it to finish. 
    docker_swarm run -d --name=test_container -v=/tmp busybox true 
    docker_swarm wait test_container 

    run docker_swarm volume ls -q 
    volume=${output} 
    [ "${#lines[@]}" -eq 1 ] 

    # check that removing an attached volume is an error 
    run docker_swarm volume rm $volume 
    [ "$status" -ne 0 ] 

    docker_swarm rm test_container 

    run docker_swarm volume rm $volume 
    [ "$status" -eq 0 ] 
    [ "${#lines[@]}" -eq 1 ] 

    run docker_swarm volume ls 
    [ "${#lines[@]}" -eq 1 ] 
} 
2

Theo tôi biết khối lượng chỉ được tạo trên các nút nơi tạo vùng chứa. Có thể dịch vụ của bạn không khởi động được trên một nút, kết thúc bằng một nút khác và bằng cách nào đó bầy đàn không dọn dẹp? Nếu đó là trường hợp viết một vấn đề trong github.

Cập nhật (từ bình luận):

Theo docker service create documentation:

Một khối lượng được đặt tên là một cơ chế để tách dữ liệu liên tục cần thiết bằng container của bạn từ hình ảnh sử dụng để tạo ra các container và từ máy chủ. Khối lượng đã đặt tên được tạo và quản lý bởi Docker và khối lượng được đặt tên vẫn tồn tại ngay cả khi không có vùng chứa nào hiện đang sử dụng. Dữ liệu trong khối lượng được đặt tên có thể được chia sẻ giữa một vùng chứa và máy chủ, cũng như giữa nhiều vùng chứa. Docker sử dụng trình điều khiển âm lượng để tạo, quản lý và gắn khối lượng. Bạn có thể sao lưu hoặc khôi phục các tập bằng lệnh Docker.

Vì vậy, nếu bạn đang sử dụng khối lượng được đặt tên, câu trả lời đúng sẽ là lý do tại sao họ bị xóa trên người quản lý và nơi họ đã tạo ở đó?

+0

Quan điểm tốt về cách khắc phục sự cố. Tôi mặc dù như vậy.khi bạn hướng dẫn các bầy đàn để tạo ra các dịch vụ với bản sao 10, Nó chia tách và quyết định có bao nhiêu container phải chạy trên mỗi nút. nó chỉ tạo ra âm lượng trong nút nếu có bất kỳ dịch vụ nào được phân bổ như bạn đã nói. thậm chí mọi thứ diễn ra tốt đẹp và các thùng chứa đang chạy thành công quá, nó không thể giải phóng các ổ đĩa trong nút công nhân, tôi đã xác minh bằng tay nhiều lần. –

+1

Và trên người quản lý họ bị xóa? Nếu bạn có một khối lượng được đặt tên, nó phải tồn tại đúng không? "Khối lượng được đặt tên là cơ chế tách dữ liệu liên tục cần thiết bởi vùng chứa của bạn từ hình ảnh được sử dụng để tạo vùng chứa và từ máy chủ. Khối lượng đã đặt tên được tạo và quản lý bởi Docker và khối lượng được đặt tên vẫn tồn tại ngay cả khi không có vùng chứa nào hiện đang sử dụng Dữ liệu trong khối lượng được đặt tên có thể được chia sẻ giữa một thùng chứa và máy chủ, cũng như giữa nhiều vùng chứa. Docker sử dụng trình điều khiển âm lượng để tạo, quản lý và gắn khối lượng. " – herm

+0

bạn hoàn toàn đúng. tôi cũng nghĩ trong quan điểm đó, từ quan điểm của docker, họ xác định khối lượng, mạng và vùng chứa như một dịch vụ riêng biệt. khối lượng và mạng có thể được chia sẻ trên các thùng chứa. Tôi đồng ý, trong trường hợp đó tại sao họ xóa trong nút quản lý là câu hỏi tỷ đô la? nếu họ đang xóa họ nên xóa trên cụm khác họ không nên xóa trong người quản lý quá là đối số của tôi về điều này. –

Các vấn đề liên quan