Skip to content

Cloud Native Application Delivery: KCNA practice questions

Application delivery covers everything between a commit and a running, updated workload: building and testing the change, packaging the manifests, rolling the new version out safely and keeping the cluster in step with what was approved.

By Ibrahim Yesilay · Published · Updated

Independent community practice, not affiliated with or endorsed by CNCF or The Linux Foundation.

What Cloud Native Application Delivery covers in KCNA

Application delivery covers everything between a commit and a running, updated workload: building and testing the change, packaging the manifests, rolling the new version out safely and keeping the cluster in step with what was approved.

GitOps is the model this topic keeps returning to. The OpenGitOps project defines it through four principles. The desired state of the system must be expressed declaratively. That state is stored in a way that enforces immutability and versioning and keeps a complete history, which for most teams means a Git repository. Software agents pull the desired state from that source automatically, rather than a pipeline pushing into the cluster. And those agents continuously observe the actual state and try to apply the desired one. Argo CD is a declarative GitOps continuous delivery tool for Kubernetes built on exactly this loop: it runs as a controller, compares the live state of each application with the target state in Git, marks an application OutOfSync when they differ, for instance after someone edits a resource by hand, and can bring it back either automatically or on demand.

Packaging is handled by two tools with different philosophies. Helm installs charts, packages of Kubernetes resources that can be published to and loaded from chart repositories. Installing a chart creates a release, and every install, upgrade or rollback increments that release's revision number, so helm history lists the revisions and helm rollback returns to an earlier one. Configuration is supplied as values: a chart's defaults can be overridden with a YAML file passed with -f, or on the command line with --set, which takes precedence. Kustomize instead customizes plain YAML through a kustomization file and is built into kubectl as kubectl apply -k. A base is a directory of shared resources, and an overlay is a directory whose kustomization refers to one or more bases and adds changes for an environment such as dev or prod; a base knows nothing about the overlays that use it. Argo CD can deploy Helm charts, Kustomize directories and plain YAML alike, so choosing one tool does not rule out the other.

Rollout strategy decides how a new version replaces the old one. A Deployment's default strategy is RollingUpdate, which scales the new ReplicaSet up and the old one down gradually; maxSurge and maxUnavailable both default to 25% and control how far the rollout may go above or below the desired replica count. The Recreate strategy kills all old Pods before creating new ones, accepting downtime. A canary releases the new version to a subset of users or servers first, which the Kubernetes docs show with one Deployment per release.

Finally, traffic has to reach the application. An Ingress exposes HTTP and HTTPS routes from outside the cluster to Services, but creating one has no effect without an Ingress controller to implement it. The Ingress API is now frozen, and the Kubernetes project recommends Gateway API, which splits the job into role-oriented resources: a GatewayClass describes a kind of gateway managed by a controller, a Gateway is an actual instance of traffic-handling infrastructure, and HTTPRoute or GRPCRoute objects attach to it with routing rules. Header matching and traffic weighting are built in rather than left to controller-specific annotations.

Key points

  • The four OpenGitOps principles: declarative, versioned and immutable, pulled automatically, continuously reconciled.
  • Argo CD marks an application OutOfSync when the live state deviates from the target state in Git.
  • Every Helm install, upgrade or rollback increments the release revision; --set overrides values files.
  • Kustomize overlays reference bases; kubectl apply -k applies a kustomization directory.
  • RollingUpdate is the default Deployment strategy, with maxSurge and maxUnavailable defaulting to 25%.

Three sample questions

46 KCNA questions on Cloud Native Application Delivery, 46 with explanations. How practice works

Question 1

What is the primary purpose of ArgoCD?
  1. A.Container image building
  2. B.GitOps continuous delivery for Kubernetes
  3. C.Log aggregation
  4. D.Network routing

Correct answer: B

ArgoCD is a declarative GitOps continuous delivery tool. It monitors Git repositories and automatically synchronizes the desired state to Kubernetes clusters. Perfect for multi-cluster deployments and automated delivery.

Question 2

When should you use Helm?
  1. A.To package and deploy Kubernetes applications using templates
  2. B.To monitor cluster performance
  3. C.To manage container images
  4. D.To configure network policies

Correct answer: A

Helm is a package manager for Kubernetes. It uses templates (charts) to define, install, and upgrade Kubernetes applications. Charts can be versioned, shared, and customized with values files.

Question 3

What is a Helm chart?
  1. A.A performance monitoring tool
  2. B.A package of Kubernetes resources
  3. C.A network topology diagram
  4. D.A container image registry

Correct answer: B

A Helm chart is a collection of files that describe related Kubernetes resources. It includes templates, default values, and metadata. Charts can be shared via repositories.

Practice this topic

Focus mode keeps every question on Cloud Native Application Delivery until you leave it. 10 free guest answers, then a free account; no credit card.

Or open KCNA practice across all topics.

Sources

The explanation above was checked against these official documents.

Frequently asked questions

How do Helm and Kustomize differ?

Helm installs charts configured through values and tracks each installation as a release with numbered revisions that can be rolled back. Kustomize customizes plain YAML through a kustomization file with bases and overlays and is built into kubectl as kubectl apply -k.