kubevirt的vm如何固定ip

背景

kubevirt的vm每次重启由于pod ip变化会导致vm无法通往
一种办法是cloudInitNoCloud中添加

    bootcmd:
    - cloud-init clean -c network

另一种就是固定vm pod的ip

安装

前置步骤参考

https://www.jianshu.com/p/34f5815a268f

kube-ovn

helm install kube-ovn kubeovn/kube-ovn  -n kube-system --version v1.14

修改ovn-cni添加

privileged: true

修改ovn-controller,添加args

--keep-vm-ip=true

demo

data volume

apiVersion: cdi.kubevirt.io/v1beta1
kind: DataVolume
metadata:
  name: ubuntu
  annotations:
    cdi.kubevirt.io/storage.bind.immediate.requested: "true"
spec:
  source:
    http:
      url: "https://cloud-images.ubuntu.com/jammy/20251017/jammy-server-cloudimg-amd64.img"
  pvc:
    storageClassName: local-path
    accessModes:
      - ReadWriteOnce
    resources:
      requests:
        storage: 30Gi

virtual machine

apiVersion: kubevirt.io/v1
kind: VirtualMachine
metadata:
  name: testvm
spec:
  runStrategy: Halted
  template:
    spec:
      domain:
        devices:
          gpus:
          - name: gpu0
            deviceName: nvidia.com/AD102_GEFORCE_RTX_4090_D
          disks:
            - name: rootdisk
              disk:
                bus: virtio
            - disk:
                bus: virtio
              name: cloudinitdisk
          interfaces:
          - name: default
            bridge: {}
        resources:
          requests:
            memory: 8000M
          limits:
            nvidia.com/AD102_GEFORCE_RTX_4090_D: "1"
      networks:
      - name: default
        pod: {}
      volumes:
        - name: rootdisk
          dataVolume:
            name: ubuntu
        - name: cloudinitdisk
          cloudInitNoCloud:
            userData: |
              #cloud-config
              password: demo
              chpasswd:
                expire: false
              ssh_pwauth: true

开机

查看ip

virtctl start testvm
kubectl get vmi

得到如下

NAME     AGE   PHASE     IP           NODENAME   READY
testvm   13m   Running   10.16.0.20   host       True

关机

virtctl stop testvm

开机
查看ip

virtctl start testvm
virtctl console testvm

补充

显示设置固定ip

修改virtual machine设置固定ip

apiVersion: kubevirt.io/v1
kind: VirtualMachine
metadata:
  name: testvm
spec:
  ...
  template:
    metadata:
      labels:
        ovn.kubernetes.io/ip_address: "10.16.0.20"
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。