Ảo hóa

cloud-init là gì?

Định nghĩa

cloud-init is the standard mechanism for configuring a virtual machine on first boot, using metadata supplied by the platform. It handles SSH key injection, hostname, network configuration and arbitrary user scripts, which is what makes fully automated provisioning possible.

Tại sao cloud-init quan trọng

Nó xử lý việc tiêm khóa SSH, tên máy chủ, cấu hình mạng và các tập lệnh người dùng tùy ý, nhờ đó cho phép cung cấp tài nguyên hoàn toàn tự động.

cloud-init trong thực tế

Khi khởi động mới, cloud-init chạy trước khi các dịch vụ của bạn bắt đầu. Bạn sẽ xem console để tìm 'running modules' và kiểm tra /var/log/cloud-init-output.log. Một script user-data cấu hình sai có thể làm treo quá trình khởi động hoặc khóa SSH. Bạn nên thử nghiệm trên một instance dùng một lần trước. Bạn có thể chạy lại với 'cloud-init clean' và khởi động lại. Sai sót sẽ khiến bạn mất thời gian tạo lại từ panel, hoặc phải dùng phiên VNC để sửa bằng tay.

Điều mọi người hiểu sai về cloud-init

Lỗi phổ biến là giả định cloud-init chạy lại mỗi lần khởi động. Nó chỉ chạy một lần khi khởi động đầu tiên. Nếu bạn thêm script vào user-data với hy vọng nó sẽ áp dụng khi khởi động lại, thì sẽ không. Khắc phục: chỉ dùng nó cho việc khởi tạo ban đầu, hoặc gọi rõ ràng 'cloud-init clean' để reset trạng thái cho lần chạy mới.

cloud-init — các câu hỏi thường gặp

Làm thế nào để truyền user-data vào cloud-init?

Khi cấp phát từ bảng điều khiển hoặc API, bạn có thể cung cấp trường user-data. Nó được tiêm qua metadata, và cloud-init áp dụng khi khởi động đầu tiên. Giữ nó dạng shell script hoặc cloud-config YAML, tùy theo nhu cầu.

Tôi có thể dùng cloud-init với ISO tùy chỉnh không?

Có, nếu ISO có cài cloud-init. Ví dụ, cloud image của các distro chính đều có. Bạn cũng có thể tải lên image riêng có cloud-init. Đảm bảo instance là KVM, không phải container, vì cloud-init dựa vào metadata do nền tảng cung cấp.

Thêm từ ảo hóa

KVM
KVM là ảo hóa phần cứng đầy đủ được tích hợp trong nhân Linux, cho mỗi máy khách nhân riêng và cô lập được bảo đảm bằng phần cứng khỏi các người thuê khác.
OpenVZ
OpenVZ là ảo hóa dựa trên container trong đó mọi phiên bản chia sẻ nhân máy chủ, vì vậy máy khách không thể nạp mô-đun nhân hoặc chạy hệ điều hành khác.
LXC
LXC là container hóa gốc Linux cô lập các tiến trình với namespace và cgroups trong khi chia sẻ nhân máy chủ.
Hypervisor
Hypervisor là lớp phần mềm tạo và chạy máy ảo, phân bổ CPU vật lý, bộ nhớ và IO giữa chúng.
Ảo hóa lồng nhau
Ảo hóa lồng nhau cho phép một máy ảo tự chạy các máy ảo, bằng cách hiển thị các phần mở rộng ảo hóa của bộ xử lý cho khách.
vCPU
vCPU là bộ xử lý ảo được cung cấp cho máy khách, được hỗ trợ bởi thời gian lập lịch trên một lõi hoặc luồng vật lý.