Computer >> Máy Tính >  >> Hệ thống >> Linux

Container Linux là gì và bạn có nên sử dụng nó?

Hệ điều hành Linux có nhiều loại. Trong khi các hệ điều hành Linux như Ubuntu khá chung chung, vẫn có những hệ điều hành khác nhắm đến một thị trường ngách. Có Kali Linux theo định hướng bảo mật. Các bản phân phối nhẹ như Xubuntu và thậm chí cả Hannah Montana Linux (!). Để sử dụng trên máy tính để bàn, hệ điều hành Linux vani hoạt động tốt. Tuy nhiên, đối với các tác vụ chuyên biệt như chạy máy chủ, tốt nhất bạn nên tìm một phiên bản phù hợp.

Container ngày càng được ưa chuộng. Container Linux, trước đây gọi là CoreOS, là một hệ điều hành Linux được thiết kế để triển khai container đơn giản. Đây là một trong những hệ điều hành Linux thích hợp mới nhất. Hãy xem tổng quan này và cái nhìn thực tế về Container Linux.

Thực hành với Container Linux:Kiến thức nền

Trước khi tìm hiểu về Container Linux, hãy bắt đầu với tổng quan ngắn gọn về kiến ​​trúc máy chủ. Container Linux được thiết kế để triển khai theo cụm. Một triển khai theo cụm nghe có vẻ khá phức tạp, nhưng nó khá đơn giản. Về cơ bản, một cụm máy tính bao gồm nhiều máy chủ hoạt động cùng nhau. Do đó, chúng hoạt động như một đơn vị hoặc hệ thống hơn là nhiều. Hơn nữa, các máy tính trong một cụm có các nút hoặc máy chủ, thực hiện cùng một chức năng. Vì vậy, một nút là một máy duy nhất trong khi một cụm là một nhóm các máy chủ hoạt động cùng nhau.

Hầu hết các triển khai Container Linux phổ biến đều nằm trong môi trường cụm. Bản phân phối trước đây được gọi là CoreOS thậm chí còn bao gồm các phương tiện để tạo một cụm chỉ từ một máy. Tuy nhiên, đặc điểm nổi bật của Container Linux là sự phụ thuộc của nó vào các vùng chứa.

Không giống như hệ điều hành máy tính để bàn truyền thống, tất cả các ứng dụng đều chạy trong vùng chứa. Trong khi cả máy ảo (VM) và vùng chứa đều sử dụng các phương pháp ảo hóa, các vùng chứa lại khác nhau. Không giống như máy ảo, các thùng chứa sử dụng cùng một nhân hệ điều hành như máy chủ. Vì các ứng dụng được chứa trong vùng chứa và máy chủ sử dụng cùng một nhân nên việc triển khai vùng chứa được hưởng lợi từ việc tăng hiệu quả. Trong cấu hình máy ảo, mỗi máy ảo chạy một ứng dụng cùng với một hệ điều hành khách. Điều này chạy trên phần cứng và hệ điều hành máy chủ.

Thay vào đó, các triển khai được chứa trong vùng chứa chạy các ứng dụng trong vùng chứa của riêng chúng trên phần mềm ảo hóa. Docker vẫn là phần mềm vùng chứa phổ biến nhất, mặc dù chroot, LXC và Linux-VServer được xếp hạng trong số các lựa chọn thay thế Docker.

Thực hành với Container Linux:Tại sao lại sử dụng Container?

OK, vì vậy vùng chứa là một phương pháp ảo hóa. Tại sao lại chọn môi trường chứa đựng? Thông thường, các thùng chứa mang lại hiệu suất được cải thiện. Bằng cách tránh sử dụng các hệ điều hành riêng biệt và thay vào đó sử dụng nhân dùng chung, bạn tối đa hóa hiệu suất CPU, bộ nhớ và bộ nhớ.

Vì bạn không cần phải chạy nhiều phiên bản hệ điều hành như trong cấu hình VM, bạn có thể chạy nhiều vùng chứa hơn. Cải tiến hiệu suất bắt nguồn từ nhu cầu về một hệ điều hành duy nhất. Tương tự, bạn có thể tạo vùng chứa nhanh hơn trong môi trường máy ảo. Do đó, các thùng chứa phù hợp hơn để duy trì sự nhanh nhẹn và cho phép giao hàng liên tục và tích hợp liên tục.

