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 create clusterrole lsnodes --verb=list --resource=nodes $ oc create clusterrole lsvmis --verb=list --resource=vmis
创建集群角色绑定。
$ 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
验证 virt-who 系统帐户是否有列出所有正在运行的虚拟机的权限:
$ oc get vmis -A --as=system:serviceaccount:virt-who:virt-who
在主机上安装 virt-who,可以是在 OpenShift Virtualization 本身中运行的虚拟机:
[virtwho-host]$ yum install virt-who
在订阅的主机上查找您的所有者号:
$ subscription-manager orgs
将模板配置文件复制到新的单独的配置文件中。要在故障排除时轻松识别配置文件,请使用集群 API 的主机名。在本例中,主机名为
openshift-cluster-1。[virtwho-host]# cp /etc/virt-who.d/template.conf /etc/virt-who.d/openshift-cluster-1.conf [cnv] type=kubevirt kubeconfig=/root/.kube/config hypervisor_id=hostname owner=<owner_number>
获取 virt-who 服务帐户的令牌:
# oc serviceaccounts get-token virt-who
如果
/usr/bin/oc不可用,请安装/usr/bin/oc,并使用令牌登录并创建有效的 kubeconfig 文件。您必须通过包含 url 来指定集群 api。例如:[virtwho-host]# oc login https://api.testcluster-1.example.org:6443 --token=<token>
要在 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更改 kubeconfig 文件,使其包含提取的 CA 证书。例如:
[virtwho-host]$ cat /root/.kube/config apiVersion: v1 clusters: - cluster: server: https://api.testcluster.example.org:6443 certificate-authority: /root/testcluster-ca.pem name: api-testcluster-example-org:6443 contexts: - context: cluster: api-test-cluster-example-org:6443 namespace: default
在启动该服务前,您可以手动测试配置:
[virtwho-host]# virt-who --print
如果安装了 jq 程序,您可以使用它更轻松地阅读输出:VirtualMachine virt-who --print | jq
启用 virt-who 服务:
[virtwho-host]# systemctl enable virt-who
重启 virt-who 服务以使用新配置。
[virtwho-host]# systemctl restart virt-who
virt-who 日志位于 /var/log/rhsm/rhsm.log 中。在这个文件中,您可以查看配置或连接错误。