← Workflows

阅读中文版本

Environment Resource Quota Workflow

Apply per-team resource quotas so one team cannot consume a shared environment and starve others.

beginner~45 minenvironmentquotagovernance

Objective

Prevent any single team from exhausting shared environment capacity.

Environment

  • Namespaces or accounts per team
  • Quota mechanisms
  • Usage monitoring

Steps

1. Define per-team quotas

Set CPU, memory, and object quotas per team based on expected usage.

Expected state: Each team has a bounded share.

2. Enforce quotas

Apply quotas so over-consumption is rejected rather than allowed.

Expected state: No team can exceed its share.

3. Monitor usage against quota

Track usage and alert teams approaching their limits.

Expected state: Teams see limits before they hit them.

4. Review and adjust

Adjust quotas from real usage patterns rather than guesses.

Expected state: Quotas match real needs.

Decision points

Quotas or best-effort sharing?

  • Quotas for shared environments
  • Best-effort

Use quotas where capacity is shared to prevent noisy-neighbour starvation.

Hard or soft quotas?

  • Hard limits with monitored headroom
  • Soft only

Use hard limits with headroom alerts so teams are warned before rejection.

Expected outcome

Shared environment capacity is fairly distributed and no single team can starve others.

Verification

Confirm a team exceeding its quota is rejected and quotas are reviewed against real usage.

Cleanup

Update quotas as teams grow and archive review decisions.

Overview

Prevent any single team from exhausting shared environment capacity.

This workflow is reusable across teams and environments; adapt the commands to your tooling while keeping the sequence and checkpoints intact.

Environment and prerequisites

  • Namespaces or accounts per team
  • Quota mechanisms
  • Usage monitoring

Procedure

1. Define per-team quotas

Set CPU, memory, and object quotas per team based on expected usage.

Expected state: Each team has a bounded share.

2. Enforce quotas

Apply quotas so over-consumption is rejected rather than allowed.

Expected state: No team can exceed its share.

3. Monitor usage against quota

Track usage and alert teams approaching their limits.

Expected state: Teams see limits before they hit them.

4. Review and adjust

Adjust quotas from real usage patterns rather than guesses.

Expected state: Quotas match real needs.

# apply a namespace quota
kubectl apply -f - <<'YAML'
kind: ResourceQuota
metadata:
  name: team-quota
spec:
  hard:
    requests.cpu: "20"
YAML

Verification

Confirm a team exceeding its quota is rejected and quotas are reviewed against real usage.

Decision points

Quotas or best-effort sharing?

  • Quotas for shared environments
  • Best-effort

Recommendation: Use quotas where capacity is shared to prevent noisy-neighbour starvation.

Hard or soft quotas?

  • Hard limits with monitored headroom
  • Soft only

Recommendation: Use hard limits with headroom alerts so teams are warned before rejection.

Common failures

  • One team can exhaust shared capacity.
  • No usage monitoring means surprise rejections.
  • Guessed quotas do not match real needs.