首页 > 其他分享 >Kubevirt

Kubevirt

时间:2024-07-22 21:44:42浏览次数:15  
标签:kubevirt virtctl 虚拟机 kvm Kubevirt master root

目录

Kubevirt部署

KubeVirt官网地址

1. 简介

KubeVirt 是一个用于在 Kubernetes 集群中运行和管理虚拟机(VM)的开源项目。它将虚拟机的管理与 Kubernetes 的容器编排功能结合起来,使得用户可以在统一的环境中管理容器和虚拟机。KubeVirt 是由 Red Hat 和社区合作开发的,目的是将虚拟机管理与 Kubernetes 的强大功能相结合。

2. 核心概念

  • 虚拟机(VM):与 Kubernetes Pod 类似,但运行的是虚拟机而不是容器。
  • 虚拟机实例(VMInstance):一个运行中的虚拟机。与 Pod 的概念类似。
  • 虚拟机配置(VM):定义虚拟机的规格和配置,包括 CPU、内存、磁盘等。
  • 虚拟机映像(VMImage):虚拟机使用的操作系统和应用程序的镜像。
  • 存储卷(Volume):虚拟机所需的存储,例如磁盘、云存储等。

3. 部署kubevirt

官方提供了好几种部署的方式,我这里使用部署operateor的方式,不使用helm

3.1 部署kubevirt operator

[root@master ~]# export VERSION=$(curl -s https://storage.googleapis.com/kubevirt-prow/release/kubevirt/kubevirt/stable.txt)
[root@master ~]# echo $VERSION
[root@master ~]# kubectl create -f https://github.com/kubevirt/kubevirt/releases/download/${VERSION}/kubevirt-operator.yaml

网络不好可以先使用浏览器进去到这个地址然后将文件内容复制下来

3.2 开启嵌套虚拟机

我是跑在虚拟机里的,所以需要开启嵌套虚拟化功能

要先去虚拟机设置里面将CPU的虚拟化功能给勾选

3.2.1 intel

[root@master ~]# cat /sys/module/kvm_intel/parameters/nested
1

如果这里返回1或者是Y,那么就没问题了,如果是0或者N,那么接着往下来

[root@master ~]# modprobe -r kvm_intel
[root@master ~]# modprobe kvm_intel nested=1

这2个命令执行完毕之后再去执行第一条命令

[root@master ~]# cat /sys/module/kvm_intel/parameters/nested
1

这个时候就应该返回1或者是Y了

嵌套虚拟机永久生效

[root@master ~]# vim /etc/modprobe.d/kvm.conf
options kvm_intel nested=1

3.2.2 AMD

[root@master ~]# modprobe -r kvm_amd
[root@master ~]# modprobe kvm_amd nested=1

配置永久生效

[root@master ~]# vim /etc/modprobe.d/kvm.conf
options kvm_amd nested=1

3.3 继续部署kubevirt

[root@master ~]# kubectl create -f https://github.com/kubevirt/kubevirt/releases/download/${VERSION}/kubevirt-cr.yaml

等待所有的pods启动完毕,启动之后会有6个Pod正常运行

[root@master ~]# kubectl get pods -n kubevirt 
NAME                               READY   STATUS    RESTARTS      AGE
virt-api-77876557d6-clv2m          1/1     Running   0             39m
virt-controller-788fcb6fd7-bvzw9   1/1     Running   0             32m
virt-controller-788fcb6fd7-jcjzh   1/1     Running   0             37m
virt-handler-xwgw6                 1/1     Running   0             37m
virt-operator-5b86ff4db8-6vhkr     1/1     Running   1 (47m ago)   57m
virt-operator-5b86ff4db8-p4tqv     1/1     Running   2 (44m ago)   57m

3.4 安装virtctl

KubeVirt 提供了一个名为virtctl的附加二进制文件,用于快速访问 VM 的串行和图形端口,并处理启动/停止操作。

