Thứ tư, 10/06/2015 | 00:00 GMT+7

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 :

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ục cslang/bin chứa một file có tên cslang đượ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ại content/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.


Tags:

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.04
2015-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