文章目录
- 准备条件
- 下载介质
- 部署
- 查看
- 安装 virtctl
前天,kubevirt 更新了,尝鲜。
准备条件
- 二进制 Deploy Kubernetes v1.23.17
下载介质
export VERSION=$(curl -s https://api.github.com/repos/kubevirt/kubevirt/releases | grep tag_name | grep -v -- '-rc' | sort -r | head -1 | awk -F': ' '{print $2}' | sed 's/,//' | xargs)
echo $VERSION
wget https://github.com/kubevirt/kubevirt/releases/download/${VERSION}/kubevirt-operator.yaml
wget https://github.com/kubevirt/kubevirt/releases/download/${VERSION}/kubevirt-cr.yaml
下载镜像入库
#!/bin/bash# kubevirt组件版本
version='v1.1.0-alpha.0'# 私有镜像仓库
registry='harbor.ghostwritten.com'# 私有镜像仓库的namespace
namespace=kubevirtkubevirtRegistry="quay.io/kubevirt"readonly APPLIST=(virt-operatorvirt-apivirt-controllervirt-launchervirt-handler
)for app in "${APPLIST[@]}"; do# 拉取镜像docker pull ${kubevirtRegistry}/${app}:${version}# 重命名docker tag ${kubevirtRegistry}/${app}:${version} ${registry}/${namespace}/${app}:${version}# 推送镜像docker push ${registry}/${namespace}/${app}:${version}
done
##. 修改 kubevirt-operator.yaml
env:- name: VIRT_OPERATOR_IMAGEvalue: harbor.ghostwritten.com/kubevirt/virt-operator:v1.1.0-alpha.0- name: WATCH_NAMESPACEvalueFrom:fieldRef:fieldPath: metadata.annotations['olm.targetNamespaces']- name: KUBEVIRT_VERSIONvalue: v1.1.0-alpha.0image: harbor.ghostwritten.com/kubevirt/virt-operator:v1.1.0-alpha.0
部署
kubectl apply -f kubevirt-operator.yaml
kubectl -n kubevirt patch kubevirt kubevirt --type=merge --patch '{"spec":{"configuration":{"developerConfiguration":{"useEmulation":true}}}}'
kubectl apply -f kubevirt-cr.yaml
查看
$ kubectl get all -n kubevirt
Warning: kubevirt.io/v1 VirtualMachineInstancePresets is now deprecated and will be removed in v2.
NAME READY STATUS RESTARTS AGE
pod/virt-api-6bfc8548cf-tvb88 1/1 Running 0 9m24s
pod/virt-api-6bfc8548cf-w7bsd 1/1 Running 0 9m24s
pod/virt-controller-864d658788-6fsm4 1/1 Running 0 8m53s
pod/virt-controller-864d658788-h8n9j 1/1 Running 0 8m53s
pod/virt-handler-7gkwm 1/1 Running 0 8m52s
pod/virt-handler-ptzzs 1/1 Running 0 8m52s
pod/virt-handler-zwqsf 1/1 Running 0 8m52s
pod/virt-operator-56bfbd6756-d9jww 1/1 Running 0 12m
pod/virt-operator-56bfbd6756-kf852 1/1 Running 0 12mNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubevirt-operator-webhook ClusterIP 10.255.26.53 <none> 443/TCP 9m28s
service/kubevirt-prometheus-metrics ClusterIP None <none> 443/TCP 9m28s
service/virt-api ClusterIP 10.255.48.169 <none> 443/TCP 9m28s
service/virt-exportproxy ClusterIP 10.255.100.157 <none> 443/TCP 9m28sNAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
daemonset.apps/virt-handler 3 3 3 3 3 kubernetes.io/os=linux 8m53sNAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/virt-api 2/2 2 2 9m25s
deployment.apps/virt-controller 2/2 2 2 8m53s
deployment.apps/virt-operator 2/2 2 2 12mNAME DESIRED CURRENT READY AGE
replicaset.apps/virt-api-6bfc8548cf 2 2 2 9m25s
replicaset.apps/virt-controller-864d658788 2 2 2 8m53s
replicaset.apps/virt-operator-56bfbd6756 2 2 2 12mNAME AGE PHASE
kubevirt.kubevirt.io/kubevirt 10m Deployed
安装 virtctl
下载 virctl
VERSION=$(kubectl get kubevirt.kubevirt.io/kubevirt -n kubevirt -o=jsonpath="{.status.observedKubeVirtVersion}")
ARCH=$(uname -s | tr A-Z a-z)-$(uname -m | sed 's/x86_64/amd64/') || windows-amd64.exe
echo ${ARCH}
wget https://github.com/kubevirt/kubevirt/releases/download/${VERSION}/virtctl-${VERSION}-${ARCH}
chmod +x virtctl
sudo install virtctl /usr/local/bin
- 安装为 Krew 插件
kubectl krew install virt
输出:
Updated the local copy of plugin index.
Installing plugin: virtInstalled plugin: virt
\| Use this plugin:| kubectl virt| Documentation:| https://github.com/kubevirt/kubectl-virt-plugin| Caveats:| \| | virt plugin is a wrapper for virtctl originating from the KubeVirt project. In order to use virtctl you will| | need to have KubeVirt installed on your Kubernetes cluster to use it. See https://kubevirt.io/ for details| || | See| || | https://kubevirt.io/user-guide/docs/latest/using-virtual-machines/graphical-and-console-access.html| || | for a usage example| /
/
WARNING: You installed plugin "virt" from the krew-index plugin repository.These plugins are not audited for security by the Krew maintainers.Run them at your own risk.