Cách dọn dẹp môi trường Docker của bạn bằng CloudSlang trên CoreOS Cluster
CoreOS là một bản phân phối Linux tập trung vào việc xoay vòng nhanh chóng các môi trường được phân group bằng cách sử dụng các containers Docker và khám phá dịch vụ. Nếu bạn chưa quen với CoreOS, hãy xem loạt bài hướng dẫn Bắt đầu với CoreOS này.Tuy nhiên, Docker image có thể chiếm khá nhiều dung lượng đĩa trên server lưu trữ Docker. Một hình ảnh cơ sở có thể có kích thước hàng trăm MB và hình ảnh tùy chỉnh có thể dễ dàng đạt đến 1 GB. Nếu bạn có nhiều bản phát hành Docker image mới cho ứng dụng của bạn , chúng có thể dễ dàng dự trữ trên bộ nhớ server ; server có thể hết dung lượng ổ đĩa nếu thỉnh thoảng bạn không xóa các hình ảnh cũ hoặc không sử dụng.
CloudSlang là một giải pháp điều phối open-souce giúp dễ dàng tự động hóa các quy trình sử dụng quy trình làm việc, gọi tắt là quy trình. Luồng chứa danh sách các nhiệm vụ và logic chuyển . Một tác vụ có thể gọi một hoạt động, trong đó có một hành động chạy tập lệnh Python hoặc phương thức Java hoặc một stream khác. Ngôn ngữ CloudSlang cho phép bạn xác định các stream theo cách văn bản, có thể sử dụng lại và bạn có thể sử dụng nội dung hiện có (Docker, OpenStack và các tiện ích) để quản lý các ứng dụng đã triển khai hoặc tạo các stream tùy chỉnh của bạn .
Trong hướng dẫn này, ta sẽ dọn dẹp môi trường Docker cho từng máy được triển khai trong một cụm CoreOS bằng CloudSlang. Ta sẽ sử dụng nội dung đã có sẵn, vì vậy bạn sẽ không cần chỉnh sửa các file CloudSlang nào.
Yêu cầu
Trước khi bắt đầu, bạn cần :
Một server Ubuntu 14.04 với user không phải root có quyền sudo , đó sẽ là server CloudSlang của bạn.
Java (phiên bản 7 trở lên) được cài đặt trên server CloudSlang. Lưu ý bạn không cần cài đặt JDK, chỉ cần cài đặt JRE.
Một cụm ba máy CoreOS. Nếu bạn chưa có, bạn có thể cài đặt một account theo hướng dẫn này .
Bước 1 - Cài đặt extract
Trong bước này, ta sẽ cài đặt unzip
trên server CloudSlang.
Đầu tiên, hãy đảm bảo danh sách gói được cập nhật.
- sudo apt-get update
Sau đó, cài đặt extract .
- sudo apt-get install unzip
Bước 2 - Download CloudSlang
Trong phần này, ta sẽ download công cụ CloudSlang CLI và nội dung có sẵn (các hoạt động và quy trình được định nghĩa ). CloudSlang CLI là một công cụ giao diện dòng lệnh được dùng để chạy các stream .
Trước tiên, hãy download repository CloudSlang CLI.
- wget https://github.com/CloudSlang/cloud-slang/releases/download/cloudslang-0.7.29/cslang-cli-with-content.zip
Extract repository .
- unzip cslang-cli-with-content.zip
Điều này sẽ tạo một folder cslang
. Nếu bạn liệt kê nội dung của folder đó,
- ls ~/cslang
Bạn sẽ nhận thấy ba folder trong đó:
python-lib
, được sử dụng cho các thư viện Python bên ngoài.cslang
, chứa các file CloudSlang CLI. Thư mụccslang/bin
chứa một file có têncslang
được sử dụng để khởi động CLI.cslang/lib
chứa các phụ thuộc cần thiết cho ứng dụng.content
chứa nội dung CloudSlang được tạo sẵn. Luồng ta sẽ chạy nằm tạicontent/io/cloudslang/coreos
và nó được gọi làcluster_docker_images_maintenance.sl
. Luồng này lặp lại trên tất cả các máy trong cụm và xóa các Docker image không sử dụng.
Bước 3 - Thêm private key
CloudSlang cần quyền truy cập SSH key vào cụm CoreOS của bạn. Trong bước này, ta sẽ thêm điều này bằng cách tạo một cặp khóa mới trên server CloudSlang và thêm public key vào cụm CoreOS.
Đầu tiên, hãy tạo một cặp khóa không có passphrase (password bảo vệ) theo các bước 1 và 2 của hướng dẫn này . Sau khi bạn có một cặp khóa, bạn cần thêm public key của bạn vào từng máy trong cụm CoreOS của bạn .
Đầu tiên, lấy public key trên server CloudSlang của bạn.
cat ~/.ssh/id_rsa.pub
Bạn sẽ thấy một kết quả dài bắt đầu bằng ssh-rsa
và kết thúc bằng username @ hostname
. Sao chép nó để sử dụng trong lệnh tiếp theo.
SSH vào một trong các server CoreOS của bạn (tên user mặc định là core
), sau đó chạy lệnh sau để thêm public key của bạn.
echo "your_public_key" >> ~/.ssh/authorized_keys
Bạn cần thực hiện việc này cho từng server trong cụm CoreOS của bạn .
Bước 4 - Chạy Quy trình
Trong phần này, ta sẽ chạy stream và xác minh hành vi của nó.
Để chạy quy trình, trên server CloudSlang, trước tiên hãy thay đổi thành folder /cslang/bin
.
- cd ~/cslang/cslang/bin/
Chạy file thực thi có tên cslang
để khởi động CLI.
- ./cslang
Sau một lúc, bạn sẽ thấy màn hình chào mừng CloudSlang.
0.7.26-SNAPSHOT Welcome to CloudSlang. For assistance type help.
Nhập lệnh sau vào CLI, thay thế your_coreos_server_ip
bằng địa chỉ IP của một trong các server CoreOS trong cụm của bạn.
custom_prefix(cslang>) run --f ../../content/io/cloudslang/coreos/cluster_docker_images_maintenance.sl --i coreos_host=your_coreos_server_ip,coreos_username=core,private_key_file=~/.ssh/id_rsa --cp ../../content/
Lệnh run
kích hoạt stream . --f
chỉ định đường dẫn đến stream . --i
chỉ định đầu vào stream : server và tên user CoreOS, và SSH key riêng tư được liên kết. --cp
chỉ định classpath khi stream phụ thuộc vào các hoạt động và stream khác. Bởi vì stream này có nhiều phụ thuộc khác nhau, ta có thể chỉ định folder content
mẹ; quá trình quét là đệ quy nên các folder con cũng được quét.
Luồng logic đầu tiên truy xuất địa chỉ IP của các máy từ cụm, sau đó lặp qua các máy và xóa các hình ảnh không sử dụng. Đầu tiên, nó lấy tất cả các hình ảnh, chỉ để lại những hình ảnh không sử dụng bằng cách kiểm tra các containers đang chạy / dừng. Tiếp theo, nó xóa những hình ảnh không sử dụng. Cuối cùng, nó cũng làm tương tự đối với hình ảnh treo lơ lửng.
Trong khi stream đang chạy, CLI hiển thị tên tác vụ được thực thi. Khi stream kết thúc, CLI xuất ra một số thông tin hữu ích như kết quả stream và kết quả stream .
Trong trường hợp của ta , kết quả stream sẽ là THÀNH CÔNG ( nghĩa là các Docker image không sử dụng đã bị xóa trong cụm) hoặc THẤT BẠI ( nghĩa là đã xảy ra sự cố). Luồng này có một kết quả : number_of_deleted_images_per_host
, là số lượng hình ảnh đã bị xóa trên mỗi server trong cụm.
Nếu mọi thứ suôn sẻ, bạn sẽ thấy một kết quả tương tự như sau:
... Flow : cluster_docker_images_maintenance finished with result : SUCCESS Execution id: 101600001, duration: 0:02:06.180
Nếu bạn muốn biết thêm thông tin về việc thực hiện, nhìn trong execution.log
file được tạo ra bởi CLI trong bin
folder .
Kết luận
Bây giờ tất cả các Docker image không sử dụng sẽ bị xóa trong cụm CoreOS của bạn!
Trong hướng dẫn này, bạn đã biết cách chạy CloudSlang trên máy Ubuntu của bạn và cách sử dụng CloudSlang CLI để kích hoạt các stream . Bạn cũng đã sử dụng quy trình làm việc sẵn sàng để dọn dẹp môi trường Docker của bạn .
Bản quyền ngày 9 tháng 6 năm 2015, Công ty phát triển Hewlett-Packard, LP Sao chép lại với sự cho phép.
Các tin liên quan
Cách quản lý triển khai nhiều node của bạn với Máy Rancher và Docker trên Ubuntu 14.042015-04-27
Cách tập trung log Docker của bạn với Fluentd và ElasticSearch trên Ubuntu 14.04
2015-03-30
Hệ sinh thái Docker: Giới thiệu về các thành phần chung
2015-02-01
Hệ sinh thái Docker: Tổng quan về Containerization
2015-02-01
Hệ sinh thái Docker: Lập lịch và Điều phối
2015-02-01
Hệ sinh thái Docker: Khám phá dịch vụ và Cửa hàng cấu hình phân tán
2015-02-01
Hệ sinh thái Docker: Mạng và Truyền thông
2015-02-01
Cách thiết lập registry Docker riêng trên Ubuntu 14.04
2014-10-15
Cách thực hiện kiểm tra tích hợp liên tục với Drone.io trên CoreOS và Docker
2014-10-08