Cloud / HELM Interview Questions
How do you implement zero-downtime deployments with Helm?
Zero-downtime deployments with Helm require combining Kubernetes features with Helm-specific strategies.
1. RollingUpdate strategy in deployment: spec: strategy: type: RollingUpdate rollingUpdate: maxSurge: 25% maxUnavailable: 0 # Critical for zero-downtime minReadySeconds: 10 revisionHistoryLimit: 10 maxUnavailable: 0 ensures old pods keep running until new pods are ready.
2. Readiness and liveness probes: readinessProbe: httpGet: path: /health port: 8080 initialDelaySeconds: 5 periodSeconds: 5 failureThreshold: 3 successThreshold: 1 livenessProbe: httpGet: path: /health port: 8080 initialDelaySeconds: 30 periodSeconds: 10
3. PodDisruptionBudget for voluntary disruptions: apiVersion: policy/v1 kind: PodDisruptionBudget metadata: name: {{ include "myapp.fullname" . }} spec: minAvailable: 2 selector: matchLabels: {{- include "myapp.selectorLabels" . | nindent 6 }}
4. Helm upgrade flags for safety: helm upgrade --install myapp ./chart \\ --wait \\ --timeout 5m \\ --atomic \\ --cleanup-on-fail - --wait: Wait for all resources to be ready - --atomic: Rollback on failure (v3 feature) - --cleanup-on-fail: Remove failed resources
5. Pre-stop hooks for graceful shutdown: spec: containers: - name: app lifecycle: preStop: exec: command: ["sh", "-c", "sleep 15 && nginx -s quit"]
6. Database migration strategies: - Pre-upgrade hooks for migrations before new version starts - Backward compatible schema changes only (add columns, don't drop) - Blue-green deployment pattern for major schema changes
7. Progressive delivery with Flagger/Argo Rollouts: apiVersion: argoproj.io/v1alpha1 kind: Rollout metadata: name: myapp spec: strategy: canary: steps: - setWeight: 25 - pause: {duration: 1m} - setWeight: 50 - pause: {duration: 1m} - setWeight: 100
8. Monitoring during deployment: Monitor during rollout: kubectl rollout status deployment/myapp --watch Check for errors: helm ls --all-namespaces | grep -E "failed|pending"
More Related questions...