가상화
cloud-init란 무엇인가요?
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.
cloud-init가 중요한 이유
SSH 키 주입, 호스트 이름, 네트워크 구성 및 임의 사용자 스크립트를 처리하므로 완전 자동화된 프로비저닝이 가능합니다.
cloud-init 실제 적용
全新启动时,cloud-init在服务启动前运行。您会观察控制台的“运行模块”并查看/var/log/cloud-init-output.log。配置错误的user-data脚本可能挂起启动或锁定SSH。请先在一次性实例中测试。可使用“cloud-init clean”后重启。若出错,代价是需从面板重新配置,或通过VNC手动修复。
cloud-init에 대한 사람들의 오해
흔한 실수는 cloud-init이 부팅할 때마다 다시 실행된다고 가정하는 것입니다. 처음 부팅 시 한 번만 실행됩니다. 재시작 시 적용되기를 기대하며 user-data에 스크립트를 추가해도 적용되지 않습니다. 해결 방법: 초기 프로비저닝에만 사용하거나, 'cloud-init clean'을 명시적으로 호출하여 상태를 재설정해 다시 실행되도록 하십시오.
cloud-init — 일반적인 질문
cloud-init에 user-data를 어떻게 전달하나요?
패널 또는 API에서 프로비저닝할 때 user-data 필드를 제공할 수 있습니다. 메타데이터를 통해 주입되며 cloud-init은 첫 부팅 시 적용합니다. 필요에 따라 셸 스크립트나 cloud-config YAML로 유지하십시오.
사용자 정의 ISO와 함께 cloud-init을 사용할 수 있나요?
예, ISO에 cloud-init이 설치된 경우 가능합니다. 예를 들어, 주요 배포판의 클라우드 이미지에는 포함되어 있습니다. cloud-init이 포함된 자신만의 이미지를 업로드할 수도 있습니다. 인스턴스가 컨테이너가 아닌 KVM인지 확인하십시오. cloud-init은 플랫폼에서 제공하는 메타데이터에 의존하기 때문입니다.
가상화에서 더 보기
- KVM
- KVM은 Linux 커널에 내장된 완전한 하드웨어 가상화로, 각 게스트에 자체 커널과 다른 테넌트로부터 하드웨어 강제 격리를 제공합니다.
- OpenVZ
- OpenVZ는 모든 인스턴스가 호스트 커널을 공유하는 컨테이너 기반 가상화로, 게스트는 커널 모듈을 로드하거나 다른 운영 체제를 실행할 수 없습니다.
- LXC
- LXC는 커널을 공유하면서 네임스페이스와 cgroups로 프로세스를 격리하는 Linux 네이티브 컨테이너화입니다.
- 하이퍼바이저
- 하이퍼바이저는 가상 머신을 생성하고 실행하며 물리적 CPU, 메모리 및 IO를 그들 사이에 할당하는 소프트웨어 계층입니다.
- 嵌套虚拟化
- 중첩 가상화는 프로세서 가상화 확장을 게스트에 노출하여 가상 머신 자체가 가상 머신을 실행할 수 있게 합니다.
- vCPU
- vCPU는 게스트에게 제공되는 가상 프로세서로, 물리적 코어 또는 스레드의 스케줄링 시간을 기반으로 합니다.