kubevirt
k8sでKVMベースのVMを管理するための仕組み
CRD、コントローラーを含む
pod(virt-lancher)の中でlibvirtを使ってVMを実行する
virt-lancher自体はk8sリソースで自動生成される
virt-handlerというcontrollerから制御を受けてVM実行
CLIではvirtctlを利用
https://speakerdeck.com/oracle4engineer/kubevirt-deep-dive
krewのpluginでも可
common-instancetypesレポジトリ
kubevirt VMのresource、設定プリセット集
_virtioのsuffix付きはvirtioドライバーを利用する場合の設定
kubectl apply -k https://github.com/kubevirt/common-instancetypes.git
instancetypeとperferenceが定義されていて、これらをベースに実際のVMの設定を行う
デフォルト設定みたいなもの
install
kubevirt自体のdeployとvirtctlが必要
https://kubevirt.io/user-guide/cluster_admin/installation/
code:virtctl
VERSION=$(kubectl get kubevirt.kubevirt.io/kubevirt -n kubevirt -o=jsonpath="{.status.targetKubeVirtVersion}")
ARCH=$(uname -s | tr A-Z a-z)-$(uname -m | sed 's/x86_64/amd64/') || windows-amd64.exe
echo ${ARCH}
curl -L -o virtctl https://github.com/kubevirt/kubevirt/releases/download/${VERSION}/virtctl-${VERSION}-${ARCH}
chmod +x virtctl
sudo install virtctl /usr/local/bin