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:
      - apiVersion: cdi.kubevirt.io/v1beta1
        kind: DataVolume
        metadata:
          name: example-vm-disk
        spec:
          sourceRef:
            kind: DataSource
            name: rhel9
            namespace: openshift-virtualization-os-images
          storage:
            resources:
              requests:
                storage: 30Gi
      running: false
      template:
        metadata:
          labels:
            kubevirt.io/domain: example-vm
        spec:
          domain:
            cpu:
              cores: 1
              sockets: 2
              threads: 1
            devices:
              disks:
              - disk:
                  bus: virtio
                name: rootdisk
              - disk:
                  bus: virtio
                name: cloudinitdisk
              interfaces:
              - masquerade: {}
                name: default
              rng: {}
            features:
              smm:
                enabled: true
            firmware:
              bootloader:
                efi: {}
            resources:
              requests:
                memory: 8Gi
          evictionStrategy: LiveMigrate
          networks:
          - name: default
            pod: {}
          volumes:
          - dataVolume:
              name: example-volume
            name: example-vm-disk
            - cloudInitConfigDrive: <.>
                userData: |-
                  #cloud-config
                  user: cloud-user
                  password: <password>
                  chpasswd: { expire: False }
              name: cloudinitdisk
          accessCredentials:
            - sshPublicKey:
                propagationMethod:
                  configDrive: {}
                source:
                  secret:
                    secretName: authorized-keys <.>
    ---
    apiVersion: v1
    kind: Secret
    metadata:
      name: authorized-keys
    data:
      key:  |
          MIIEpQIBAAKCAQEAulqb/Y... <.>

    <.> 구성 드라이브를 생성하려면 cloudInitConfig Cryostat를 지정합니다. <.> Secret 오브젝트 이름을 지정합니다. <.> 공용 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:
                  configDrive: {}
                source:
                  secret:
                    secretName: authorized-keys
    # ...

Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 소개

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

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

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

Red Hat 문서 정보

Legal Notice

Theme

© 2026 Red Hat
맨 위로 이동