Sự phát triển Agile tập trung vào sự lặp lại và tính toán không thể đoán trước được. Bạn có thể đọc Tuyên ngôn Agile để có cái nhìn sâu sắc hơn về triết lý nhanh nhẹn. Tuy nhiên, bất chấp những ưu điểm của container, nó không phải là một phương pháp ảo hóa hoàn hảo. Khi các vùng chứa chia sẻ nhân hệ điều hành máy chủ, sẽ có nguy cơ bảo mật. Bất kỳ lỗ hổng hoặc vi phạm nào ảnh hưởng đến vùng chứa đều có quyền truy cập vào hệ điều hành. Nhưng có một cách giải quyết là chạy các ứng dụng được chứa trong một hệ điều hành trong một máy ảo. Điều này đảm bảo rằng hệ điều hành của máy chủ được cách ly khỏi hệ điều hành của máy chủ vùng chứa duy nhất.

Việc lưu trữ cũng yêu cầu các bộ chứa phải sử dụng cùng một hệ điều hành. Với máy ảo, mỗi ứng dụng có hệ điều hành riêng. Vì vậy, bạn không thể chạy các ứng dụng được thiết kế cho Windows Server trong môi trường Linux được chứa và ngược lại.

Thực hành với Container Linux:Container Linux là gì?

Container Linux là gì và bạn có nên sử dụng nó?

CoreOS, hoặc Container Linux như bây giờ được gọi, là một hệ điều hành Linux mã nguồn mở. Đó là một bản phân phối nhẹ nhằm vào việc triển khai theo cụm. Cụ thể hơn CoreOS tập trung vào các triển khai đơn giản, đáng tin cậy, có thể mở rộng. Bạn sẽ không tìm thấy trình quản lý gói. Thay vào đó, Container Linux yêu cầu tất cả các ứng dụng phải chạy bên trong các vùng chứa. Container Linux sử dụng Chrome OS làm cơ sở của nó. Do đó, Container Linux vẫn khá nhẹ. Để kiểm tra, tôi đã chạy hệ điều hành Linux trước đây gọi là CoreOS trong một máy ảo trên máy tính xách tay HP Envy m6-1205dx AMD A10 cũ. Mức tiêu thụ tài nguyên hệ thống khá thấp.

Do Container Linux tránh một số tính năng của hệ điều hành Linux dành cho máy tính để bàn truyền thống, nên nó giữ cho bản phân phối nhẹ. Không giống như hệ điều hành dành cho máy tính để bàn, bạn sẽ không tìm thấy trình quản lý gói. Thay vào đó, tất cả các ứng dụng chạy dưới dạng vùng chứa Docker. Điều này làm cho tính di động và cách ly dịch vụ. Nếu bạn muốn một môi trường máy tính để bàn, bạn không gặp may. Container Linux thiếu giao diện người dùng đồ họa. Thay vào đó, mọi thứ đều dựa trên dòng lệnh. Bảng điều khiển CoreUpdate cung cấp thông tin về tình trạng máy, dịch vụ đang chạy và tình trạng cụm. Nhưng nó chỉ có sẵn dưới dạng một thành phần trong đăng ký Premium Managed Linux.

Kiến trúc Linux vùng chứa

Container Linux nhẹ và được thiết kế để chứa và phân cụm. Vì không có môi trường máy tính để bàn, cấu hình hoạt động khác với trên hệ điều hành Linux như CentOS hoặc Ubuntu. Khi khởi động ban đầu, Container Linux sẽ tải một tệp cấu hình đám mây. Bạn sẽ cần nhập thông tin vào cấu hình đám mây. Điều này có thể hơi phức tạp, đặc biệt là đối với những người không quen thuộc với cấu hình đám mây. Nhưng đó là một tệp thiết yếu cung cấp cho Container Linux khả năng tải các dịch vụ thiết yếu, thay đổi các tham số và quản lý các cụm.

Hơn nữa,

etcd

fleetd

daemon vẫn không thể thiếu đối với Container Linux. Cả hai dịch vụ này đều khởi chạy khi khởi động theo mặc định. Ngoài ra, khi khởi động, tệp cấu hình đám mây cho phép máy chủ lưu trữ biết cách tham gia vào một cụm hiện có.

