Probe builder

Set the handler and timings for each probe. The timeline shows what happens and when, using only the numbers you entered.

Schema pack 2026.10.0, self-authored. What it covers

Timeline and YAML

Startup
First check
0s after container start
Acts after
≈116s of continuous failure
Action
Startup failure: container is killed and restarted. Liveness and readiness do not run until startup succeeds.
  • Startup budget ≈ initialDelaySeconds + failureThreshold × periodSeconds = 120s before the container is restarted.
  • Any HTTP status from 200 to 399 counts as success. Redirects to another host are not followed as success checks of that host.
  • Timings are arithmetic from the fields. kubelet scheduling jitter, container start time and probe execution time make real timings vary.
Readiness
First check
after startup succeeds (≤ 120s)
Acts after
≈22s of continuous failure
Action
Pod is marked NotReady and removed from Service endpoints (container keeps running).
  • Any HTTP status from 200 to 399 counts as success. Redirects to another host are not followed as success checks of that host.
  • Timings are arithmetic from the fields. kubelet scheduling jitter, container start time and probe execution time make real timings vary.
Liveness
First check
after startup succeeds (≤ 120s)
Acts after
≈42s of continuous failure
Action
Container is killed and restarted according to restartPolicy.
  • Any HTTP status from 200 to 399 counts as success. Redirects to another host are not followed as success checks of that host.
  • Timings are arithmetic from the fields. kubelet scheduling jitter, container start time and probe execution time make real timings vary.
Passes pack schema5 warning(s)Kubernetes 1.31, pack 2026.10.0

container "app" does not set allowPrivilegeEscalation: false.

container "app": runAsNonRoot is not true at container or pod level.

container "app" does not drop ALL capabilities.

container "app": seccompProfile is unset at container and pod level.

container "app" has no resources.requests (BestEffort QoS).

containers:
  - name: app
    image: registry.example.com/app:1.0.0
    ports:
      - name: http
        containerPort: 8080
    startupProbe:
      httpGet:
        path: /healthz
        port: http
      initialDelaySeconds: 0
      periodSeconds: 5
      timeoutSeconds: 1
      failureThreshold: 24
      successThreshold: 1
    readinessProbe:
      httpGet:
        path: /ready
        port: http
      initialDelaySeconds: 0
      periodSeconds: 10
      timeoutSeconds: 2
      failureThreshold: 3
      successThreshold: 1
    livenessProbe:
      httpGet:
        path: /healthz
        port: http
      initialDelaySeconds: 0
      periodSeconds: 20
      timeoutSeconds: 2
      failureThreshold: 3
      successThreshold: 1

Three probes, three outcomes

Readiness failure removes the pod from Service endpoints but leaves the container running. Liveness failure restarts the container. A startup probe holds the other two off until the app has started, which protects slow starters from liveness restarts.

A failure is acted on after roughly (failureThreshold − 1) × periodSeconds + timeoutSeconds of continuous failure. Real timings also include kubelet jitter and container start time.

Questions

Should liveness and readiness be the same check?

Usually not. If a dependency is down, readiness should fail so traffic moves elsewhere. Restarting the container through liveness rarely fixes that.

What counts as success for httpGet?

Any status code from 200 to 399.

Other tools

Manifest editorEdit multi-document Kubernetes YAML with per-document identity, duplicate detection, a relationship graph with an accessible table, and findings tied to source lines.YAML validatorValidate Kubernetes YAML against a versioned schema pack with separate YAML, schema, cross-object and policy findings.Deployment generatorGenerate a Deployment with Service, Ingress, PodDisruptionBudget and HPA: named ports, probes, requests and a hardened security context, validated as you type.Service generatorBuild ClusterIP, NodePort, LoadBalancer, headless and ExternalName Services, and check selector and targetPort mapping against a pasted workload.Resource calculatorExact Kubernetes quantity parsing (100m vs 100Mi), unit conversion, and requests/limits totals that account for init containers, native sidecars, replicas, rollout surge and overhead.RBAC analyzerInspect Roles, ClusterRoles and bindings offline: subject-to-permission matrix, aggregated-role handling, risky verbs, and "can this subject do X" checks scoped to the supplied rules.NetworkPolicy explainerExplain which pods each NetworkPolicy isolates and test traffic scenarios between pods, namespaces and IPs with additive allow-list reasoning.Manifest diffCompare two Kubernetes bundles by text or by object: objects matched by identity, list items matched by name, and status or server fields ignored only when you choose.API deprecationsFind Kubernetes APIs removed or deprecated for your target version, using a dated pack, and preview field-aware migrations with the semantic changes you need to review.CronJob schedulePreview the next runs of a Kubernetes CronJob schedule in its spec.timeZone, explain concurrency and deadline settings, and catch TZ= in the schedule string.Secret encoderEncode and decode Kubernetes Secret values locally, build Secret YAML with data or stringData, and inspect an existing Secret with values masked by default.Redact exportFind Secret data, tokens, credential-bearing env values and last-applied annotations in Kubernetes YAML, review each one, and export a redacted copy.TemplatesSynthetic Kubernetes templates with safe defaults — web app, StatefulSet, CronJob, NetworkPolicy, RBAC, HPA, sidecar — each tested against the schema pack for every supported version.