/kubevirt-demo

kubevirtを触るときにつかうファイル色々

KubeVirtでクラウドイメージを使ってVMを作成して使う

手順概要

KubeVirtで一つのVMを作るためには、次の二つをVMごとに実施。

VMを作るためのYAMLについて

こんな感じのYAMLを書く。同じようなファイルを複数書くようになると思うので、kustomizeを使った方が効率が良いと思う。

apiVersion: kubevirt.io/v1alpha3
kind: VirtualMachine
metadata:
  creationTimestamp: 2018-07-04T15:03:08Z
  generation: 1
  labels:
    kubevirt.io/os: linux
  name: fedora1
spec:
  running: true
  template:
    metadata:
      creationTimestamp: null
      labels:
        kubevirt.io/domain: fedora1
    spec:
      domain:
        cpu:
          cores: 2
        devices:
          disks:
          - disk:
              bus: virtio
            name: disk0
          - cdrom:
              bus: sata
              readonly: true
            name: cloudinitdisk
        machine:
          type: q35
        resources:
          requests:
            memory: 1024M
      volumes:
      - name: disk0
        persistentVolumeClaim:
          claimName: fedora-local
      - cloudInitNoCloud:
          userData: |
            #cloud-config
            hostname: fedora1
            disable_root: false
            password: myfedora
            ssh_pwauth: True
            chpasswd: { expire: False }
        name: cloudinitdisk

公開鍵認証をしたい場合はssh_authorized_keysを設定して、公開鍵を貼り付ける。

      - cloudInitNoCloud:
          userData: |
            #cloud-config
            hostname: vm1
            ssh_pwauth: True
            disable_root: false
            ssh_authorized_keys:
            - ssh-rsa YOUR_SSH_PUB_KEY_HERE

VMへのアクセス方法について

SSHでアクセス

kubectl get vmi
NAME      AGE   PHASE     IP               NODENAME
fedora1   8s    Running   10.244.241.168   kubevirt-demo2

ssh fedora@10.244.241.168

VNC-Viewerを使って(ただし、パスワード認証+デスクトップ環境が要件)

virtctl vnc vmname

コンソール接続でアクセス(ただし、パスワード認証が要件)

virtctl console vmname