跳转到内容

A canary is running and receiving nothing

此内容尚不支持你的语言。

Symptom

The canary’s containers are running and healthy, and every request still reaches the stable version. The canary’s own metrics stay at zero, which is easy to read as “the new version is fine”.

Diagnose

  1. Is the canary actually running? GET /api/v1/deployments/{name}/canary. A canary that is pending or paused receives nothing by design.
  2. What weight is set? A weight of zero means the canary exists and takes no traffic. That is a legitimate state — it is how a canary is staged — and it is the commonest cause of this symptom.
  3. Are the canary’s containers passing their probe? Only healthy containers are given traffic.
  4. Is the deployment routed at all? Canary weights are applied at the routing edge, so a deployment with no hostname has nowhere for a weight to take effect.
  5. Has the change had time? Routing changes take a short time to propagate. Measure twice, a minute apart, before concluding nothing happened.

Resolve

  • Weight at zero: raise it. POST /api/v1/deployments/{name}/canary/start begins the rollout; the promote, pause, resume and rollback routes are its other controls.
  • Canary unhealthy: fix the probe or the image — the canary is telling you what it was for.
  • Not routed: a weighted rollout requires a hostname. See rollouts.

Prevent

Set the first weight in the same action that starts the canary, so a staged canary is never mistaken for a failed one, and watch the canary’s own metrics rather than the deployment’s total.