KLCP study materials
KLCP study resources

KLCP: Cloud Native Application Delivery

KLCP · Work through your exam, one topic at a time.

All guide sections

Cloud Native Application Delivery

Packaging and release

Delivery is the pipeline from source to running workload. Containers are built as immutable images, tagged, pushed to a registry, and referenced by digest or tag. In Kubernetes, manifests (YAML) declare desired state; tools like Kustomize or Helm template and layer configuration. The exam expects you to reason about how a change flows: commit → build image → push → update Deployment image → rolling rollout → verify readiness.

Configuration and secrets

Externalize configuration via ConfigMaps and Secrets mounted as env vars or volumes. Env-var injection does not update running containers when the source changes; volume mounts do update (eventually), but the app must reload. This asymmetry is a frequent trap.

Rollouts and rollback

Deployments track revision history. kubectl rollout status watches progress; kubectl rollout undo reverts to the prior ReplicaSet. A rollout stalls when new pods never become Ready - readiness probes are the gate. Set progressDeadlineSeconds to fail fast.

Delivery patterns

Know blue-green (swap traffic between two full environments), canary (shift a fraction of traffic), and rolling (incremental replacement). In Kubernetes, Services with selectors and Ingress route traffic; feature flags and progressive delivery tools extend this.

Traps to watch

  • latest tags are mutable and break reproducibility; prefer immutable tags or digests.
  • Image pull secrets are namespaced and must exist in the target namespace.
  • A Deployment with an unchanged pod template produces no rollout - editing a ConfigMap alone does not restart pods unless the template references it (e.g., via a checksum annotation).

Rule of thumb

A rollout is only "done" when new pods are Ready and old ones are gone; verify with rollout status, not by assuming the apply succeeded.

Worked example: You update a ConfigMap used as env vars and see no change. Env vars are baked at container start; you must restart pods (e.g., kubectl rollout restart deployment/app) for the new values to take effect.