Alauda Container Platform GitOps Sync and Health Status

Alauda Container Platform GitOps 通过利用底层 Kubernetes 资源的状态来抽象 Application 资源的状态。Application 资源的状态直接决定关联的 ApplicationSet 资源的状态。

Sync Status Explanation

Kubernetes 资源和原生应用均有四种同步状态:Sync FailedOutOfSyncSyncingSynced

Sync Status描述
Sync Failed由于网络错误、配置问题或权限问题导致同步失败。请检查日志以查明根本原因。
OutOfSync集群资源状态与 Git 定义的期望状态不一致。需要手动或自动同步。
Syncing集群状态与 Git 定义状态之间正在进行主动调和。
Synced集群资源状态与 Git 定义的期望状态一致。
INFO

同步状态显示优先级:优先级顺序为 Sync Failed > OutOfSync > Syncing > Synced

示例

  • 如果一个 Application 有两个资源分别处于 SyncingSynced 状态,则其整体状态为 Syncing
  • 如果一个 ApplicationSet 管理的两个 Application 分别处于 Sync FailedSynced 状态,则其整体状态为 Sync Failed。\

Health Status Explanation

Kubernetes 资源和原生应用有六种健康状态:UnknownMissingDegradedPausedProgressingHealthy

Health Status描述参考解决方案
Unknown无法确定健康状态,通常由于控制器错误或缺失状态数据。检查资源 YAML 中的 status.conditions 以获取诊断详情。
Missing集群中未找到资源。初次创建:等待调和完成
意外删除:触发手动同步。
Degraded工作负载资源(如 Deployment)未在超时时间内(默认:10 分钟)达到健康状态。调查 Pod 失败原因(如崩溃、资源限制等)。
Paused工作负载资源的滚动更新被故意暂停(例如通过 kubectl rollout pause)。如适用,恢复滚动更新。
Processing资源已成功创建但尚未完全就绪(例如 Pod 正在初始化)。监控直到状态转为 Healthy 或 Degraded。
Healthy资源正常运行。-
INFO

健康状态优先级:优先级顺序为 Unknown > Missing > Degraded > Paused > Progressing > Healthy

示例

  • 如果一个 Application 有资源处于 HealthyUnknown 状态,则其整体健康状态为 Unknown
  • 如果一个 ApplicationSet 管理的 Application 处于 MissingProgressing 状态,则其整体健康状态为 Missing。\

Recognition Rules

Kubernetes 资源的 Healthy 状态识别规则:

资源类型状态
Deployment滚动更新完成且所有副本均可用。
StatefulSet更新完成且所有 Pod 均已就绪。
ReplicaSet所有 Pod 均健康。
DaemonSet期望数量的 Pod 已调度且健康。
Ingress状态中已填充 LoadBalancer IP/主机名。
Service已填充 LoadBalancer IP/主机名(如适用)。
PVC状态为 Bound
Pod所有容器均已就绪且重启次数未超过阈值。
Job任务成功完成(.status.succeeded >= 1)。
HPA扩缩容操作成功,当前副本数与期望副本数匹配。