Google 会远程监控和维护 Google Distributed Cloud Connected 硬件。为此,Google 工程师拥有对 Distributed Cloud Connected 硬件的 Secure Shell (SSH) 访问权限。如果 Google 检测到问题,Google 工程师会与您联系以排查和解决问题。如果您自己发现了问题,请立即与 Google 支持团队联系,以便诊断和解决问题。
Distributed Cloud Connected 软件升级
本部分介绍如何使用 Metrics Explorer 检查 Distributed Cloud Connected 集群是否正在进行软件升级。
此过程使用以下 Monitoring 指标:
Current Cluster Version (
/edge_cluster/current_cluster_version):表示集群上运行的 Distributed Cloud Connected 软件的当前版本。Target Cluster Version (
/edge_cluster/target_cluster_version):表示集群要升级到的 Distributed Cloud Connected 的目标版本。
如需完成本部分中的步骤,您必须满足以下前提条件:
- 有权访问 Google Cloud 控制台和您的 Distributed Cloud Connected Google Cloud 项目。
- Monitoring Viewer IAM 角色,让您可以查看 Monitoring 指标。
- (可选)目标 Distributed Cloud Connected 机器的
machine_id值,用于过滤返回的结果。
使用 Metrics Explorer 检查集群的当前和目标软件版本
前往 Metrics Explorer:
在 Google Cloud 控制台中,前往 监控 部分。
在左侧导航树中,点击 Metrics Explorer 。
选择目标资源类型:
在 Metrics Explorer 页面中,前往配置 页面。
点击选择指标 。
使用搜索栏搜索 Cluster 资源类型。您还可以使用完整资源标识符
edgecontainer.googleapis.com/Cluster。在返回的结果中,点击 Cluster 资源类型。
获取集群的当前软件版本:
在 Metric 部分中,搜索
current_cluster_version值。选择 Machine Uptime 指标。其完整路径为
edgecontainer.googleapis.com/edge_cluster/current_cluster_version。(可选)使用 Filter 部分按目标
machine_id值进行过滤。
获取集群的目标软件版本:
点击添加查询 。
在 Metric 部分中,搜索
target_cluster_version值。选择 Target Cluster Version 指标。其完整路径为
edgecontainer.googleapis.com/edge_cluster/target_cluster_version。(可选)使用 Filter 部分按目标
machine_id值进行过滤。
在显示的图表中检查集群的软件升级状态。
如果 Current Cluster Version 和 Target Cluster Version 行分别指示不同的值,则表示集群正在进行软件升级。
如果 Current Cluster Version 和 Target Cluster Version 行指示相同的值,则表示集群未进行软件升级。
使用以下命令验证上一步的结果:
gcloud edge-cloud container clusters describe CLUSTER_ID --location=REGION
替换以下内容:
CLUSTER_ID:目标集群的 ID。REGION:集群的创建区域。 Google Cloud
在命令的输出中,记下以下字段的值:
- 如果
status字段的值为UPDATING,则表示集群正在进行软件升级。 - 如果
clusterVersion和targetVersion字段的值不同,请将它们与 Metrics Explorer 返回的值进行比较。
解读结果
下表介绍了 Metrics Explorer 和 gcloud 命令返回的结果。
| 集群状态 | 诊断 | 解决方法 |
|---|---|---|
HealthycurrentVersion 和 targetVersion 值匹配`status` 值为 RUNNING |
集群正在运行 Distributed Cloud Connected 软件的目标版本。 | 无。 |
正在升级currentVersion 值低于 targetVersion`status` 值为 UPDATING |
集群正在升级到 Distributed Cloud Connected 软件的目标版本。 | 在 Metrics Explorer 中监控集群,直到当前和目标集群版本值匹配。 |
StuckcurrentVersion 值无限期低于 targetVersion `status` 值无限期为 UPDATING |
集群中至少有一个节点升级到 Distributed Cloud Connected 软件的目标版本失败 。 | 检查机器连接和系统日志;与 Google 联系以获取帮助。 |
回滚currentVersion 值高于 targetVersion`status` 值为 UPDATING |
集群正在回滚到 Distributed Cloud Connected 软件的先前版本。 | 与 Google 联系以确定回滚的原因。 |
如果集群上的软件升级失败,或者集群已回滚到先前的软件版本,请检查以下内容:
- 节点健康状况 。验证每个物理 Distributed Cloud Connected 机器是否具有网络连接,以及是否按下一部分所述报告正常运行时间。
- 维护窗口 。验证软件升级是否因维护排除窗口而暂停。
- 系统日志 。检查系统日志,以确定软件升级失败的可能原因,例如 Pod 驱逐超时。
如果表中列出的解决方法步骤无法解决问题,请与
Google 支持
联系,并提供受影响机器的 machine_id 值和中断时间戳。
Distributed Cloud Connected 机器重启
本部分介绍如何使用 Metrics Explorer 检查 Distributed Cloud Connected 物理机器是否已重启,并确定重启的原因。监控重启有助于确定重启是计划维护的一部分,还是硬件故障或电源中断的结果。
此过程使用以下 Monitoring 指标:
Machine Uptime (
/machine/uptime):表示自上次重启以来的时间(以秒为单位)。Machine Restarts (
/machine/restart_count):表示目标机器自部署以来的总重启次数。
如需完成本部分中的步骤,您必须满足以下前提条件:
- 有权访问 Google Cloud 控制台和您的 Distributed Cloud Connected Google Cloud 项目。
- Monitoring Viewer IAM 角色,让您可以查看 Monitoring 指标。
- (可选)目标 Distributed Cloud Connected 机器的
machine_id值,用于过滤返回的结果。
使用 Metrics Explorer 检查机器正常运行时间和重启次数
前往 Metrics Explorer:
在 Google Cloud 控制台中,前往 监控 部分。
在左侧导航树中,点击 Metrics Explorer 。
选择目标资源类型:
在 Metrics Explorer 页面中,前往配置 页面。
点击选择指标 。
使用搜索栏搜索 Machine 资源类型。您还可以使用完整资源标识符
edgecontainer.googleapis.com/Machine。在返回的结果中,点击 Machine 资源类型。
检查机器的正常运行时间:
在 Metric 部分中,搜索
uptime值。选择 Machine Uptime 指标。其完整路径为
edgecontainer.googleapis.com/machine/uptime。(可选)使用 Filter 部分按目标
machine_id值进行过滤。在显示的时间图表中,验证正常运行时间图是否持续上升。如果正常运行时间值在任何时候降至零并重启,则表示机器已重启。
检查机器的重启次数:
在 Metric 部分中,搜索
restart_count值。选择 Machine Restarts 指标。其完整路径为
edgecontainer.googleapis.com/machine/restart_count。(可选)使用 Filter 部分按目标
machine_id值进行过滤。在显示的时间图表中,验证图表线是否保持在
0,这表示未发生重启。如果此行在任何时候飙升至1,则表示机器已重启;请记下确切的重启时间戳,以便进一步进行问题排查。(可选)如需查看各个事件而不是图表,请前往页面的 Aggregation 部分,将 Alignment period 字段设置为
1 minute,并将 Per-series aligner 字段设置为 Delta 。
解读结果
下表介绍了 Metrics Explorer 返回的结果。
| 机器状态 | 诊断 | 解决方法 |
|---|---|---|
| 稳定 “Machine Uptime”指标稳步上升 “Machine Restarts”指标增量为 0 |
机器未重启。 | 无。 |
| Clean restart “Machine Uptime”指标降至 0“Machine Restarts”指标飙升至 1 |
机器已成功重启并重新连接到 Google Cloud。 | 检查系统日志以确定重启的原因。 |
| Power failure “Machine Uptime”指标图表中断且没有数据 在机器正常运行时间中断期间,“Machine Restarts”指标未发生变化 |
机器在重启前断电或网络连接中断。 | 检查电源和网络布线、本地网络配置、LED 指示灯状态。 |
| 间歇性 “Machine Connected”指标值在 0 和 1 之间交替“Network Connectivity”指标值在 0 和 1 之间交替 |
网络连接不稳定、丟包或延迟时间过长。 | 检查本地网络是否存在拥塞和硬件故障。 |
如果表中列出的解决方法步骤无法解决问题,请与
Google 支持
联系,并提供受影响机器的 machine_id 值和中断时间戳。
Distributed Cloud Connected 机器连接
本部分介绍如何使用 Cloud Monitoring 的 Metrics Explorer 功能检查 Distributed Cloud Connected 机器的互联网和 Google Cloud 连接 。
此过程使用以下 Monitoring 指标:
Machine Connected (
/machine/connected):表示机器是否已 连接到 Google Cloud。Network Connectivity (
/machine/network/connectivity):表示机器的主网络接口是否具有互联网连接。
如需完成本部分中的步骤,您必须满足以下前提条件:
- 有权访问 Google Cloud 控制台和您的 Distributed Cloud Connected Google Cloud 项目。
- Monitoring Viewer IAM 角色,让您可以查看 Monitoring 指标。
- (可选)目标 Distributed Cloud Connected 机器的
machine_id值,用于过滤返回的结果。
使用 Metrics Explorer 检查机器连接
前往 Metrics Explorer:
在 Google Cloud 控制台中,前往 监控 部分。
在左侧导航树中,点击 Metrics Explorer 。
选择目标资源类型:
在 Metrics Explorer 页面中,前往查询 页面。
使用搜索栏搜索 Machine 资源类型。您还可以使用完整资源标识符
edgecontainer.googleapis.com/Machine。在返回的结果中,点击 Machine 资源类型。
检查机器与的连接 Google Cloud:
在 Metric 部分中,搜索
connected值。选择 Machine Connected 指标。其完整路径为
edgecontainer.googleapis.com/machine/connected。(可选)使用 Filter 部分按目标
machine_id值进行过滤。在显示的时间图表中,验证运行状况良好 行是否持续保持在 100%。如果此值在任何时候为 0% 或 运行状况不佳,则表示机器在指示的时间与 断开了连接 Google Cloud 。
检查机器的互联网连接:
在 Metric 部分中,搜索
connectivity值。选择 Network Connectivity 指标。其完整路径为
edgecontainer.googleapis.com/machine/network/connectivity。(可选)使用 Filter 部分按目标
machine_id值进行过滤。在显示的时间图表中,验证运行状况良好 行是否持续保持在 100%。如果此值在任何时候为 0% 运行状况不佳 ,则表示机器在指示的时间失去了 互联网连接。
解读结果
下表介绍了 Metrics Explorer 返回的结果。
| 机器状态 | 诊断 | 解决方法 |
|---|---|---|
| 健康 “Machine Connected”指标值为 1“Network Connectivity”指标值为 1 |
正常操作。 | 无。 |
| 已断开连接 "Machine Connected" 指标值为 0"Network Connectivity" 指标值为 1 |
机器具有互联网连接,但无法连接到 Google Cloud。 | 检查 Google 服务和 API 端点的防火墙规则 。验证 Distributed Cloud Connected 代理是否在机器上运行。 |
| Isolated “Machine Connected”指标值为 0“Network Connectivity”指标值为 0 |
机器没有互联网连接。 | 检查电源和网络布线、本地网络配置、LED 指示灯状态。验证 VLAN 和路由配置。 |
| 间歇性 “Machine Connected”指标值在 0 和 1 之间交替“Network Connectivity”指标值在 0 和 1 之间交替 |
网络连接不稳定、丟包或延迟时间过长。 | 检查本地网络是否存在拥塞和硬件故障。 |
如果您注意到任一指标的持续值为 0,请按照表中介绍的问题排查步骤解决这些问题。如果问题仍然存在,请与 Google 支持团队
联系,并提供受影响机器的 machine_id 值和服务中断时间戳。
虚拟机停滞在 Pending 状态
如果发生以下情况之一,虚拟机工作负载可能会停滞在 Pending 状态,并且无法在节点上进行调度:
- Distributed Cloud Connected 无法为虚拟机分配所请求的资源,例如 CPU 时间、内存或磁盘空间。
- 虚拟机配置存在故障。
- 虚拟机的存储存在故障。
- 目标节点被污染。
如需解决此问题,请执行以下操作:
按照获取集群的凭据中所述获取集群凭据。
获取有关受影响的虚拟机的信息:
kubectl describe virtualmachine VM_NAME -n NAMESPACE
替换以下内容:
VM_NAME:目标虚拟机的名称。NAMESPACE:目标虚拟机的命名空间。
该命令会返回类似于以下内容的输出:
Status: ... State: Pending ... Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal SuccessfulCreate 15m virtualmachine-controller Created virtual machine my-stuck-vm Warning DiskProvisioningFailed 14m virtualmachine-controller Failed to provision disk: DataVolume my-stuck-vm-data-disk not ready Warning PVCNotBound 14m virtualmachine-controller PersistentVolumeClaim my-stuck-vm-data-disk is in phase Pending Warning VMINotCreated 10m virtualmachine-controller VirtualMachineInstance cannot be created: dependencies not ready该命令的输出包含的消息可能指示资源限制、调度失败、存储故障和其他问题。
检查输出,以确定调度失败的原因,如后续部分中所述。
资源不足
您可能会看到一条消息,指示资源(例如 CPU、内存或磁盘空间)不足。例如:
5/8 nodes are available: 3 Insufficient memory, 3 Insufficient CPU.
如需解决此问题,请检查分配给受影响的虚拟机和节点上调度的其他工作负载的资源,然后根据您的业务需求执行以下操作:
- 缩减节点上调度的其他工作负载,
- 减少分配给受影响的虚拟机的资源量,
- 向受影响的集群添加更多机器。
被污染的节点
您可能会看到一条消息,指示目标节点被污染。例如:
5/8 nodes are available: 3 node(s) had taint {<taint-key>:<taint-value>}, that the pod didn't tolerate.
如需解决此问题,请执行以下操作:
使用以下命令检查节点上的污点:
kubectl get nodes -o custom-columns=NAME:.metadata.name,TAINTS:.spec.taints
该命令会返回类似于以下内容的输出:
NAME TAINTS node-name-1 [map[effect:PreferNoSchedule key:node-role.kubernetes.io/master] map[effect:PreferNoSchedule key:node-role.kubernetes.io/control-plane]] node-name-2 <none>执行下列其中一项操作:
存储故障
您可能会看到一条消息,指示虚拟机的存储存在故障。例如:
5/8 nodes are available: 3 node(s) had volume node affinity conflict, 3 node(s) had unbound immediate PersistentVolumeClaims.
此消息可能表示相应的永久性卷无法挂载到目标节点。
如需解决此问题,请执行以下操作:
使用以下命令获取受影响的虚拟机的命名空间中永久性卷声明 (PVC) 的状态:
kubectl get pvc -n NAMESPACE
将
NAMESPACE替换为目标命名空间的名称。该命令会返回类似于以下内容的输出:
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE windows-robin-disk-0 Bound pvc-b1a1d264-84bf-4e58-857d-f37f629d5082 25Gi RWX robin-block-immediate 30h windows-robin-disk-1 Bound pvc-0130b9a8-7fed-4df0-8226-d79273792a16 25Gi RWX robin-block-immediate 30h windows-robin-vm-0-restored-windows-robin-disk-0 Pending gce-pd-gkebackup-in 26m验证相应的 PVC 是否具有
Bound状态;如果状态为Pending,则表示存储子系统无法预配卷。 在这种情况下,您必须排查存储子系统配置问题,并确保相应的StorageClass可用。