诊断未就绪的实例
当 Valkey 保持在 Initializing、Rebalancing 或 Failed 状态时,或者预期的 Pod 和 Service 不可用时,请使用此操作步骤。
保留当前状态
不要先重启或编辑子资源。请先记录所属资源、子资源、Pod 和 Events:
读取 .status.phase 和 .status.message。高级状态是主要摘要;子资源状态提供与拓扑相关的详细信息。
检查准入和规格失败
如果创建或更新被拒绝,请在不修改实际对象的情况下重现校验:
常见的校验边界包括:
检查无法调度的 Pod
检查 CPU 或内存不足、必需的反亲和性、node-selector 不匹配、无法容忍的 taint、persistent volume claim(PVC)拓扑冲突以及命名空间配额。 对于 Cluster,两个必需策略都通过分片本地 selector 实现,因此某个分片中的每个成员都需要不同的符合条件的节点;不同分片可以共享节点。对于没有自定义 affinity 的 Failover 或 Replica,每个数据成员都需要不同的符合条件的节点。
检查存储
处于 Pending 的 PVC 会阻止其 Pod。请确认 StorageClass 是否存在、provisioner 是否健康、访问模式、容量、卷拓扑以及存储配额。在了解其数据保留要求和恢复步骤之前,不要删除 PVC。
检查 TLS 资源
Operator 期望 cert-manager 将 <name>-cert 签发到 <name>-tls 中。检查 issuer 就绪状态、DNS 名称、证书 Events 以及 cert-manager 日志。切勿在支持记录中打印私钥数据。
检查容器和 Operator
对于 Failover,还要检查 sentinel 容器。将日志与故障时间对齐,并将其与 Events 关联起来。
检查拓扑健康状态
对于 Cluster:
对于 Failover 或 Replica:
当端点需要 ACL 和 TLS 选项时,请一并添加。不要假设对某个节点成功执行 PING 就能证明整个 Cluster 覆盖完整或复制健康。
升级包
请提供以下内容,并移除 Secret 值:
Valkey及相关子资源 YAML;- Events 和 Pod 描述;
- 指定时间范围内的 Operator、数据节点、Sentinel 和 exporter 日志;
- PVC、Service、EndpointSlice 和 Certificate 状态;
CLUSTER INFO和CLUSTER NODES,或INFO replication;- 产品版本、Operator 镜像、服务器镜像、确切故障时间,以及最近一次更改。
请参考官方 CLUSTER INFO 参考、CLUSTER NODES 参考 和 INFO 参考 来解读服务器命令。