Kubernetes : KubeVirt インストール2025/11/21 |
|
KubeVirt をインストールして、Kubernetes クラスターで完全仮想化の仮想マシンを利用できるようにします。 当例では以下のように 3 台のノードを使用して Kubernetes クラスターを構成しています。
-----------+---------------------------+--------------------------+------------
| | |
eth0|10.0.0.30 eth0|10.0.0.51 eth0|10.0.0.52
+----------+-----------+ +-----------+----------+ +-----------+----------+
| [ dlp.srv.world ] | | [ node01.srv.world ] | | [ node02.srv.world ] |
| Control Plane | | Worker Node | | Worker Node |
+----------------------+ +----------------------+ +----------------------+
|
| [1] | KubeVirt と virtctl コマンドをインストールします。 |
|
[root@dlp ~]#
export VERSION=$(curl https://storage.googleapis.com/kubevirt-prow/release/kubevirt/kubevirt/stable.txt) [root@dlp ~]# wget https://github.com/kubevirt/kubevirt/releases/download/${VERSION}/kubevirt-operator.yaml [root@dlp ~]# wget https://github.com/kubevirt/kubevirt/releases/download/${VERSION}/kubevirt-cr.yaml [root@dlp ~]# wget https://github.com/kubevirt/kubevirt/releases/download/${VERSION}/virtctl-${VERSION}-linux-amd64
[root@dlp ~]#
[root@dlp ~]# mv virtctl-${VERSION}-linux-amd64 /usr/local/bin/virtctl [root@dlp ~]# chmod 755 /usr/local/bin/virtctl
kubectl apply -f kubevirt-operator.yaml namespace/kubevirt created customresourcedefinition.apiextensions.k8s.io/kubevirts.kubevirt.io created priorityclass.scheduling.k8s.io/kubevirt-cluster-critical created clusterrole.rbac.authorization.k8s.io/kubevirt.io:operator created serviceaccount/kubevirt-operator created role.rbac.authorization.k8s.io/kubevirt-operator created rolebinding.rbac.authorization.k8s.io/kubevirt-operator-rolebinding created clusterrole.rbac.authorization.k8s.io/kubevirt-operator created clusterrolebinding.rbac.authorization.k8s.io/kubevirt-operator created deployment.apps/virt-operator created
[root@dlp ~]#
kubectl apply -f kubevirt-cr.yaml kubevirt.kubevirt.io/kubevirt created # 一定時間経過すると 関連 pod が起動 [root@dlp ~]# kubectl get pods -n kubevirt NAME READY STATUS RESTARTS AGE virt-api-65644598d9-fxms9 1/1 Running 0 93s virt-api-65644598d9-j296w 1/1 Running 0 93s virt-controller-54fc69c5bb-5lxzq 1/1 Running 0 62s virt-controller-54fc69c5bb-h8bmj 1/1 Running 0 62s virt-handler-dfdck 1/1 Running 0 62s virt-handler-j4xhq 1/1 Running 0 62s virt-operator-7b8f88567b-bncg4 1/1 Running 0 2m15s virt-operator-7b8f88567b-tgvfz 1/1 Running 0 2m15s |
| [2] | テスト用の仮想マシンを作成して動作確認します。 |
|
[root@dlp ~]#
[root@dlp ~]# wget https://raw.githubusercontent.com/kubevirt/kubevirt.github.io/master/labs/manifests/vm.yaml [root@dlp ~]# kubectl apply -f vm.yaml virtualmachine.kubevirt.io/testvm created kubectl get vms NAME AGE STATUS READY testvm 3s Stopped False # 仮想マシン起動 [root@dlp ~]# virtctl start testvm VM testvm was scheduled to start kubectl get vms NAME AGE STATUS READY testvm 42s Running True[root@dlp ~]# kubectl get vmi NAME AGE PHASE IP NODENAME READY testvm 34s Running 192.168.241.135 node02.srv.world True # 仮想マシンに ssh で接続 # ユーザー名 'cirros', パスワード 'gocubsgo' [root@dlp ~]# ssh cirros@192.168.241.135 The authenticity of host '192.168.241.135 (192.168.241.135)' can't be established. ECDSA key fingerprint is SHA256:7XtgAhOnHdGJYOEOrBYS7t+MLXM297qmAMNqdx6WKOY. This key is not known by any other names. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added '192.168.241.135' (ECDSA) to the list of known hosts. cirros@192.168.241.135's password: $ $ uname -a Linux testvm 4.4.0-28-generic #47-Ubuntu SMP Fri Jun 24 10:09:13 UTC 2016 x86_64 GNU/Linux $ cat /etc/os-release NAME=Buildroot VERSION=2015.05-g31af4e3-dirty ID=buildroot VERSION_ID=2015.05 PRETTY_NAME="Buildroot 2015.05" $ exit Connection to 192.168.40.202 closed. # 仮想マシンのコンソールに接続 [root@dlp ~]# 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 + ] キー # * virsh コマンドと同じ操作 [root@dlp ~]# # 仮想マシン停止 [root@dlp ~]# virtctl stop testvm VM testvm was scheduled to stop [root@dlp ~]# kubectl get vms NAME AGE STATUS READY testvm 3m29s Stopped False # 仮想マシン削除 [root@dlp ~]# kubectl delete vm testvm virtualmachine.kubevirt.io "testvm" deleted [root@dlp ~]# kubectl get vms No resources found in default namespace. |
| Sponsored Link |
|
|