etcd

daemon phân phối và lưu trữ dữ liệu cho các máy chủ trong một cụm. Nó cần thiết để duy trì cấu hình cũng như khám phá dịch vụ.

fleetd

daemon tương tự như một init phân tán. Daemon này liên kết đến

systemd

init cho các máy chủ trong một cụm và đảm nhận các tác vụ như lập lịch dịch vụ.

Mỗi hệ thống trong một

fleetd

cụm chỉ chạy một

fleetd

daemon. Daemon này đảm nhận hai trách nhiệm chính hoạt động như tác nhân và động cơ. Với tư cách là công cụ, daemon thực hiện các quyết định lập lịch trình. Trong khi bên đại lý thực hiện các đơn vị. Trong cụm hạm đội,

etcd

là kho dữ liệu duy nhất. Những thông tin như sự hiện diện của cụm, trạng thái đơn vị và các tệp đơn vị đều được lưu trữ trong

etcd

daemon. Ngoài ra, nó là phương tiện để liên lạc với đại lý hạm đội và động cơ.

Thực hành với Container Linux:Ai nên sử dụng nó?

Container Linux được tải xuống miễn phí, dung lượng nhẹ và cài đặt khá đơn giản trong máy ảo. Bất kỳ ai cần triển khai nhanh chóng, có thể mở rộng, được tích hợp sẵn nên chọn Container Linux. Hầu hết các quản trị viên hệ thống và quản trị viên cơ sở dữ liệu sẽ được hưởng lợi nhiều nhất từ ​​Container Linux. Vì Container Linux thiếu môi trường máy tính để bàn, nên nó phù hợp nhất để quản lý cụm và cài đặt máy chủ. Nếu bạn đang tìm kiếm một hệ điều hành máy chủ Linux, thì Container Linux là một trong 12 bản phân phối máy chủ Linux tốt nhất.

Air Pair có tính năng ghi rõ các ưu đãi CoreOS. Bài viết này đề cập đến tính khả dụng cao, bảo trì môi trường sản xuất, kiểm soát phiên bản phần mềm và vvd là những điểm chính để sử dụng Container Linux. Đáng chú ý, cũng có một cộng đồng mã nguồn mở cực kỳ chuyên dụng. Container Linux được thiết kế riêng cho người dùng Linux dày dặn. Tài liệu trợ giúp mặc dù toàn diện nhưng giả sử mức độ quen thuộc của Linux vừa phải. Người dùng mới bắt đầu và người mới bắt đầu có thể gặp một chút rắc rối với quá trình cài đặt ban đầu.

Cụ thể hơn, cấu hình đám mây có thể là một thách thức. Trong phần nhận xét của một video cài đặt CoreOS, người dùng YouTube Setyoso Nugroho đã nói, "Hướng dẫn tuyệt vời! Khá khó hiểu khi tìm hiểu cấu hình tệp # cloud-config trong CoreOS." Mặc dù cấu hình không quá khó, nhưng Container Linux giả định rằng nó nắm chắc các tính năng của Linux như trình soạn thảo VIM.

Thực hành với Container Linux:Cách cài đặt

Có nhiều phương tiện để cài đặt Container Linux. Theo trang web CoreOS, các nền tảng chính thức bao gồm Amazon EC2, DigitalOcean, Microsoft Azure, bare metal và OpenStack. Cùng với Oracle Linux, CentOS và Suse, CoreOS là một trong số ít các hệ điều hành Linux tương thích với Azure. Nhờ có một cộng đồng sôi động, các nền tảng như Packet, Rackspace, Brightbox, VirtualBox và VMware cũng được hỗ trợ. Tôi thấy phương pháp dễ nhất là cài đặt Container Linux trên VirtualBox bằng tệp ISO. Đây là hướng dẫn nhanh về cách sử dụng VirtualBox.

Định cấu hình VirtualBox

Mở VirtualBox và bạn sẽ được nhắc nhập tên máy ảo, loại hệ điều hành và phiên bản. Tôi gọi đơn giản là CoreOS của tôi. Đối với loại, hãy chọn Linux. Như phiên bản, sử dụng Linux 2.6 / 3.x / 4 / x (64-bit). Nhấp vào Tiếp theo.

