7.4.2.2.3. 명령줄을 사용하여 VM을 생성할 때 키 추가


명령줄을 사용하여 VM(가상 머신)을 생성할 때 정적으로 관리되는 공용 SSH 키를 추가할 수 있습니다. 키는 처음 부팅할 때 VM에 추가됩니다.

키가 VM에 cloud-init 데이터 소스로 추가됩니다. 이 방법은 cloud-init 사용자 데이터의 애플리케이션 데이터와 액세스 자격 증명을 구분합니다. 이 방법은 cloud-init 사용자 데이터에 영향을 미치지 않습니다.

사전 요구 사항

  • ssh-keygen 명령을 실행하여 SSH 키 쌍을 생성했습니다.

프로세스

  1. VirtualMachine 오브젝트 및 Secret 오브젝트에 대한 매니페스트 파일을 생성합니다.

    매니페스트 예

    apiVersion: kubevirt.io/v1
    kind: VirtualMachine
    metadata:
      name: example-vm
      namespace: example-namespace
    spec:
      dataVolumeTemplates:
        - metadata:
            name: example-vm-volume
          spec:
            sourceRef:
              kind: DataSource
              name: rhel9
              namespace: openshift-virtualization-os-images
            storage:
              resources: {}
      instancetype:
        name: u1.medium
      preference:
        name: rhel.9
      running: true
      template:
        spec:
          domain:
            devices: {}
          volumes:
            - dataVolume:
                name: example-vm-volume
              name: rootdisk
            - cloudInitNoCloud: 
    1
    
                userData: |-
                  #cloud-config
                  user: cloud-user
              name: cloudinitdisk
          accessCredentials:
            - sshPublicKey:
                propagationMethod:
                  noCloud: {}
                source:
                  secret:
                    secretName: authorized-keys 
    2
    
    ---
    apiVersion: v1
    kind: Secret
    metadata:
      name: authorized-keys
    data:
      key: c3NoLXJzYSB... 
    3

    1
    cloudInitNoCloud 데이터 소스를 지정합니다.
    2
    Secret 오브젝트 이름을 지정합니다.
    3
    공개 SSH 키를 붙여넣습니다.
  2. 다음 명령을 실행하여 VirtualMachineSecret 오브젝트를 생성합니다.

    $ oc create -f <manifest_file>.yaml
  3. 다음 명령을 실행하여 VM을 시작합니다.

    $ virtctl start vm example-vm -n example-namespace

검증

  • VM 구성을 가져옵니다.

    $ oc describe vm example-vm -n example-namespace

    출력 예

    apiVersion: kubevirt.io/v1
    kind: VirtualMachine
    metadata:
      name: example-vm
      namespace: example-namespace
    spec:
      template:
        spec:
          accessCredentials:
            - sshPublicKey:
                propagationMethod:
                  noCloud: {}
                source:
                  secret:
                    secretName: authorized-keys
    # ...

Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 문서 정보

Legal Notice

Theme

© 2026 Red Hat
맨 위로 이동