KubeVirt を試してみた (3)

2023/01/09に公開

KubeVirt を試してみた (2) の続きです。

KubeVirt の仮想マシンに IPv6 通信をさせる

IPv4/IPv6 Dual stack な Kubernetes 1.26 クラスターを kubeadm で作った で書いたクラスター上で KubeVirt の仮想マシンを起動しただけだと IPv4 通信は出来るのですが、IPv6 では通信できないです。

Interfaces and Networks - KubeVirt User-Guide > masquerade - IPv4 and IPv6 dual-stack support を参考に bridge モードから masguerade モードに変更してやることで通信できるようになります。

ContainerVolume を使った揮発性の仮想マシンを立てる

前記事では PVC に永続的なデータを持たせた仮想マシンを立てていましたが、コンテナレジストリ上にキャッシュしたイメージから起動することも試してみます。
やり方は volumes の containerDisk.image にコンテナレジストリを指定するだけ。

仮想マシンの定義例

上記の 2つ を適用した仮想マシンの定義例はこちら。

apiVersion: kubevirt.io/v1alpha3
kind: VirtualMachine
metadata:
  name: testvm02
spec:
  running: true
  template:
    metadata:
      labels:
        kubevirt.io/size: small
    spec:
      domain:
        cpu:
          cores: 2
        devices:
          disks:
            - name: containervolume
              cache: none
              disk:
                bus: virtio
            - name: cloudinitvolume
              disk:
                bus: virtio
          interfaces:
          - name: default
            masquerade: {}
            ports:
              - port: 22
        resources:
          requests:
            memory: 1024M
      networks:
      - name: default
        pod: {}
      volumes:
        - name: containervolume
          containerDisk:
            image: registry.home.wirednet.jp/docker_hub_proxy_cache/tedezed/ubuntu-container-disk:22.0
        - name: cloudinitvolume
          cloudInitNoCloud:
            networkData: |-
              version: 2
              ethernets:
                enp1s0:
                  dhcp4: true
                  addresses: [ fd10:0:2::2/120 ]
                  gateway6: fd10:0:2::1
            userData: |-
              #cloud-config
              ssh_pwauth: true
              chpasswd:
                list: |
                  ubuntu:ubuntu
                expire: false

Discussion