4.4. 配置 virt-who 以连接到 OpenShift Virtualization
支持的平台
virt-who 支持的 OpenShift Virtualization 状态:
- virt-who-0.28.x-1.el7 (RHEL 7.9)
- virt-who-0.29.x-1.el8 (RHEL 8.3)
流程
在您要订阅的集群中,创建一个项目和名为 virt-who 的服务帐户:
oc new-project virt-who oc create serviceaccount virt-who
$ oc new-project virt-who $ oc create serviceaccount virt-who
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建集群角色来列出节点和虚拟机实例。
oc create clusterrole lsnodes --verb=list --resource=nodes oc create clusterrole lsvmis --verb=list --resource=vmis
$ oc create clusterrole lsnodes --verb=list --resource=nodes $ oc create clusterrole lsvmis --verb=list --resource=vmis
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建集群角色绑定。
oc adm policy add-cluster-role-to-user lsnodes system:serviceaccount:virt-who:virt-who oc adm policy add-cluster-role-to-user lsvmis system:serviceaccount:virt-who:virt-who
$ oc adm policy add-cluster-role-to-user lsnodes system:serviceaccount:virt-who:virt-who $ oc adm policy add-cluster-role-to-user lsvmis system:serviceaccount:virt-who:virt-who
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证 virt-who 系统帐户是否有列出所有正在运行的虚拟机的权限:
oc get vmis -A --as=system:serviceaccount:virt-who:virt-who
$ oc get vmis -A --as=system:serviceaccount:virt-who:virt-who
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在主机上安装 virt-who,可以是在 OpenShift Virtualization 本身中运行的虚拟机:
yum install virt-who
[virtwho-host]$ yum install virt-who
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在订阅的主机上查找您的所有者号:
subscription-manager orgs
$ subscription-manager orgs
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将模板配置文件复制到新的单独的配置文件中。要在故障排除时轻松识别配置文件,请使用集群 API 的主机名。在本例中,主机名为
openshift-cluster-1
。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 获取 virt-who 服务帐户的令牌:
oc serviceaccounts get-token virt-who
# oc serviceaccounts get-token virt-who
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果
/usr/bin/oc
不可用,请安装/usr/bin/oc
,并使用令牌登录并创建有效的 kubeconfig 文件。您必须通过包含 url 来指定集群 api。例如:oc login https://api.testcluster-1.example.org:6443 --token=<token>
[virtwho-host]# oc login https://api.testcluster-1.example.org:6443 --token=<token>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要在 kubeconfig 文件中使用 OpenShift Virtualization 证书(CA)证书,将其从集群中提取,并将它保存到运行 virt-who 作为控制器守护进程的系统中的文件:
oc get secret -n openshift-kube-apiserver-operator loadbalancer-serving-signer -o jsonpath='{.data.tls\.crt}' | base64 -d > $cluster-ca.pem
oc get secret -n openshift-kube-apiserver-operator loadbalancer-serving-signer -o jsonpath='{.data.tls\.crt}' | base64 -d > $cluster-ca.pem
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 更改 kubeconfig 文件,使其包含提取的 CA 证书。例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
在启动该服务前,您可以手动测试配置:
virt-who --print
[virtwho-host]# virt-who --print
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
如果安装了 jq
程序,您可以使用它更轻松地阅读输出:VirtualMachine virt-who --print | jq
启用 virt-who 服务:
systemctl enable virt-who
[virtwho-host]# systemctl enable virt-who
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重启 virt-who 服务以使用新配置。
systemctl restart virt-who
[virtwho-host]# systemctl restart virt-who
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
virt-who 日志位于 /var/log/rhsm/rhsm.log
中。在这个文件中,您可以查看配置或连接错误。