[root@master ~]# VERSION=$(kubectl get kubevirt.kubevirt.io/kubevirt -n kubevirt -o=jsonpath="{.status.observedKubeVirtVersion}")
[root@master ~]# ARCH=$(uname -s | tr A-Z a-z)-$(uname -m | sed 's/x86_64/amd64/') || windows-amd64.exe
[root@master ~]# echo ${ARCH}
[root@master ~]# curl -L -o virtctl https://github.com/kubevirt/kubevirt/releases/download/${VERSION}/virtctl-${VERSION}-${ARCH}
[root@master ~]# chmod +x virtctl
[root@master ~]# sudo install virtctl /usr/local/bin

4. 运行第一个虚拟机

先下载虚拟机文件

[root@master ~]# wget https://kubevirt.io/labs/manifests/vm.yaml
[root@master ~]# kubectl apply -f vm.yaml

查看虚拟机

[root@master ~]# kubectl get vms
NAME     AGE   STATUS    READY
testvm   24s   Stopped   True

此时的虚拟机是出于停止状态,我们可以使用virtctl命令将他启动

[root@master ~]# virtctl start  testvm
[root@master ~]# kubectl get vms
NAME     AGE   STATUS    READY
testvm   40s   Running   True

虚拟机现在已经正常运行了,如果我们想要连接的话也可以使用virtctl

[root@master ~]# virtctl console testvm
Successfully connected to testvm console. The escape sequence is ^]

login as 'cirros' user. default password: 'gocubsgo'. use 'sudo' for root.
testvm login: cirros
Password: 
$ 

这样我们就登录到虚拟机了,想要推出的话按Ctrl + ]就可以退出虚拟机了

标签:kubevirt,virtctl,虚拟机,kvm,Kubevirt,master,root
From: https://www.cnblogs.com/fsdstudy/p/18316979

相关文章

  • 从0开始装一套 KubeVirt 1.2.1
    KubeVirt架构架构virt-api:负责提供一些KubeVirt特有的api,像是console,vnc,startvm,stopvm等。virt-controller:管理和监控VMI对象及其关联的Pod,对其状态进行更新。virt-hander:以DaemonSet运行在每一个节点上,监听VMI的状态向上汇报,管理VMI的生命周......
  • k8s 安装kubevirt v0.59.0 (k3s v1.26.4)
    1.安装kubevirt-operator.yaml(可以直接指定VERSION=v0.59.0-alpha.2;可以直接先在浏览器访问github下载yaml)exportVERSION=$(curl-shttps://api.github.com/repos/kubevirt/kubevirt/releases|greptag_name|grep-v--'-rc'|sort-r|head-1|awk-F':'&#......
  • kubevirt部署虚拟机
    创建pvc,并且上传windows镜像,IP地址可以通过kubectl-ncdigetsvc-lcdi.kubevirt.io=cdi-uploadproxy来查看virtctlimage-upload\--image-path='Win10_21H2_Chinese(Simplified)_x64.iso'\--storage-classcephfs\--pvc-name=iso-win10\--pvc-size=7G......
  • 部署 Kubernetes + KubeVirt
    一、基础环境准备在openstack平台上创建两台虚拟机:主:10.104.43.110备:10.104.43.1181、修改主机名并配置映射#所有节点修改主机名[root@k8s-h-master~]#hostnamectlset-hostnamemaster[root@k8s-h-master~]#bash[root@master~]#[root@k8s-h-node~]#hostnam......
  • kubevirt实验部署:k8s1.23.17+kube-ovn+nfs+kubevirt+ceph 集成使用
    标签(空格分隔):kubernetes系列一:kubevirt的简介KubeVirt是一个Kubernetes插件,它为Kubernetes提供了在与容器相同的基础结构上提供、管理和控制虚拟机的能力。KubeVirt是由云原生计算基金会(CNCF)赞助的开源项目,目前正处于孵化阶段。KubeVirt使Kubernetes能够使用与容器化工作负......