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)

流程

  1. 在您要订阅的集群中,创建一个项目和名为 virt-who 的服务帐户:

    $ oc new-project virt-who
    $ oc create serviceaccount virt-who
    Copy to Clipboard Toggle word wrap
  2. 创建集群角色来列出节点和虚拟机实例。

    $ oc create clusterrole lsnodes --verb=list --resource=nodes
    $ oc create clusterrole lsvmis --verb=list --resource=vmis
    Copy to Clipboard Toggle word wrap
  3. 创建集群角色绑定。

    $ 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 Toggle word wrap
  4. 验证 virt-who 系统帐户是否有列出所有正在运行的虚拟机的权限:

    $ oc get vmis -A --as=system:serviceaccount:virt-who:virt-who
    Copy to Clipboard Toggle word wrap
  5. 在主机上安装 virt-who,可以是在 OpenShift Virtualization 本身中运行的虚拟机:

    [virtwho-host]$ yum install virt-who
    Copy to Clipboard Toggle word wrap
  6. 在订阅的主机上查找您的所有者号:

    $ subscription-manager orgs
    Copy to Clipboard Toggle word wrap
  7. 将模板配置文件复制到新的单独的配置文件中。要在故障排除时轻松识别配置文件,请使用集群 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>
    Copy to Clipboard Toggle word wrap
  8. 获取 virt-who 服务帐户的令牌:

    # oc serviceaccounts get-token virt-who
    Copy to Clipboard Toggle word wrap
  9. 如果 /usr/bin/oc 不可用,请安装 /usr/bin/oc,并使用令牌登录并创建有效的 kubeconfig 文件。您必须通过包含 url 来指定集群 api。例如:

    [virtwho-host]# oc login https://api.testcluster-1.example.org:6443 --token=<token>
    Copy to Clipboard Toggle word wrap
    1. 要在 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
      Copy to Clipboard Toggle word wrap
    2. 更改 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
      Copy to Clipboard Toggle word wrap
  10. 在启动该服务前,您可以手动测试配置:

    [virtwho-host]# virt-who --print
    Copy to Clipboard Toggle word wrap
注意

如果安装了 jq 程序,您可以使用它更轻松地阅读输出:VirtualMachine virt-who --print | jq

  1. 启用 virt-who 服务:

    [virtwho-host]# systemctl enable virt-who
    Copy to Clipboard Toggle word wrap
  2. 重启 virt-who 服务以使用新配置。

    [virtwho-host]# systemctl restart virt-who
    Copy to Clipboard Toggle word wrap

virt-who 日志位于 /var/log/rhsm/rhsm.log 中。在这个文件中,您可以查看配置或连接错误。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat