Skip to content

Day 1: Operations

Context Pin

Pin kubectl to an explicit context. Do not rely on current-context.

bash
kubectl --context <context> get nodes
kubectl --context <context> -n imp-system get pods
kubectl --context <context> get impvm -A

Replace <context> with the Kubernetes context for the cluster you intend to operate.

Daily Operations

  • Track reconcile latency and error-rate trends.
  • Review VM readiness/failure condition distribution.
  • Check agent health and node coverage (kubectl get nodes -l imp/enabled=true).
  • Verify network allocation health and saturation.
  • Watch for MemoryPressure if pressureLifecycle.enabled=true. The largest VMs suspend first and never auto-resume.

Metrics

Imp exposes Prometheus-compatible metrics from operator and agent. Scrape via ServiceMonitor (enabled by default) or direct /metrics.

bash
kubectl -n imp-system get servicemonitor
kubectl -n imp-system get svc -l app.kubernetes.io/name=imp -o wide
curl -s http://<operator-pod-ip>:8080/metrics | grep imp_

Key signals:

  • VM state/phase metrics
  • Scheduling/boot latency (p95/p99)
  • Guest resource usage (CPU, memory, disk)
  • Reconcile queue depth and error rates

Scrape operator and agent metrics with Prometheus/Grafana. See Architecture: Operational Notes.

Change Management

  • Roll operator and agent separately when possible.
  • imp-runtime is OnDelete. See Day 0: Runtime OnDelete. Cordon, drain, then delete the pod to roll.
  • Use canary rollout on a subset of nodes (keep imp/enabled=true selector).
  • Watch condition/event deltas during rollout windows.
  • Keep version compatibility notes for CRD changes (v1alpha1 may break; pin digests).

Capacity and Performance

  • Watch queue depth and reconcile time p95/p99.
  • Monitor per-node VM density and startup latency.
  • Watch memory/CPU pressure on controller and agents.
  • Track repeated retries that indicate hidden bottlenecks.

Quick diagnostics:

bash
kubectl --context <context> describe impvm <name> -n <ns>
kubectl --context <context> logs -n imp-system deploy/imp-controller-manager -c manager --since=30m
kubectl --context <context> logs -n imp-system ds/imp-agent --since=30m
kubectl --context <context> get events -A --sort-by=.lastTimestamp | tail -n 100

Backup and Recovery Inputs

  • Retain cluster event history for incident windows.
  • Preserve metric history for trend and regression analysis.
  • Keep tested restore/runbook procedures for critical namespaces.