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 -AReplace <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
MemoryPressureifpressureLifecycle.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-runtimeisOnDelete. See Day 0: Runtime OnDelete. Cordon, drain, then delete the pod to roll.- Use canary rollout on a subset of nodes (keep
imp/enabled=trueselector). - Watch condition/event deltas during rollout windows.
- Keep version compatibility notes for CRD changes (
v1alpha1may 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.
Troubleshooting Links
- Manual: Troubleshooting: triage flow,
RuntimeStartFailed,NetworkSetupFailed, FC_BIN, one-shot panic,409 Conflict - Manual: Day 0 Install: privileged namespace,
imp/enabled=true, digest pin,OnDelete,pressureLifecycle - Networking: Cilium IPAM: CiliumExternalWorkload, poolRefs
- Sandbox: Troubleshooting: sandbox-specific failure classes
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 100Backup 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.