Container Linux là gì và bạn có nên sử dụng nó?

Bây giờ bạn sẽ cần phân bổ RAM của mình. CoreOS đề xuất RAM tối thiểu là 1024 MB.

Container Linux là gì và bạn có nên sử dụng nó?

Sau khi chọn RAM, bạn sẽ cần thêm một đĩa cứng ảo. Sử dụng tùy chọn tạo đĩa cứng ảo ngay bây giờ.

Container Linux là gì và bạn có nên sử dụng nó?

Trên màn hình tiếp theo, bạn sẽ được nhắc nhập loại tệp đĩa cứng. Chọn VDI hoặc VirtualBox Disk Image.

Container Linux là gì và bạn có nên sử dụng nó?

Sau đó, hãy định cấu hình không gian lưu trữ của bạn. Tôi khuyên bạn nên sử dụng tệp đĩa cứng được cấp phát động.

Container Linux là gì và bạn có nên sử dụng nó?

Sau đó chọn vị trí và kích thước tệp. Tôi để tên CoreOS mặc định và chọn kích thước dữ liệu tệp 8 GB.

Container Linux là gì và bạn có nên sử dụng nó?

Với máy ảo CoreOS VirtualBox của bạn được định cấu hình đúng cách, hãy tiếp tục và nhấp vào nút Bắt đầu màu xanh lục.

Container Linux là gì và bạn có nên sử dụng nó?

Sau khi nhấp vào Bắt đầu, bạn sẽ cần chọn một đĩa khởi động. Điều hướng đến thư mục mà bạn đã có CoreOS ISO và tiếp tục.

Định cấu hình Container Linux

Sau khi khởi động CoreOS ISO của bạn, Container Linux bắt đầu tải. Cuối cùng bạn sẽ thấy một dòng cung cấp phiên bản CoreOS của bạn và dòng lệnh đọc:

core@localhost

Nhập:

sudo openssl passwd -1 > cloud-config-file
Container Linux là gì và bạn có nên sử dụng nó?

Dòng lệnh đưa ra một cảnh báo rằng nếu không thể mở tệp cấu hình. Nhập mật khẩu mong muốn của bạn và tiếp tục. Tiếp theo nhập:

cat cloud-config-file
Container Linux là gì và bạn có nên sử dụng nó?

Điều này trả về một chuỗi dài và tạo một tệp cấu hình đám mây mới. Bây giờ, hãy mở cấu hình đám mây trong một trình chỉnh sửa trực quan:

vi cloud-config-file
Container Linux là gì và bạn có nên sử dụng nó?

Thao tác này sẽ tải một tệp cấu hình đám mây mà bạn có thể chỉnh sửa. CoreOS bao gồm một tệp ví dụ về cấu hình đám mây nâng cao:

Container Linux là gì và bạn có nên sử dụng nó?

Của tôi trông giống như:

#cloud-config
users: moe
passwd: [SSL password]
groups:
- sudo
- docker
Container Linux là gì và bạn có nên sử dụng nó?

Bạn có thể kiểm tra tệp cấu hình đám mây của mình bằng cách nhập:

cat cloud-config-file
Container Linux là gì và bạn có nên sử dụng nó?

Điều này trả về tệp cấu hình của bạn. Nếu tất cả đều ổn, hãy tiếp tục cài đặt CoreOS:

sudo coreos-install -d /dev/sda -C stable -c cloud-config-file
Container Linux là gì và bạn có nên sử dụng nó?

Bạn sẽ thấy một thông báo rằng CoreOS đang được tải xuống, viết và xác minh. Ngay sau khi kết thúc, bạn sẽ thấy thông báo "Thành công! CoreOS [phiên bản] đã được cài đặt trên / dev / sda."

Container Linux là gì và bạn có nên sử dụng nó?

Tắt máy ảo CoreOS của bạn và sau đó khởi động lại máy. Khi bắt đầu sao lưu, hãy nhớ ngắt kết nối CoreOS ISO nếu không đĩa CD trực tiếp sẽ chạy lại.

CoreOS sẽ tải và bạn sẽ có lời nhắc đăng nhập trong dòng lệnh:

localhost login:
Container Linux là gì và bạn có nên sử dụng nó?

