将此部分用作参考,帮助您以服务提供商管理员身份使用 VMware Cloud Director Container Service Extension

使用日志进行故障排除

此部分详细介绍了 VMware Cloud Director Container Service Extension 4.0 的重要日志文件及其位置。对失败的临时虚拟机脚本错误进行故障排除或重新尝试操作时,可以参考这些日志文件作为辅助措施。

表 1. 日志包
组件 记录日志 描述 位置 支持 Syslog 备注
VMware Cloud Director Container Service Extension 服务器 cse.log 在一个位置收集所有标准输出和错误的 VMware Cloud Director Container Service Extension 服务器日志。这包括集群创建、删除和检测信号的运行状态以及 RDE 中记录的事件和错误。 /root/cse.log 此文件位置位于部署了 VMware Cloud Director Container Service Extension 服务器 OVA 且正在运行 CSE 的虚拟机中。
VMware Cloud Director Container Service Extension 服务器 cse-wire.log 包含 VMware Cloud Director SDK 生成的请求和响应。调试客户环境中的意外故障时,请参阅此日志。 /root/cse-wire.log
要激活线路日志记录,请完成以下步骤:
  1. 登录到 VMware Cloud Director Container Service Extension OVA 虚拟机。
  2. 打开 /root/config.toml
  3. 输入以下行:wire_logging_enabled = true
    注: 要停用线路日志记录,请注释掉此行。
  4. 使用以下命令重新启动 VMware Cloud Director Container Service Extension 服务:systemctl restart cse.service
引导 VM cloud-final.err 收集为在临时虚拟机上创建和删除集群而执行的所有命令和状态以及确保目标集群可自我管理的后续步骤。如果集群创建和删除成功,将记录所有命令。如果出现失败,则会在操作停止之前记录错误消息。 /var/log/cloud-final.err
注: 此日志位于引导 VM 中。需要登录到引导 VM。
设置 autoRepairOnErrors:Off。这是在创建集群时 UI 支持的设置。可以在 UI 中的调试设置选项卡中找到此设置。
引导 VM cloud-final.out 这是临时虚拟机上的一个文件,其中记录了软件包下载期间以及执行 clusterctl init、kubectl machines、apply 时发生的所有标准输出。 /var/log/cloud-final.out
注: 此日志位于引导 VM 中。需要登录到引导 VM。
设置 autoRepairOnErrors:Off。这是在创建集群时 UI 支持的设置。可以在 UI 中的调试设置选项卡中找到此设置。
引导 VM、Kubernetes 集群 bash shell:

执行 k8s-log-bundle.sh
从 CAPVCD pod 收集日志。如果执行临时虚拟机脚本时没有错误,并且 kubectl get machines 继续运行挂起的循环,则用户可以使用此脚本进入故障排除的下一步以执行根本原因分析。 https://github.com/vmware/cloud-provider-for-cloud-director/blob/main/scripts/generate-k8s-log-bundle.sh 这是一个 bash 脚本文件。确保在运行脚本之前执行以下操作:
  • 下载集群的 kubeconfig 文件。
  • 导出 KUBECONFIG=<full-path-of-kube-config>
引导 VM、Kubernetes 集群 CAPVCD 日志:
export KUBECONFIG=/path/to/kubeconfig

kubectl get pods -A (copy CAPVCD pod name) 
kubectl logs -n kube-system CAPVCD-POD-NAME
CAPVCD 日志 在 CAPVCD pod 日志上激活线路日志,例如,对 VMware Cloud Director 的 HTTP 请求和来自 VMware Cloud Director 的 HTTP 响应。
kubectl set env -n capvcd-system deployment/capvcd-controller-manager GOVCD_LOG_ON_SCREEN=true -oyaml.
要停用线路日志记录,请使用以下命令:
kubectl set env -n capvcd-system deployment/capvcd-controller-manager GOVCD_LOG_ON_SCREEN-
注: 激活线路日志会污染日志。仅在调试故障时才需要激活线路日志。
Kubernetes 集群 CPI 日志的 CPI 输出
export KUBECONFIG=/path/to/kubeconfig
kubectl get pods -A (copy CPI pod name)
kubectl logs -n kube-system CPI-POD-NAME
CPI pod 的日志 在 CPI pod 日志上激活线路日志、对 VMware Cloud Director 的 HTTP 请求和来自 VMware Cloud Director 的 HTTP 响应。

kubectl set env -n kube-system deployment/vmware-cloud-director-ccm GOVCD_LOG_ON_SCREEN=true -oyaml

要停用线路日志记录,请使用以下命令:
kubectl set env -n kube-system deployment/vmware-cloud-director-ccm GOVCD_LOG_ON_SCREEN-
注: 激活线路日志会污染日志。仅在调试故障时才需要激活线路日志。
Kubernetes 集群 CSI 日志
export KUBECONFIG=/path/to/kubeconfig

kubectl get pods -A (copy CSI controller pod name or CSI node-plugin pod name) 
kubectl logs -n kube-system CSI-POD-NAME -c vcd-csi-plugin
CSI 的日志 在 CSI pod 日志上激活线路日志、对 VMware Cloud Director 的 HTTP 请求和来自 VMware Cloud Director 的 HTTP 响应。
kubectl set env -n kube-system StatefulSet/csi-vcd-controllerplugin -c vcd-csi-plugin GOVCD_LOG_ON_SCREEN=true -oyaml
kubectl set env -n kube-system DaemonSet/csi-vcd-nodeplugin -c vcd-csi-plugin GOVCD_LOG_ON_SCREEN=true -oyaml
要停用线路日志记录,请使用以下命令:
kubectl set env -n kube-system StatefulSet/csi-vcd-controllerplugin -c vcd-csi-plugin GOVCD_LOG_ON_SCREEN-
kubectl set env -n kube-system DaemonSet/csi-vcd-nodeplugin -c vcd-csi-plugin GOVCD_LOG_ON_SCREEN-
注: 激活线路日志会污染日志。仅在调试故障时才需要激活线路日志。
Kubernetes 集群 RDE Projector 日志
export KUBECONFIG=/path/to/kubeconfig
kubectl get pods -A (copy CSI controller pod name or CSI node-plugin pod name)
kubectl logs -n kube-system CSI-POD-NAME -c vcd-csi-plugin
RDE 投影仪日志 在 RDE Projector pod 日志上激活线路日志、对 VMware Cloud Director 的 HTTP 请求和来自 VMware Cloud Director 的 HTTP 响应。
kubectl set env -n rdeprojector-system deployment/rdeprojector-controller-manager GOVCD_LOG_ON_SCREEN=true -oyaml

要停用线路日志记录,请使用以下命令:

kubectl set env -n capvcd-system deployment/rdeprojector-controller-manager GOVCD_LOG_ON_SCREEN-
通过 API 的 Kubernetes 集群 使用 Postman 工具的集群 RDE
GET https://{{base_url}}/cloudapi/1.0.0/entities/types/vmware/capvcdCluster/1.1.0
发现与集群名称匹配的实体。

查找 entity->status->VcdKe→errorSet:这是 json 阵列,其中包含在集群操作期间遇到的错误
HTTP GET