Nhập tên người dùng và mật khẩu của bạn. Thao tác này sẽ tải một thông báo có nội dung "Container Linux bằng CoreOS [phiên bản]" và một dòng lệnh mới.

Container Linux là gì và bạn có nên sử dụng nó?

Thực hành với Container Linux:Các bước tiếp theo

Bây giờ Container Linux của CoreOS đã được cài đặt đúng cách, bạn có thể bắt đầu thiết lập các vùng chứa và cụm. Tài liệu CoreOS có hướng dẫn bắt đầu nhanh tuyệt vời. Có thông tin về khám phá dịch vụ bằng cách sử dụng etcd cũng như một phần về quản lý vùng chứa với Docker. Tôi đã thực hiện một số thử nghiệm nhanh, chẳng hạn như một lần kéo Docker "Hello World". Ngoài ra, tôi đã cài đặt hình ảnh Plex Docker vì tôi là người yêu thích máy chủ phương tiện lớn. Cuối cùng, tôi thiết lập nhóm để quản lý cụm.

Điều bạn muốn làm trước tiên là định cấu hình các thành phần chính của Container Linux:

  • etcd
  • Docker
  • Hạm đội

Bằng cách định cấu hình ba nền tảng chính này, bạn sẽ sẵn sàng khám phá dịch vụ, quản lý cụm và thiết lập vùng chứa. Sau đó, bạn có thể bắt đầu chứa ứng dụng và kiểm tra an toàn các ứng dụng dành cho máy tính để bàn trong vùng chứa Docker an toàn.

Thực hành với Container Linux:Những suy nghĩ cuối cùng

Tôi không thường xuyên sử dụng vùng chứa, nhưng việc triển khai Container Linux đã đơn giản hóa. Tài liệu là tuyệt vời với các tệp cấu hình mẫu. Lưu ý rằng đối với người mới bắt đầu, một số video hướng dẫn cài đặt không chính thức giúp cài đặt CoreOS dễ dàng hơn. Mặc dù CoreOS tuyên bố rằng Container Linux nhẹ, nhưng ban đầu tôi vẫn nghi ngờ. Tuy nhiên, tôi đã mở rộng Container Linux trong một máy ảo có mức tiêu thụ tài nguyên khá thấp. Và vì tôi muốn kiểm tra xem Container Linux có thực sự nhẹ hay không, tôi đã sử dụng máy tính xách tay HP cũ của mình và không gặp sự cố nào.

Tuy nhiên, một số bước trong cài đặt ban đầu không "thân thiện với người mới bắt đầu". Việc cài đặt và thiết lập Container Linux đòi hỏi bạn phải quen thuộc với Linux. Đáng chú ý là tôi đã không thử bảng điều khiển CoreUpdate, mà CoreOS cung cấp như một tính năng trả phí cao cấp. Mặc dù tôi không gặp vấn đề gì khi sử dụng dòng lệnh, nhưng môi trường đồ họa để theo dõi sẽ tạo ra một bổ sung tuyệt vời.

Quản trị viên hệ thống và quản trị viên cơ sở dữ liệu được hưởng lợi nhiều nhất từ ​​Container Linux. Tuy nhiên, đối với các máy chủ gia đình, đó là một phương tiện đơn giản và nhẹ để tạo ra một môi trường được phân cụm. Hơn nữa, với Container Linux, bạn có thể tạo một cụm từ một máy duy nhất. Nhưng Container Linux là một bài giới thiệu tuyệt vời để làm việc với các vùng chứa. Nếu bạn đang cố gắng tìm hiểu thêm về Docker và vùng chứa, thì Container Linux chạy thực sự tốt trong một máy ảo và cung cấp tất cả các tài nguyên bạn cần để bắt đầu.

Đây là một giải pháp hoàn hảo dành cho những người mới làm quen với Container ngoài các kỹ sư DevOps dày dạn kinh nghiệm, sysadmins và quản trị viên cơ sở dữ liệu. Cuối cùng thì Container Linux của CoreOS là một phương tiện đơn giản để tạo ra một môi trường chứa đựng có thể mở rộng, hiệu quả.

Bạn có đang sử dụng CoreOS không? Bạn có dự định? Hãy cho chúng tôi biết cách bạn đang xử lý trên Linux trong phần nhận xét bên dưới!