Courseiva

Istio Certified Associate (ICA, CNCF/Linux Foundation) (ICA) (ICA) — Questions 151–225

234 questions total · 4 pages · All types, answers revealed

Page 2

Page 3 of 4

Page 4
151
MCQeasy

What is the command to view the status of all pods including proxies?

A.kubectl get pods
B.istioctl pods
C.istioctl status
D.kubectl describe proxy
AnswerA

kubectl get pods lists every pod in the namespace, and because each sidecar-injected pod appears as a single pod with its proxy container, this command shows all pods including proxies. It satisfies the stem's requirement to view status across pods and their injected proxies.

Why this answer

In Istio, sidecar proxies run as containers inside the application pods, so they appear as additional containers in the pod's status. The standard Kubernetes command kubectl get pods shows each pod's status, including the number of ready containers (e.g., 2/2 when both the app and the istio-proxy sidecar are ready), which is how you verify proxy health alongside the app.

Exam trap

The trap is reaching for an istioctl command to list pods; the exam tests whether you know that sidecars are just containers, so the ordinary kubectl get pods command is the correct way to see their status.

How to eliminate wrong answers

Option B is wrong because istioctl pods is not a valid istioctl subcommand — istioctl operates on configuration and proxy state, not on listing pods. Option C is wrong because istioctl status reports the status of the Istio control plane components (istiod, ingress gateways), not the application pods and their sidecars. Option D is wrong because kubectl describe proxy is not a valid resource type; kubectl describe works on real resources like pods, and there is no 'proxy' resource to describe.

152
MCQhard

You need to define a local service that is not in the cluster. How?

A.DestinationRule
B.VirtualService
C.Gateway
D.ServiceEntry
AnswerD

ServiceEntry adds external endpoints to Istio's internal registry, letting sidecars route to a service outside the mesh. It satisfies the stem's constraint of defining a local service absent from the cluster: the entry registers the hostname, address and ports, so Envoy treats the external destination as mesh-local.

Why this answer

ServiceEntry with location: MESH_INTERNAL allows defining services that are technically outside the K8s registry but internal to the mesh.

153
MCQeasy

Which of the following is NOT a valid action in an Istio AuthorizationPolicy?

A.AUDIT
B.ALLOW
C.REDIRECT
D.DENY
AnswerC

REDIRECT is an Envoy route action, not an authorization decision, so it cannot appear in an Istio AuthorizationPolicy. The policy's action field accepts only ALLOW, DENY, and CUSTOM, which satisfies the stem's requirement for an invalid action.

Why this answer

Istio AuthorizationPolicy supports exactly three actions: ALLOW, DENY, and AUDIT. REDIRECT is not a valid action — it is a feature of VirtualService (HTTP redirect) and RequestAuthentication/Envoy routing, not of AuthorizationPolicy. AUDIT is valid and logs requests that match the policy without allowing or denying them, which is why it is included as a legitimate action.

Exam trap

The trap here is conflating Istio's authorization layer (AuthorizationPolicy: ALLOW/DENY/AUDIT) with its traffic-routing layer (VirtualService: redirect, rewrite, fault injection), so candidates who know REDIRECT exists in Istio pick it without checking which resource it belongs to.

How to eliminate wrong answers

Option A is wrong because AUDIT is a valid AuthorizationPolicy action that records matching requests for audit purposes without affecting the allow/deny decision. Option B is wrong because ALLOW is the default and most commonly used action, permitting requests that match the policy rules. Option D is wrong because DENY is a valid action that explicitly blocks matching requests, and Istio evaluates DENY before ALLOW when multiple policies apply.

154
MCQhard

How do you define a circuit breaker that limits the number of pending requests?

A.maxRequestsInQueue
B.maxPending
C.pendingRequestsLimit
D.maxPendingRequests
E.http1MaxPendingRequests
AnswerE

http1MaxPendingRequests caps how many HTTP/1.1 requests may queue awaiting a connection, directly satisfying the requirement to limit pending requests. Istio's circuit breaker uses this field to shed load once the threshold is exceeded, returning overflow failures rather than allowing unbounded queueing.

Why this answer

The 'http1MaxPendingRequests' field is used to limit the number of pending requests in the connection pool.

155
MCQmedium

A team wants to shift 10 percent of traffic to a new version of a service for a canary, while keeping 90 percent on the stable version. Both versions are healthy and registered as subsets in a DestinationRule. Which VirtualService configuration accomplishes this?

A.Define an http.route with two destinations, weight 90 for the stable subset and weight 10 for the canary subset.
B.Add two http.match entries with a uri.prefix of / and different fault percentages for each subset.
C.Create two separate Gateways, one for each subset, and use DNS weighting to send most client traffic to the stable Gateway.
D.Set the DestinationRule trafficPolicy.loadBalancer to RANDOM and rely on having one endpoint per subset.
AnswerA

Weighted routing in a VirtualService http.route block splits traffic across destinations by percentage, and the weights must sum to 100. Setting 90 and 10 sends nine-tenths to stable and one-tenth to the canary, exactly matching the requested canary split. This is the canonical Istio pattern for progressive delivery and integrates with the named subsets from the DestinationRule.

Why this answer

Weighted destinations inside a VirtualService http.route express the exact percentage split between subsets, and the weights must total 100. A 90/10 split with named subsets from the DestinationRule delivers the requested canary behavior. The alternatives either manipulate responses, rely on unrelated load balancing, or use ingress constructs that do not perform in-mesh traffic splitting.

Exam trap

The trap here is confusing load balancing policy with traffic splitting, when only VirtualService route weights express a percentage canary.

156
MCQmedium

You need to restrict traffic to a specific subset of a service defined in a DestinationRule. What should you use in your VirtualService destination block?

A.host
B.subset
C.weight
D.port
AnswerB

The VirtualService destination block uses the subset field to name a subset declared in the corresponding DestinationRule, restricting routing to those labelled pods. This satisfies the constraint of limiting traffic to a specific subset rather than the whole service.

Why this answer

The subset field in the destination object refers to the named subset in the DestinationRule.

157
MCQeasy

You need to configure mutual TLS for a specific workload 'database' in the 'data' namespace, but you want to allow plaintext traffic from a legacy service that cannot use mTLS. Which PeerAuthentication configuration should you use?

A.A PeerAuthentication policy in the 'data' namespace with mode DISABLE and a selector matching 'database'.
B.A PeerAuthentication policy in the 'data' namespace with mode PERMISSIVE and a selector matching 'database'.
C.A PeerAuthentication policy in the 'istio-system' namespace with mode PERMISSIVE and no selector.
D.A PeerAuthentication policy in the 'data' namespace with mode STRICT and a selector matching 'database'.
AnswerB

PERMISSIVE mode allows the workload to accept both mTLS and plaintext traffic. This satisfies the requirement to enforce mTLS for mesh services while still allowing the legacy service to connect without mTLS. The selector ensures the policy applies only to the 'database' workload. This is the correct configuration for a gradual migration to strict mTLS or for accommodating non-mesh clients.

Why this answer

PERMISSIVE mode allows both mTLS and plaintext, making it suitable for workloads that need to accept traffic from both mesh services (using mTLS) and non-mesh services (using plaintext). By applying a PeerAuthentication policy with PERMISSIVE mode and a selector for 'database', you ensure that only that workload accepts both types of traffic, while the rest of the mesh can remain in STRICT mode if desired. This is a common pattern for gradual mTLS adoption.

Exam trap

The trap here is thinking that STRICT mode is needed to 'configure mutual TLS' when in fact PERMISSIVE is required to allow both mTLS and plaintext for the legacy service.

158
Multi-Selectmedium

Which TWO of the following are valid ways to verify the status of an Istio control plane deployment?

Select 2 answers
A.istioctl verify-install
B.kubectl get deploy istiod -n istio-system
C.istioctl proxy-status
D.istioctl mesh-check
E.kubectl describe ingressgateway
AnswersA, B

`istioctl verify-install` validates an existing Istio installation by comparing deployed resources against the manifest, reporting missing or misconfigured components. It directly satisfies the stem's requirement to verify control plane deployment status, confirming that istiod and related resources are present and healthy rather than merely previewing configuration.

Why this answer

Option A, `istioctl verify-install`, is correct because this command validates that the Istio control plane (and other components) were installed correctly by checking the deployed resources against the installation manifest, reporting any missing or misconfigured components such as istiod. Option B, `kubectl get deploy istiod -n istio-system`, is correct because istiod is the Istio control plane deployment, and querying its Deployment in the istio-system namespace directly shows whether the control plane pods are running and available. Option C, `istioctl proxy-status`, is not correct here because it reports the synchronization status of sidecar proxies (Envoy) with the control plane, not the control plane deployment's own status.

Option D, `istioctl mesh-check`, is not a valid istioctl command. Option E, `kubectl describe ingressgateway`, is not valid because ingressgateway is not a Kubernetes resource kind; the gateway is typically a Deployment/Service, and this command would fail.

159
Multi-Selecthard

Which TWO settings are configured within the 'outlierDetection' block?

Select 2 answers
A.interval
B.maxRetries
C.timeout
D.weight
E.consecutive5xxErrors
AnswersA, E

The `interval` setting defines how frequently the outlier detection engine evaluates each backend, expressed as a duration. It satisfies the stem's requirement for a setting configured inside the `outlierDetection` block, controlling the evaluation cadence that determines when unhealthy hosts are ejected from the load-balancing pool.

Why this answer

In Istio's DestinationRule, the outlierDetection block configures passive health checking (circuit breaking) for a service's endpoints, and it includes the fields interval and consecutive5xxErrors. Option A (interval) is correct because it defines the time interval between ejection sweeps of the outlier detection analysis, e.g., interval: 10s. Option E (consecutive5xxErrors) is correct because it specifies the number of consecutive 5xx errors an endpoint must return before it is ejected from the load-balancing pool.

Option B (maxRetries) is not part of outlierDetection; retry attempts are configured in the HTTP retry policy (e.g., retries/attempts under route or VirtualService). Option C (timeout) belongs to the traffic policy/route timeout settings, not outlierDetection. Option D (weight) is a load-balancer or subset routing field (e.g., in DestinationRule subsets or HTTP route destination weights), not an outlierDetection setting.

160
MCQmedium

Which of the following is true regarding PeerAuthentication and sidecar-less ambient mode?

A.It requires manual certificate rotation.
B.It only works with sidecar proxies.
C.PeerAuthentication is not supported in ambient mode.
D.It is enforced by the ztunnel on the node.
AnswerD

In ambient mode without sidecars, mTLS and authorisation are handled by the node-level ztunnel proxy rather than per-pod Envoy sidecars. PeerAuthentication policies are therefore enforced by the ztunnel, which terminates and originates the workload traffic on behalf of each pod.

Why this answer

PeerAuthentication applies to the ztunnel in ambient mode to enforce mTLS for traffic between nodes.

161
MCQmedium

If you want to perform traffic shadowing, which field do you use?

A.redirect
B.weight
C.fault
D.mirror
AnswerD

The mirror field in a VirtualService duplicates live traffic to a shadow destination while the primary response is returned to the caller. This satisfies traffic shadowing, letting you test a new version with real requests without affecting production responses.

Why this answer

The mirror field in a VirtualService enables traffic shadowing.

162
MCQmedium

Which field in the VirtualService allows you to redirect an incoming request to a different path?

A.rewrite
B.mirror
C.redirect
D.match
AnswerC

The redirect field in an HTTP route rewrites the request to a different URI or authority, returning a 301 by default. This satisfies the stem's path-redirection requirement, unlike rewrite, which forwards to the destination while altering the path.

Why this answer

The 'redirect' field in the VirtualService route allows for URI or authority redirection.

163
MCQmedium

Which field in VirtualService is used for A/B testing?

A.redirect
B.weight
C.match
D.subset
AnswerB

The weight field under an HTTP route destination splits traffic proportionally between subsets, so assigning unequal weights (for example 90/10) sends a controlled share to a canary version. This satisfies the A/B testing requirement by enabling gradual, measurable traffic distribution across versions.

Why this answer

The weight field is used to split traffic between versions (subsets) for A/B testing.

164
MCQmedium

You want to enforce mTLS globally for all services in the cluster. Which resource should you apply?

A.ServiceEntry
B.PeerAuthentication
C.AuthorizationPolicy
D.DestinationRule
AnswerB

PeerAuthentication is the mesh-wide resource governing how sidecars receive and require mTLS. Applying one in the root namespace without a selector sets the mesh-wide default to STRICT, enforcing mutual TLS for every workload in the cluster.

Why this answer

PeerAuthentication at the root namespace (istio-system) enforces global mTLS.

165
MCQmedium

You want to force all traffic to an external service to go through an EgressGateway. What is required?

A.Only a ServiceEntry.
B.A PeerAuthentication policy.
C.A ServiceEntry for the host and a VirtualService to direct traffic to the egress gateway.
D.Only an EgressGateway.
AnswerC

A ServiceEntry registers the external host in the mesh registry, while a VirtualService routes matching traffic to the egress gateway. Together they satisfy the requirement that all outbound traffic to that external service passes through the EgressGateway.

Why this answer

A ServiceEntry to register the external host, and a VirtualService to route that traffic to the EgressGateway.

166
Multi-Selectmedium

Which THREE settings are part of the 'outlierDetection' configuration in a DestinationRule?

Select 3 answers
A.interval
B.baseEjectionTime
C.requestRetryCount
D.maxConnectionTimeout
E.consecutive5xxErrors
AnswersA, B, E

In `outlierDetection`, `interval` sets how often Envoy scans each host's ejection status, satisfying the requirement for a timing parameter governing consecutive failure evaluation. It works alongside `consecutiveErrors` and `baseEjectionTime`; without it, ejection checks would lack a defined polling cadence, so it belongs among the three valid settings.

Why this answer

In Istio's DestinationRule, the outlierDetection block configures passive health checking (circuit breaking) that ejects unhealthy hosts from the load-balancing pool. Option A, interval, is correct because it defines the time interval between ejection sweep analyses of the hosts (e.g., 10s), controlling how often the outlier detection scan runs. Option B, baseEjectionTime, is correct because it specifies the minimum ejection duration for an outlier host, and the actual ejection time is multiplied by the number of times the host has been ejected.

Option E, consecutive5xxErrors, is correct because it is the threshold of consecutive 5xx errors a host must return before it is ejected from the pool. Option C, requestRetryCount, is not part of outlierDetection; retry behavior is configured under the DestinationRule's trafficPolicy retries or the VirtualService retries block. Option D, maxConnectionTimeout, is not a valid outlierDetection field; connection pool timeouts are configured under connectionPool.tcp (e.g., connectTimeout) in the DestinationRule.

Exam trap

ICA often tests the distinction between outlier detection fields and other DestinationRule settings like connection pool or retry policies, so candidates must memorize the exact field names under 'outlierDetection'.

167
Multi-Selecthard

What information can you get from 'istioctl proxy-config'? (Choose THREE)

Select 3 answers
A.virtualservices
B.deployments
C.clusters
D.endpoints
E.routes
AnswersC, D, E

The clusters subcommand lists the upstream clusters Envoy knows about, showing the services and subsets the proxy can route to. This reveals the proxy's configured backends, which is one of the three information types requested.

Why this answer

The `istioctl proxy-config` command (often abbreviated `pc`) inspects the Envoy sidecar configuration generated for a specific workload, and its subcommands map directly to Envoy's xDS configuration sections. Option C (clusters) is correct because `istioctl proxy-config clusters` lists the upstream clusters Envoy knows about, including the service and subset clusters derived from Istio's service registry. Option D (endpoints) is correct because `istioctl proxy-config endpoints` shows the load-balancing endpoints (host:port members) that back each cluster, i.e., the resolved instances of a service.

Option E (routes) is correct because `istioctl proxy-config routes` dumps the route configurations (virtual hosts and route rules) that Envoy uses to match and forward traffic. Options A (virtualservices) and B (deployments) are not part of `proxy-config`: VirtualService is an Istio Kubernetes CRD inspected with `kubectl get virtualservice` or `istioctl analyze`, and Deployments are Kubernetes workload objects retrieved with `kubectl get deployments`, neither of which reflects Envoy's runtime proxy configuration.

168
MCQeasy

What is the standard path to install istioctl?

A.apt-get
B.kubectl plugin
C.Binary download
D.npm install
AnswerC

Downloading the istioctl binary directly from the Istio release page places the CLI on the local machine, which is the documented standard installation method. Package managers and Helm charts install the control plane, not the istioctl client tool itself.

Why this answer

Downloading the binary from the Istio release page is the standard method.

169
MCQeasy

A team wants to enable sidecar injection for a specific namespace without modifying the deployment manifests. What is the most efficient way to achieve this?

A.istioctl inject -n <namespace>
B.kubectl apply -f sidecar-injector.yaml
C.kubectl label namespace <name> istio-injection=enabled
D.kubectl annotate namespace <name> istio-injection=enabled
AnswerC

Labelling the namespace with `istio-injection=enabled` triggers Istio's mutating admission webhook, which automatically injects the sidecar proxy into every pod created there. This satisfies the stem's constraint of enabling injection without editing deployment manifests, since the injection happens at pod admission rather than in the workload definition.

Why this answer

The most efficient way to enable sidecar injection for a namespace without modifying deployment manifests is to label the namespace with istio-injection=enabled. Istio's mutating webhook checks this label when pods are created and automatically injects the sidecar container. This is a namespace-level configuration that requires no changes to individual workloads.

Exam trap

ICA often tests the difference between labels and annotations for sidecar injection, so candidates must remember that namespace-level automatic injection uses the istio-injection=enabled label, not an annotation, and that istioctl does not enable namespace-wide injection.

How to eliminate wrong answers

Option A is wrong because 'istioctl inject' is not a valid command for enabling namespace-wide injection — istioctl has commands like 'istioctl kube-inject' for manual injection, but it does not enable automatic injection for a namespace. Option B is wrong because applying a sidecar-injector.yaml file is not the standard method; the sidecar injector is configured via the mutating webhook and namespace labels, not by applying a separate YAML. Option D is wrong because the correct mechanism is a label, not an annotation — while annotations like sidecar.istio.io/inject can be used on pods, the namespace-level switch is the istio-injection label, and using an annotation on the namespace does not trigger automatic injection.

170
MCQhard

A production mesh shows intermittent 503 responses from one service. You suspect the sidecar's circuit breaker is tripping. You need to confirm which outlier-detection and connection-pool settings are active for that destination. Which Istio resource holds these settings, and how do you inspect them at runtime?

A.VirtualService holds them; inspect with istioctl proxy-config route for the destination's host.
B.Gateway holds them; inspect with istioctl proxy-config listener on the ingress gateway pod.
C.PeerAuthentication holds them; inspect with istioctl authn tls-check for the destination workload.
D.DestinationRule holds them; inspect the generated Envoy config with istioctl proxy-config cluster for the destination.
AnswerD

DestinationRule is where trafficPolicy defines connectionPool limits and outlierDetection for a destination. To confirm what the proxy actually enforces, istioctl proxy-config cluster shows the Envoy cluster's circuit breaker and outlier detection fields derived from that resource. This combination directly answers which settings are active and is the standard diagnostic path for suspected breaker trips.

Why this answer

Connection pool limits and outlier detection are declared under a DestinationRule's trafficPolicy for a given host. The sidecar translates those into Envoy cluster settings, so istioctl proxy-config cluster is the authoritative way to see the effective circuit breaker thresholds on the proxy. Together they let you confirm whether the intermittent 503s stem from active breaker or pool limits.

Exam trap

The trap here is looking at VirtualService routes or PeerAuthentication for circuit breaking, when those settings belong to DestinationRule clusters.

171
MCQhard

Why might a 'RequestAuthentication' policy fail to validate a JWT even if the issuer is correct?

A.The proxy cannot reach the JWKS URI.
B.The pod is missing a sidecar.
C.The namespace is missing.
D.The JWT is too long.
AnswerA

RequestAuthentication validates the JWT signature by fetching signing keys from the issuer's JWKS URI. If the proxy cannot reach that endpoint, key retrieval fails and signature verification cannot complete, so the token is rejected even though the issuer claim itself is correct.

Why this answer

A RequestAuthentication policy in Istio validates JWTs by fetching the JSON Web Key Set (JWKS) from the issuer's specified JWKS URI. If the proxy cannot reach that URI (due to network policies, DNS failures, or the endpoint being down), it cannot retrieve the public keys needed to verify the token's signature, causing validation to fail even when the issuer claim is correct. This is a common operational issue in service meshes where egress restrictions or misconfigured service entries block access to external identity providers.

Exam trap

ICA often tests the assumption that JWT validation failures are always due to incorrect issuer or audience claims, but the actual trap is overlooking network connectivity to the JWKS endpoint, which is a frequent real-world cause.

How to eliminate wrong answers

Option B is wrong because a missing sidecar would prevent the policy from being applied at all, but the question states the policy is failing to validate, implying the sidecar is present and the policy is active. Option C is wrong because a missing namespace would cause the policy to not exist or be misapplied, not a JWT validation failure with a correct issuer. Option D is wrong because JWT length is not a validation criterion; tokens can be large, and Istio does not reject them based on size alone.

172
MCQmedium

When configuring a retry policy for a VirtualService, which parameter defines the maximum time allowed for a single attempt?

A.perTryTimeout
B.timeout
C.maxRetries
D.retryOn
AnswerA

`perTryTimeout` caps the duration of each individual retry attempt, satisfying the stem's requirement for a single-attempt limit. It differs from `timeout`, which bounds the entire request lifecycle including all retries. Setting `perTryTimeout` ensures a slow attempt is abandoned before consuming the overall VirtualService deadline.

Why this answer

The perTryTimeout field controls the duration for an individual attempt within a retry policy.

173
MCQeasy

What is the default behavior of Istio when no AuthorizationPolicy is present for a workload?

A.Allow only traffic within the same namespace.
B.Deny all traffic.
C.Require mTLS for all traffic.
D.Allow all traffic.
AnswerD

With no AuthorizationPolicy bound to a workload, Istio's default posture is permissive: requests reaching the sidecar are forwarded without authorisation checks. This satisfies the stem's "no policy present" constraint, since enforcement only activates once a policy selects the workload. Traffic is therefore allowed by default.

Why this answer

By default, Istio allows all traffic (PERMISSIVE/ALLOW ALL) unless an explicit policy is defined.

174
MCQmedium

Your organization runs multiple Istio revisions side-by-side to support a canary upgrade. You have installed revision "1-20-0" and revision "1-21-0". A new namespace, "payments", must have its pods injected with sidecars from revision "1-21-0" only, while other namespaces continue using the default revision. Which label should you apply to the "payments" namespace?

A.istio.io/rev=1-21-0
B.istio.io/rev=default
C.istio-injection=enabled
D.sidecar.istio.io/inject=true
AnswerA

The label istio.io/rev=1-21-0 instructs the sidecar injector to use the control plane revision named 1-21-0 for pods in the payments namespace. This is the documented mechanism for revision-based injection and works alongside MutatingWebhookConfiguration entries that the injector creates for each revision. It allows simultaneous revisions in the same cluster without affecting other namespaces.

Why this answer

In a multi-revision installation, the istio.io/rev label on a namespace selects the control plane revision used for sidecar injection. Setting it to the exact revision name 1-21-0 ensures that payments pods are injected with the 1-21-0 sidecar regardless of the mesh default. The istio-injection label and inject annotations do not specify a revision, so they cannot satisfy the requirement.

Exam trap

The trap here is assuming that istio-injection=enabled always means the newest revision, when it actually selects the default revision, which may be an older one during a canary upgrade.

175
MCQeasy

You need to expose an application running in the mesh to traffic from outside the cluster. Which resource is required to define the entry point?

A.ServiceEntry
B.Gateway
C.VirtualService
D.DestinationRule
AnswerB

Gateway configures a standalone Envoy at the mesh edge, opening the listener ports and hosts that admit external traffic. This satisfies the constraint of defining the entry point, since inbound requests must match the Gateway's servers before a VirtualService can bind and route them.

Why this answer

In Istio, a Gateway resource configures the Envoy proxy at the edge of the mesh to accept inbound traffic on specified ports and protocols (HTTP, HTTPS, TCP, etc.). It is the required entry point definition that binds a load balancer or ingress IP to the mesh, and it is then referenced by a VirtualService to route traffic to internal services. Without a Gateway, external traffic has no defined listener to enter the mesh.

Exam trap

The trap here is confusing egress-side resources (ServiceEntry) with ingress-side resources (Gateway), since both are Istio CRDs that deal with 'external' traffic but in opposite directions.

How to eliminate wrong answers

Option A is wrong because ServiceEntry is used to register external (out-of-mesh) services into Istio's internal service registry so mesh workloads can reach them — it governs egress, not ingress. Option C is wrong because VirtualService defines routing rules (hosts, match conditions, destinations) but must be bound to a Gateway or sidecar to take effect; it does not itself open an entry point. Option D is wrong because DestinationRule configures traffic policy after routing decisions are made — load balancing, connection pool, outlier detection, TLS origination — and has no role in exposing services externally.

176
Multi-Selecthard

Which TWO parameters affect the 'aggressiveness' of Outlier Detection?

Select 2 answers
A.baseEjectionTime
B.minHealthPercent
C.interval
D.consecutive5xx
E.maxEjectionPercent
AnswersC, D

Shorter interval = faster checks.

Why this answer

A short interval and a low consecutive error threshold make the system more aggressive.

177
Multi-Selectmedium

Which TWO actions can be taken via the 'istioctl' command to debug mesh health?

Select 2 answers
A.istioctl delete pod
B.istioctl monitor
C.istioctl update mesh
D.istioctl analyze
E.istioctl proxy-config
AnswersD, E

`istioctl analyze` inspects live cluster configuration and reports misconfigurations, such as conflicting virtual services or missing sidecars, that degrade mesh health. It satisfies the debugging constraint by surfacing actionable diagnostics without requiring traffic capture, unlike proxy-level tools such as `istioctl proxy-config`.

Why this answer

Option D, 'istioctl analyze', is correct because it statically inspects the mesh configuration (Istio resources, namespaces, and optionally live cluster state) and reports potential misconfigurations, warnings, and errors that affect mesh health. Option E, 'istioctl proxy-config', is correct because it queries the Envoy configuration of a specific sidecar or gateway (for example, clusters, listeners, routes, endpoints, and bootstrap) to diagnose traffic-routing and connectivity problems in the mesh. The other options are not valid istioctl debugging actions: 'istioctl delete pod' (A) is not an istioctl subcommand for deleting pods, 'istioctl monitor' (B) is not a supported istioctl command for mesh health monitoring, and 'istioctl update mesh' (C) is not a valid istioctl command for updating mesh configuration.

178
MCQeasy

Which component is responsible for enforcing traffic policies in the data plane?

A.Envoy proxy
B.Ingress Gateway
C.istiod
D.Kiali
AnswerA

Envoy sidecars and gateways intercept every request and apply the pushed listener, route and filter rules, including mTLS and authorization checks. This satisfies the constraint because policy enforcement occurs at the proxy, not in istiod, which only distributes configuration.

Why this answer

The Envoy proxy (injected as a sidecar) handles all data plane traffic management.

179
MCQmedium

You have a namespace 'finance' where all traffic must be encrypted using mutual TLS. You apply a PeerAuthentication policy with 'mode: STRICT' at the namespace scope. A developer reports that a legacy service in the same namespace is failing to communicate. What is the most likely reason?

A.The legacy service is not using an Istio sidecar to handle mTLS handshakes.
B.The Gateway is misconfigured for the legacy service.
C.The DestinationRule for the service is missing the 'mode: ISTIO_MUTUAL' setting.
D.The AuthorizationPolicy is missing a rule for the legacy service.
AnswerA

STRICT mode rejects plaintext traffic, so every workload in the namespace must present a sidecar-managed certificate. A legacy service without an injected sidecar cannot complete the mTLS handshake, since no Envoy proxy terminates TLS on its behalf. The namespace-wide policy therefore blocks it, satisfying the stem's encryption constraint.

Why this answer

A PeerAuthentication policy with mode: STRICT at the namespace scope requires all inbound traffic to workloads in that namespace to use Istio mutual TLS. Only workloads with an Istio sidecar proxy can originate and terminate mTLS, so a legacy service without a sidecar cannot complete the mTLS handshake and its connections fail. The fix is either to inject a sidecar into the legacy service or to use a permissive mode or port-level exception during migration.

Exam trap

ICA often tests the confusion between PeerAuthentication (inbound mTLS mode) and DestinationRule (outbound mTLS settings), tricking candidates into choosing a DestinationRule fix when the real issue is a workload lacking a sidecar under STRICT mode.

How to eliminate wrong answers

Option B is wrong because a Gateway handles ingress traffic at the mesh edge; the failure is between two services inside the same namespace, so the Gateway is not involved in this east-west communication. Option C is wrong because DestinationRule's ISTIO_MUTUAL setting controls outbound mTLS from the client side; the error here is the legacy service's inability to participate in mTLS at all (no sidecar), not a missing client-side DestinationRule setting. Option D is wrong because AuthorizationPolicy governs L7 authorization (who can call what) after mTLS is established; a missing rule would produce a 403 RBAC-style denial, not an mTLS handshake failure.

180
MCQeasy

What is the primary purpose of the 'subset' field in a VirtualService destination?

A.To route to a specific version/label set
B.To specify a namespace
C.To handle failover
D.To limit traffic to one pod
AnswerA

The subset field selects a named subset of a destination's endpoints, defined by labels such as version, so traffic routes only to pods matching that label set. This enables version-specific or canary routing within Istio VirtualService destinations.

Why this answer

The 'subset' field in a VirtualService destination references a named subset defined in a DestinationRule, which is a label selector that identifies a specific version or group of pods (e.g., version: v2). This is how Istio routes traffic to a particular deployment version for canary or blue/green releases.

Exam trap

ICA often tests whether candidates understand the division of labor between VirtualService (routing) and DestinationRule (subsets/policies), and candidates mistakenly think subset specifies a namespace or a single pod.

How to eliminate wrong answers

Option B is wrong because namespaces are specified via the destination's 'host' field using the fully qualified service name (service.namespace.svc.cluster.local), not via subset. Option C is wrong because failover is handled by DestinationRule outlier detection and locality load balancing settings, not by the subset field. Option D is wrong because limiting traffic to a single pod is not what subset does — subset selects a group of pods by label, and even a subset with one matching pod is coincidental, not the purpose.

181
MCQmedium

You want to route traffic to a specific version of a service based on a header. Where do you define the subset?

A.Gateway
B.ServiceEntry
C.VirtualService
D.DestinationRule
AnswerD

DestinationRule defines named subsets by matching pod labels, so header-based routing in the VirtualService can reference a specific version. The subset itself lives in the DestinationRule; the VirtualService only selects it, satisfying the requirement to route by header to one version.

Why this answer

In Istio, a DestinationRule defines the named subsets of a service (for example, v1 and v2) by selecting pods with specific labels. A VirtualService then references those subsets when routing traffic, so the subset definition itself lives in the DestinationRule. This separation lets routing rules (VirtualService) stay decoupled from the actual pod groupings (DestinationRule).

Exam trap

The trap is conflating the VirtualService (which routes to subsets) with the DestinationRule (which defines subsets) — candidates often pick VirtualService because that is where the routing rule is written.

How to eliminate wrong answers

Option A is wrong because a Gateway configures ingress/egress listeners (ports, hosts, TLS) at the edge of the mesh and does not define service subsets. Option B is wrong because a ServiceEntry registers external services into Istio's internal registry so mesh traffic can reach them; it has no subset concept for internal versioning. Option C is wrong because a VirtualService defines the routing rules (match conditions, weights, retries) that reference subsets, but it does not define the subsets themselves — it consumes them.

182
MCQhard

A service is experiencing high latency. You want to implement a circuit breaker to prevent cascading failures. Which resource do you use?

A.Gateway
B.DestinationRule
C.VirtualService
D.EnvoyFilter
AnswerB

DestinationRule defines traffic policies for a service, including outlier detection, which ejects unhealthy hosts and implements circuit breaking. This satisfies the requirement to prevent cascading failures during high latency by limiting traffic to failing endpoints, unlike VirtualService, which handles routing rules rather than health-based ejection.

Why this answer

DestinationRule allows the configuration of traffic policies including circuit breaking via the outlierDetection field.

183
MCQmedium

How can you restrict traffic to a service based on the presence of a specific request header?

A.Use the 'from' field.
B.Use an EnvFilter.
C.Use the 'to' field.
D.Use the 'when' field with 'request.headers'.
AnswerD

The 'when' field in an authorization policy accepts conditions evaluated against request attributes, and 'request.headers' exposes individual header values for matching. This lets you permit or deny traffic only when the named header is present, satisfying the requirement to restrict access based on a specific request header.

Why this answer

In Istio's AuthorizationPolicy, the 'when' field defines additional conditions that must be satisfied for the rule to apply, and 'request.headers' is a supported attribute key. Using 'when' with 'request.headers["X-Custom"]' matching a specific value restricts traffic based on the presence or value of a request header.

Exam trap

The trap here is confusing the three AuthorizationPolicy matching sections — candidates often pick 'from' or 'to' because they sound like they match request attributes, but only 'when' supports header-based conditions.

How to eliminate wrong answers

Option A is wrong because the 'from' field specifies the source of the request (principals, namespaces, IP blocks) — it does not match request headers. Option B is wrong because EnvFilter is an Envoy logging configuration concept, not an Istio authorization condition. Option C is wrong because the 'to' field specifies the destination (methods, paths, ports) of the request, not headers.

184
MCQmedium

You have a service that occasionally hangs. You want to ensure that if a request takes longer than 2 seconds, it fails immediately. Which field do you configure?

A.delay
B.maxConnections
C.maxRetries
D.timeout
AnswerD

Configuring the timeout field enforces the 2-second limit, causing the request to fail immediately once that duration elapses. This directly satisfies the stem's constraint of aborting slow or hanging requests rather than letting them continue indefinitely, which is exactly the behaviour required for the occasionally hanging service.

Why this answer

In Istio's traffic management API, the timeout field on an HTTP route specifies how long a request may take before Envoy aborts it and returns a 504. Setting timeout: 2s on the route ensures any request exceeding two seconds fails immediately rather than hanging. This is the correct knob for bounding request latency at the mesh layer.

Exam trap

ICA often tests the confusion between fault-injection fields (delay, abort) and resilience fields (timeout, retries), since both appear in VirtualService HTTP route specs.

How to eliminate wrong answers

Option A is wrong because delay injects a fixed latency into a percentage of requests for fault-injection testing — it adds time, it does not cap it. Option B is wrong because maxConnections is a DestinationRule connection-pool setting that limits concurrent TCP connections to an upstream, not request duration. Option C is wrong because maxRetries controls how many times Envoy retries a failed request, which can actually extend total latency rather than fail fast.

185
MCQhard

You have an external service 'legacy-db' outside the mesh. You want to allow access to it from 'webapp' while ensuring 'webapp' presents a valid certificate. How is this achieved?

A.Apply a RequestAuthentication policy.
B.Configure an Egress Gateway and use a DestinationRule with client-side mTLS certificates.
C.Configure an Ingress Gateway.
D.Use a PeerAuthentication policy on the external service.
AnswerB

Egress Gateways can handle mTLS termination/origination for external traffic.

Why this answer

You must use an Egress Gateway with mTLS configured to the external service.

186
MCQmedium

What is the default behavior when no VirtualService is defined for a service?

A.Round-robin routing
B.Traffic is dropped
C.503 error
D.Traffic is blocked
AnswerA

Without a VirtualService, Istio's sidecar proxies fall back to Envoy's native load-balancing across all endpoints discovered for the service, defaulting to round-robin distribution. No layer-7 traffic rules are applied, so routing remains at layer 4 with equal weighting per healthy endpoint, satisfying the scenario's absence of any defined VirtualService.

Why this answer

In Istio, when a Kubernetes Service has no VirtualService attached, the sidecar proxies fall back to Envoy's default load-balancing behavior, which is round-robin across the healthy endpoints discovered via the service registry (Pilot/xDS). No routing rules means no traffic manipulation — the request simply flows to the next endpoint in rotation. This is the baseline behavior before any Istio traffic management is layered on.

Exam trap

ICA often tests the misconception that Istio intercepts and blocks traffic by default — candidates confuse 'no VirtualService' with 'no routing,' when in reality Envoy applies its native round-robin default.

How to eliminate wrong answers

Option B is wrong because traffic is never dropped by default — Istio's data plane only drops traffic when an explicit fault injection, authorization denial, or misconfigured route is applied. Option C is wrong because a 503 is returned only when there are no healthy upstream endpoints or when a route explicitly returns an error (e.g., fault.abort with HTTP 503), not as a default. Option D is wrong because blocking traffic requires an explicit AuthorizationPolicy or PeerAuthentication STRICT mode misconfiguration, not the absence of a VirtualService.

187
MCQeasy

You need to route 10% of traffic to a new version of your service. Which object do you configure?

A.VirtualService
B.DestinationRule
C.ServiceEntry
D.Gateway
AnswerA

Istio splits traffic through VirtualService routing rules, where weighted destinations distribute percentages across subsets. Configuring a 90/10 weight split in the VirtualService's HTTP route satisfies the requirement to send 10% of traffic to the new version.

Why this answer

VirtualService allows weight-based routing to different subsets.

188
MCQeasy

A developer needs to expose an internal service to external clients through the Istio ingress gateway on port 443 using TLS termination at the gateway. The service listens on port 80 inside the mesh. Which pairing of resources is required?

A.A Gateway with servers.port 80 and a VirtualService that adds a tls block with mode SIMPLE and the certificate secret.
B.A VirtualService with tls.match.sniHosts on port 443 and a ServiceEntry that maps the external host to the internal service.
C.A Gateway with servers.port 443 and tls.mode PASSTHROUGH, plus a DestinationRule that terminates TLS for the service.
D.A Gateway with servers.port 443 and tls.mode SIMPLE referencing a secret, plus a VirtualService bound to that Gateway routing to the service on port 80.
AnswerD

The Gateway defines the ingress listener on port 443 with TLS termination via tls.mode SIMPLE and a referenced certificate secret, while the VirtualService binds to that Gateway using the gateways field and routes to the internal service on port 80. This is the standard ingress pattern for terminating TLS at the gateway. Both resources are required and must reference each other correctly.

Why this answer

External HTTPS exposure with termination at the ingress gateway requires a Gateway listener on port 443 whose tls block uses SIMPLE mode with a certificate secret, paired with a VirtualService that binds to that Gateway and routes to the internal service port. The Gateway opens and secures the listener, and the VirtualService supplies the routing rules. Neither resource alone completes the configuration, and TLS termination settings must live on the Gateway.

Exam trap

The trap here is placing TLS termination settings on the VirtualService, when certificate and TLS mode configuration belongs on the Gateway listener.

189
MCQmedium

How can you restrict a service to only accept requests from users authenticated via a specific JWT issuer?

A.Only DestinationRule.
B.Only ServiceEntry.
C.Only PeerAuthentication.
D.RequestAuthentication for issuer, then AuthorizationPolicy to verify.
AnswerD

RequestAuthentication validates the JWT against the specified issuer, while AuthorizationPolicy enforces that only requests carrying a token from that issuer are permitted. Together they satisfy the constraint of restricting the service to a single trusted JWT issuer.

Why this answer

You define a RequestAuthentication policy that specifies the trusted issuer, and then use an AuthorizationPolicy that checks for the 'request.auth.claims[iss]' claim.

190
MCQmedium

What is the result of applying an AuthorizationPolicy that has no 'action' field?

A.The request is rejected.
B.It defaults to DENY.
C.The policy is invalid.
D.It defaults to ALLOW.
AnswerD

An AuthorizationPolicy without an action field defaults to ALLOW, satisfying the stem's constraint that no explicit action is declared. Istio's authorisation engine treats the absence of an action as permissive, so matching requests pass through. This differs from DENY, which requires explicit specification, making ALLOW the implicit baseline behaviour.

Why this answer

If the action field is missing, it defaults to 'ALLOW', which is the standard behavior in Istio.

191
Multi-Selecteasy

Which TWO of the following are valid fields within a DestinationRule's 'trafficPolicy'?

Select 2 answers
A.retryPolicy
B.virtualHosts
C.faultInjection
D.connectionPool
E.outlierDetection
AnswersD, E

connectionPool is a valid trafficPolicy field, defining TCP connection limits such as maxConnections, connectTimeout and HTTP limits for the destination. It controls how Envoy manages upstream connections, making it a legitimate setting within a DestinationRule's traffic policy.

Why this answer

In Istio's DestinationRule, the trafficPolicy block supports connectionPool (D), which configures TCP/HTTP connection pool limits such as maxConnections, http1MaxPendingRequests, and http2MaxRequests for the destination workloads, and outlierDetection (E), which defines passive health checking via consecutive5xxErrors, interval, and baseEjectionTime to eject unhealthy endpoints. Both are legitimate subfields of trafficPolicy and are applied per destination (or per subset/port override). By contrast, retryPolicy (A) is a field of a VirtualService's HTTP route, not a DestinationRule trafficPolicy. virtualHosts (B) is a top-level field of a VirtualService (and of Envoy route configuration), not part of DestinationRule. faultInjection (C) is also configured in a VirtualService's HTTP route, not in a DestinationRule trafficPolicy.

Exam trap

ICA often tests whether candidates can distinguish DestinationRule (post-routing: connection pools, outlier detection, load balancing) from VirtualService (routing: retries, faults, virtual hosts) — mixing these up is the classic error.

192
MCQhard

You notice that a pod is being ejected by Outlier Detection despite only having occasional errors. How do you increase the interval between ejection scans?

A.Set outlierDetection.interval to a higher value.
B.Disable outlierDetection.
C.Set outlierDetection.baseEjectionTime to a higher value.
D.Set outlierDetection.maxEjectionPercent to a higher value.
E.Set outlierDetection.consecutive5xx to a higher value.
.Set connectionPool.tcp.maxConnections to a lower value.
AnswerA

Increasing the interval makes the detector scan less frequently, reducing the likelihood of premature ejection.

Why this answer

To increase the interval between ejection scans in Istio's outlier detection, you set 'outlierDetection.interval' to a higher value. This field controls how often the ejection scan occurs. Increasing it reduces the frequency of scans, thus increasing the interval.

Exam trap

ICA often tests the specific fields of outlier detection, and candidates may confuse 'interval' with 'baseEjectionTime' or 'consecutive5xx', leading to wrong adjustments.

How to eliminate wrong answers

Option B is wrong because disabling outlier detection would stop ejections entirely, not just increase the interval. Option C is wrong because 'baseEjectionTime' controls how long a host is ejected, not the scan interval. Option D is wrong because 'maxEjectionPercent' limits the maximum percentage of hosts that can be ejected, not the scan frequency.

Option E is wrong because 'consecutive5xx' sets the number of consecutive 5xx errors before ejection, not the scan interval. Option F is wrong because 'connectionPool.tcp.maxConnections' limits TCP connections, unrelated to ejection scans.

193
MCQmedium

Which Istio component handles the generation of xDS configuration?

A.istiod
B.Kiali
C.Envoy
D.Prometheus
AnswerA

istiod is the control plane's unified binary; it runs the Pilot component, which watches Kubernetes services and Istio configuration, then generates and pushes the xDS configuration (CDS, EDS, LDS, RDS) to Envoy sidecars. No other component performs this translation.

Why this answer

Istiod is the monolithic control plane component that computes the configuration for all sidecars.

194
MCQeasy

You are installing Istio for a development cluster and want to use a predefined configuration that includes the core components but disables unnecessary features like telemetry to save resources. Which profile should you choose?

A.preview
B.minimal
C.demo
D.default
AnswerB

The minimal profile installs only istiod, the ingress gateway and the istio-cni component, omitting telemetry add-ons such as Prometheus, Grafana and Jaeger. This directly satisfies the requirement to disable unnecessary features and conserve cluster resources in the development environment.

Why this answer

The 'minimal' profile is designed for development and testing environments where only the core Istio control plane components (istiod) are installed, with optional add-ons like telemetry, tracing, and ingress gateways disabled to conserve resources. It provides the essential service mesh functionality without the overhead of observability and traffic management extras. This matches the requirement of a predefined configuration that includes core components but disables unnecessary features like telemetry.

Exam trap

The trap here is confusing the 'demo' profile with the 'minimal' profile, as both are used for non-production environments, but the demo profile includes telemetry and gateways while minimal does not.

How to eliminate wrong answers

Option A is wrong because the 'preview' profile includes experimental features and is intended for testing new capabilities, not for resource-constrained development clusters. Option C is wrong because the 'demo' profile installs a full set of components including telemetry, tracing, and ingress/egress gateways, which consumes more resources and is meant for demonstrations. Option D is wrong because the 'default' profile includes the core components plus istio-ingressgateway and telemetry features, making it heavier than the minimal profile and not aligned with disabling telemetry.

195
MCQhard

You are troubleshooting a production Istio mesh where a critical service is experiencing intermittent 503 errors. You suspect that the Envoy sidecar is rejecting requests due to a misconfiguration in the DestinationRule. Which Istio command would you use to inspect the Envoy configuration for a specific pod to verify the applied outlier detection settings?

A.istioctl proxy-config cluster <pod-name> -n <namespace> -o json
B.istioctl proxy-config route <pod-name> -n <namespace>
C.istioctl proxy-config cluster <pod-name> -n <namespace>
D.istioctl proxy-config listener <pod-name> -n <namespace>
AnswerA

The proxy-config cluster command with the -o json flag outputs the full cluster configuration in JSON format. This includes the outlier detection settings, which are part of the cluster's configuration. By examining the JSON output, you can verify the exact outlier detection parameters applied to the cluster, such as consecutive errors, interval, and ejection percentages. This is the most direct way to inspect those settings.

Why this answer

Outlier detection settings are part of the Envoy cluster configuration. To view them, you need to inspect the cluster configuration in detail. The istioctl proxy-config cluster command with JSON output provides the complete cluster definition, including outlier detection, allowing you to verify if the settings are causing the 503 errors due to unhealthy hosts being ejected.

Exam trap

The trap here is confusing the level at which outlier detection is configured; it is a cluster-level setting, not a listener or route setting.

196
MCQeasy

Which resource is used to configure circuit breaking for a service?

A.PeerAuthentication
B.Gateway
C.VirtualService
D.DestinationRule
E.EnvoyFilter
AnswerD

DestinationRule defines traffic policies for a service, including connection pool limits and outlier detection, which ejects unhealthy hosts to achieve circuit breaking. This satisfies the stem's requirement for the resource that configures circuit breaking, as opposed to routing (VirtualService) or gateway configuration.

Why this answer

DestinationRule is the resource where circuit breaking settings are defined within the trafficPolicy.

197
MCQmedium

You are observing 503 errors. You want to automatically retry failed requests. Where is this configured?

A.ServiceEntry
B.VirtualService
C.DestinationRule
D.Gateway
AnswerB

Retry policies are configured in the VirtualService's HTTP route, where the retries block specifies attempts, perTryTimeout and retryOn conditions. This satisfies automatic retrying of failed requests, including 503 responses, before returning an error to the caller.

Why this answer

Retry behavior for failed requests in Istio is configured in the VirtualService under the HTTP route's retries field. You specify attempts, perTryTimeout, retryOn conditions (e.g., 5xx, gateway-error, connect-failure), and retryRemoteLocalities. This is the correct location because VirtualService controls request routing and resilience policies at the route level.

Exam trap

ICA often tests whether candidates confuse DestinationRule (passive health checks, load balancing, circuit breaking) with VirtualService (routing, retries, timeouts, fault injection), so the trap is picking DestinationRule for retry configuration.

How to eliminate wrong answers

Option A is wrong because ServiceEntry is used to register external services into Istio's service registry so they can be routed to — it does not define retry policies. Option C is wrong because DestinationRule defines traffic policies like load balancing, connection pool settings, and outlier detection (passive health checking), but retries are an active request-level policy handled by VirtualService. Option D is wrong because Gateway configures ingress/egress listeners (ports, hosts, TLS) at the mesh edge and has no retry configuration.

198
MCQeasy

What is the main advantage of using Istio's 'locality-aware load balancing'?

A.It minimizes latency and egress costs by routing to local endpoints.
B.It enables automatic retries.
C.It increases the number of available endpoints.
D.It prevents cross-cluster communication.
AnswerA

Locality-aware load balancing prioritises endpoints within the same zone or region, so requests avoid crossing availability-zone boundaries. This directly reduces round-trip latency and cuts cross-zone egress charges, satisfying the stem's requirement for the main advantage over default round-robin distribution across all healthy endpoints.

Why this answer

It prioritizes traffic to endpoints in the same zone or region to reduce latency and egress costs.

199
MCQhard

You need to enforce a 5-second timeout on all calls to a specific service. Where is this configured?

A.Gateway
B.VirtualService
C.DestinationRule
D.ServiceEntry
AnswerB

VirtualService HTTP route rules carry a timeout field that caps the total duration of a request to the destination, so setting it to 5s enforces the limit. DestinationRule governs connection pooling and outlier detection, not request timeouts.

Why this answer

Timeouts are a property of the route in a VirtualService.

200
MCQmedium

Which field in the DestinationRule allows defining different versions of a service?

A.hosts
B.trafficPolicy
C.subsets
D.loadBalancer
AnswerC

The subsets field in a DestinationRule groups endpoints by label, typically the version label, enabling traffic policies and routing to target distinct service versions. It satisfies the versioning requirement because VirtualService routing rules reference these named subsets to split traffic.

Why this answer

The subsets block in DestinationRule allows grouping pods by label to create versions.

201
MCQeasy

What is the purpose of 'istioctl analyze'?

A.Scale deployments
B.Check proxy version
C.Visualize traffic
D.Identify configuration issues
AnswerD

`istioctl analyze` performs static analysis of Istio configuration, checking YAML resources and live cluster state against known validation rules. It surfaces misconfigurations such as conflicting virtual services, missing gateways, or invalid selectors before they cause runtime failures, satisfying the need to identify configuration issues proactively rather than debugging symptoms after deployment.

Why this answer

To identify configuration issues across the mesh.

202
MCQeasy

What is the default Istio load balancing algorithm?

A.ROUND_ROBIN
B.RANDOM
C.PASSTHROUGH
D.LEAST_CONN
AnswerA

ROUND_ROBIN is Istio's default load balancing algorithm, distributing requests sequentially across healthy endpoints in each locality. This satisfies the stem's constraint of identifying the out-of-the-box behaviour, requiring no DestinationRule traffic policy override. Other algorithms such as LEAST_REQUEST, RANDOM and PASSTHROUGH demand explicit configuration.

Why this answer

ROUND_ROBIN is the default load balancing strategy in Istio.

203
Multi-Selecthard

Which items can be configured under DestinationRule trafficPolicy? (Choose THREE)

Select 3 answers
A.connectionPool
B.rewrite
C.headers
D.outlierDetection
E.loadBalancer
AnswersA, D, E

connectionPool sits within DestinationRule trafficPolicy and defines TCP or HTTP connection limits to an upstream service, including maxConnections, http1MaxPendingRequests and http2MaxRequests. It satisfies the question by being one of the traffic policy fields governing how connections are managed.

Why this answer

In Istio, a DestinationRule's trafficPolicy block governs how traffic is handled after routing has selected a destination, and it explicitly supports connectionPool (A), which sets TCP/HTTP connection limits such as maxConnections, http1MaxPendingRequests, and http2MaxRequests for the destination's sidecar connections. It also supports outlierDetection (D), which implements passive health checking by ejecting unhealthy hosts from the load-balancing pool based on consecutive 5xx errors or gateway failures. loadBalancer (E) is likewise a valid trafficPolicy field, configuring the algorithm (ROUND_ROBIN, LEAST_REQUEST, RANDOM, PASSTHROUGH) and consistent-hash options for distributing requests across the destination's endpoints. By contrast, rewrite (B) and headers (C) are HTTP route-level manipulations that belong to a VirtualService's route rules, not to DestinationRule trafficPolicy, so they are not configurable there.

204
MCQeasy

Which tool would you use to verify if a pod has an active mTLS connection?

A.istioctl proxy-config endpoint <pod-name>
B.istioctl dashboard envoy <pod-name>
C.kubectl get mTLS
D.istioctl proxy-config secret <pod-name>
AnswerD

istioctl proxy-config secret <pod-name> queries the Envoy instance's secret configuration, showing the SDS-delivered certificate, its validity and the CA chain used for mTLS. This satisfies the stem's constraint by confirming the pod holds an active mTLS certificate.

Why this answer

The command `istioctl proxy-config secret <pod-name>` lists the secrets (certificates) loaded in the Envoy sidecar, including the workload's mTLS certificate and the root CA. If mTLS is active, you will see the default or custom certificate with its validity and the ROOTCA. This directly confirms that the sidecar has an mTLS identity and is participating in mutual TLS.

Exam trap

ICA often tests the confusion between commands that show endpoints, stats, or dashboards versus the specific command that reveals the actual mTLS certificate material in the sidecar.

How to eliminate wrong answers

Option A is wrong because `proxy-config endpoint` shows Envoy cluster endpoints and health, not TLS certificate state. Option B is wrong because `istioctl dashboard envoy` opens the Envoy admin UI in a browser; while it can show TLS stats, it is not the direct command to verify mTLS secrets. Option C is wrong because `kubectl get mTLS` is not a valid kubectl resource; there is no mTLS CRD.

205
MCQhard

You have a legacy service that cannot handle mTLS. How can you exclude this specific service from the namespace-wide STRICT mTLS policy?

A.Add an annotation 'sidecar.istio.io/inject: false'.
B.Delete the namespace-wide PeerAuthentication policy.
C.Use an AuthorizationPolicy to allow plaintext traffic.
D.Apply a PeerAuthentication with mode: PERMISSIVE using a selector that targets the legacy service.
AnswerD

A PeerAuthentication with mode PERMISSIVE and a workload selector overrides the namespace-wide STRICT policy for that specific workload only, allowing plaintext alongside mTLS. The legacy service, unable to present certificates, can then communicate while the rest of the namespace remains strict.

Why this answer

You can apply a PeerAuthentication policy at the workload level (using 'selector') to override the namespace-wide policy.

206
MCQmedium

What happens when a circuit breaker trips?

A.The service is deleted.
B.Traffic is no longer sent to the instance.
C.All traffic is redirected to a static page.
D.The entire mesh is shut down.
E.The pod is restarted.
AnswerB

When the outlier detection thresholds are breached, the circuit breaker ejects the unhealthy endpoint from the load-balancing pool. Envoy then stops routing new requests to that instance, giving it time to recover while traffic flows to remaining healthy endpoints.

Why this answer

The circuit breaker stops sending traffic to the unhealthy host, protecting the system from overload.

207
MCQmedium

Which component is responsible for the actual enforcement of circuit breaking and fault injection?

A.Kubernetes API Server
B.Istiod
C.Envoy proxy
D.Prometheus
E.Ingress Gateway
AnswerC

Envoy sidecar proxies enforce circuit breaking and fault injection at the data plane, applying the outlier detection and abort or delay rules configured in Istio resources. Istiod only distributes configuration; the actual traffic manipulation happens inside Envoy.

Why this answer

The Envoy proxy (sidecar) performs the enforcement based on the configuration pushed by Istiod.

208
MCQmedium

You are configuring a RequestAuthentication policy for a workload that must accept JWTs from two different issuers: 'https://accounts.google.com' and 'https://auth.example.com'. Each issuer uses a different JWKS endpoint. Which configuration correctly validates tokens from both issuers?

A.Use a single RequestAuthentication with one jwtRules entry and set the jwksUri to a URL that aggregates both issuers' JWKS.
B.Create a RequestAuthentication with two jwtRules entries, each specifying its own issuer and jwksUri.
C.Create two separate RequestAuthentication policies in the same namespace, one for each issuer, and rely on Istio to merge them.
D.Create a single RequestAuthentication with one jwtRules entry that lists both issuers in the issuer field and both JWKS URIs in jwksUri.
AnswerB

RequestAuthentication supports an array of jwtRules, and each rule can define a distinct issuer and jwksUri. Istio will attempt to validate an incoming JWT against all configured rules, accepting the token if it matches any rule. This is the correct way to support multiple issuers with different key sets.

Why this answer

RequestAuthentication's jwtRules is a list, and each element can specify a different issuer and jwksUri. Istio validates an incoming JWT against each rule and accepts it if any rule matches. This allows a workload to trust tokens from multiple identity providers without custom aggregation or multiple policies.

The policy must be a single resource selecting the workload.

Exam trap

The trap here is assuming that RequestAuthentication can only handle one issuer or that multiple policies can be merged; in fact, a single policy supports multiple jwtRules.

209
MCQeasy

Where do you define the connection pool settings for a service?

A.Gateway
B.VirtualService
C.ServiceEntry
D.Sidecar
E.DestinationRule
AnswerE

DestinationRule defines traffic policy for a service after routing, and its connectionPool block specifies TCP and HTTP limits such as maxConnections and http1MaxPendingRequests. This satisfies the stem's requirement to configure connection pool settings per service, unlike VirtualService, which handles routing rules rather than pool limits.

Why this answer

Connection pool settings are part of the trafficPolicy within a DestinationRule.

210
MCQmedium

Which tool allows you to perform traffic shifting between two versions of a service?

A.PeerAuthentication
B.Gateway
C.VirtualService
D.DestinationRule
AnswerC

VirtualService resources in Istio route traffic by matching request attributes and splitting weights across destination subsets, enabling controlled traffic shifting between two service versions. This satisfies the stem's requirement for gradual, percentage-based canary rollouts without redeploying workloads.

Why this answer

A VirtualService is used to define traffic weights for different subsets (versions) defined in a DestinationRule.

211
Multi-Selectmedium

Which TWO mechanisms are used to secure traffic within the mesh?

Select 2 answers
A.Gateway
B.PeerAuthentication
C.VirtualService
D.ServiceEntry
E.AuthorizationPolicy
AnswersB, E

PeerAuthentication enforces mutual TLS between sidecars, encrypting all service-to-service traffic inside the mesh. This directly satisfies the stem's requirement for securing intra-mesh traffic, since Istio's data plane authenticates both ends of every connection using workload identities issued by the mesh's certificate authority.

Why this answer

In Istio, PeerAuthentication is the correct mechanism for securing traffic within the mesh because it defines the mutual TLS (mTLS) mode (STRICT, PERMISSIVE, DISABLE) that governs how workloads authenticate each other's identities at the transport level. AuthorizationPolicy is also correct because it enforces access control on in-mesh traffic, deciding which identities (derived from mTLS) may perform which operations on which workloads. Together, PeerAuthentication establishes the cryptographic identity and encryption for service-to-service communication, while AuthorizationPolicy uses that identity to allow or deny requests inside the mesh.

Gateway is not correct here because it manages ingress/egress traffic at the mesh edge, not intra-mesh security. VirtualService is not correct because it handles routing rules such as traffic splitting and retries, not security. ServiceEntry is not correct because it registers external services into the mesh registry, which is a service-discovery concern rather than a security mechanism.

212
MCQhard

In OutlierDetection, what is the effect of setting 'maxEjectionPercent' to 0?

A.It makes the ejection time infinite.
B.It forces all hosts to be healthy.
C.It ejects hosts immediately.
D.It disables outlier detection.
E.It ejects all hosts.
AnswerD

maxEjectionPercent caps the share of endpoints that may be ejected from a load-balancing pool. Setting it to 0 permits no endpoints to be removed, so outlier detection effectively stops ejecting hosts and the feature is disabled.

Why this answer

Setting this to 0 effectively disables outlier detection, as no hosts can be ejected.

213
MCQhard

You have a requirement to use a custom JWT claim to authorize users. How can you map this claim in an 'AuthorizationPolicy'?

A.Use the 'when' field with 'key: request.auth.claims[custom-claim]' and 'values' to match.
B.Use the 'principals' field.
C.Use the 'from' field in the 'source' object.
D.Use an 'EnvoyFilter' because AuthorizationPolicy does not support claims.
AnswerA

The 'when' condition with key request.auth.claims[custom-claim] matches the validated JWT claim against the listed values, so the policy allows or denies based on that claim. This satisfies the stem's constraint of authorising users via a custom JWT claim.

Why this answer

AuthorizationPolicy supports 'when' conditions to evaluate JWT claims using the 'request.auth.claims' key.

214
MCQeasy

Which tool provides a GUI for visualizing your traffic management rules?

A.Prometheus
B.Grafana
C.Kiali
D.istioctl
AnswerC

Kiali is the Istio console that renders the service mesh topology and traffic-management rules graphically, satisfying the stem's GUI visualisation requirement. It reads Istio configuration directly, showing virtual services, destination rules and their routing relationships.

Why this answer

Kiali is the standard visualization tool for Istio.

215
MCQmedium

You are preparing to upgrade Istio from version 1.18 to 1.19 in a production cluster using the canary upgrade method. You have deployed a new istiod revision named '1-19-0' and relabeled a test namespace with 'istio.io/rev=1-19-0'. After verifying that the test namespace's sidecars are injected with the new revision, you want to migrate the remaining application namespaces without causing downtime. Which step should you perform next?

A.Delete the old istiod deployment and wait for the new istiod to take over automatically.
B.Change the 'istio.io/rev' label on each application namespace to '1-19-0' and restart the pods.
C.Restart all pods in the application namespaces to trigger re-injection with the new revision.
D.Update the 'istio-injection' label on each application namespace to 'enabled' and restart the pods.
AnswerB

To migrate a namespace to the new revision, you update the 'istio.io/rev' label to the new revision name and then restart the pods so they are re-injected with the new sidecar. This is the documented canary upgrade procedure. It ensures the new sidecar is used without disrupting the entire mesh at once.

Why this answer

In a canary upgrade, namespaces are migrated one at a time by updating the 'istio.io/rev' label to the new revision and restarting pods. This triggers re-injection with the new sidecar while the old revision remains available for other namespaces. The label must be changed before restarting; otherwise pods retain the old sidecar.

Exam trap

The trap here is confusing the 'istio-injection' label with the 'istio.io/rev' label, or assuming that restarting pods alone will pick up the new revision without relabeling the namespace.

216
MCQmedium

You are running an Istio mesh with several clusters. You need to ensure that all outbound traffic from the mesh to external services is visible and controlled. You have already configured a ServiceEntry for an external API at api.external.com. However, you notice that traffic to this API is not being logged in Kiali and no telemetry is collected. What is the most likely cause?

A.The ServiceEntry is not exported to the namespace where the client pod resides, so the sidecar does not apply the configuration.
B.The ServiceEntry is defined in a namespace that does not have the istio-injection=enabled label, so sidecars are not injected.
C.The sidecar proxies are not intercepting outbound traffic to external services because the mesh's outboundTrafficPolicy is set to ALLOW_ANY.
D.The ServiceEntry is missing the resolution: DNS field, so Istio cannot resolve the external service.
AnswerA

ServiceEntry resources have an exportTo field that controls which namespaces can see them. By default, they are exported to all namespaces (exportTo: *), but if it is set to a specific namespace or '.', only that namespace can use it. If the client pod is in a different namespace and the ServiceEntry is not exported there, the sidecar will not have the necessary configuration to route and collect telemetry for that external service, resulting in no logs or metrics.

Why this answer

ServiceEntry resources are namespace-scoped but can be exported to other namespaces using the exportTo field. If a client pod is in a namespace that does not have access to the ServiceEntry, its sidecar will not have the routing configuration, and traffic to the external service will not be captured or logged. Ensuring proper export settings is crucial for mesh-wide visibility.

Exam trap

The trap here is assuming that ServiceEntry automatically applies to all namespaces without considering the exportTo field, which can restrict visibility.

217
MCQeasy

In a multi-tenancy setup, which Istio resource should you use to restrict which namespaces a sidecar can see?

A.DestinationRule
B.VirtualService
C.PeerAuthentication
D.Sidecar resource
AnswerD

The Sidecar resource scopes a workload's proxy to a defined set of namespaces and services, limiting which registries and endpoints it receives. This directly satisfies the multi-tenancy constraint by preventing cross-namespace visibility, unlike PeerAuthentication or AuthorizationPolicy, which govern mTLS and access rather than discovery scope.

Why this answer

Sidecar resources can be used to limit the scope of service discovery, effectively hiding services in other namespaces.

218
MCQmedium

When configuring circuit breaking, what does 'maxRequestsPerConnection' control?

A.The number of concurrent requests.
B.The number of requests per individual connection.
C.The total number of requests sent to a service.
D.The latency of each request.
E.The size of the request body.
AnswerB

The `maxRequestsPerConnection` field caps how many requests may traverse a single HTTP/1.1 or HTTP/2 connection before Istio closes and reopens it. This satisfies the stem's circuit-breaking constraint by bounding per-connection request volume, forcing periodic connection recycling rather than limiting concurrent requests or retries.

Why this answer

It limits the number of requests that can be sent over a single keep-alive connection, useful to prevent connection starvation.

219
MCQmedium

What does the 'mirror' feature in a VirtualService do?

A.Sends a copy of live traffic to a test service
B.Splits traffic 50/50
C.Encrypts traffic
D.Retries failed requests
AnswerA

Mirroring duplicates each live request and dispatches the copy to a shadow destination alongside the primary service. The primary response still returns to the caller, so the test service receives realistic production traffic without affecting users, enabling safe validation before promotion.

Why this answer

Mirroring sends a copy of traffic to a different service without affecting the primary response.

220
MCQmedium

Which field in the VirtualService allows you to redirect traffic to a different URI?

A.delegate
B.redirect
C.mirror
D.rewrite
AnswerB

The redirect field in the VirtualService rewrites the request's URI and authority, sending traffic to a different destination than the original request. It satisfies the requirement to redirect traffic to a different URI without altering the client.

Why this answer

In Istio's VirtualService resource, the redirect field is specifically designed to issue an HTTP 301/302 redirect to a different URI or authority, replacing the original request target. It is mutually exclusive with route and rewrite, and is evaluated at the virtual host level before any route matching occurs. This makes redirect the correct field when the goal is to send clients to a new URI rather than transparently rewriting the path.

Exam trap

The trap here is confusing redirect with rewrite — both alter the URI, but rewrite forwards the request to the backend with a modified path, while redirect returns a 3xx response telling the client to make a new request. Candidates often pick rewrite because it 'changes the URI'.

How to eliminate wrong answers

Option A is wrong because delegate is used to delegate route processing to another VirtualService within the same namespace, not to redirect traffic to a different URI. Option C is wrong because mirror copies live traffic to a shadow destination for testing (traffic shadowing) while still serving the original request, not redirecting it. Option D is wrong because rewrite modifies the URI path or host header in-flight while forwarding the request to the same destination, rather than issuing a redirect response to the client.

221
Multi-Selectmedium

Which TWO fields are mandatory in a Gateway resource?

Select 2 answers
A.subsets
B.tls
C.selector
D.hosts
E.servers
AnswersC, E

The selector field is mandatory because it defines which pods the Gateway's configuration applies to, using label matching. Without it, the Gateway resource cannot bind to any workload, so Istio rejects the manifest during validation.

Why this answer

In an Istio Gateway resource, the servers field (E) is mandatory because it defines the ports, protocols, hosts, and TLS settings that the gateway listens on—without at least one server entry the gateway has nothing to configure. The selector field (C) is also mandatory since it binds the Gateway to the specific Envoy proxy pods (via labels such as istio: ingressgateway) that should implement the configuration. The subsets field (A) belongs to a DestinationRule's traffic policy, not to a Gateway, so it is not required here.

The tls field (B) is optional and only needed when a server terminates or originates TLS. The hosts field (D) is configured inside each server entry, not as a top-level mandatory Gateway field.

Exam trap

ICA often tests the confusion between Gateway's required top-level fields (selector, servers) and nested optional fields (tls, hosts) that candidates mistakenly treat as mandatory.

222
MCQmedium

If a VirtualService has a route to a service that has no pods matching the label, what happens?

A.503 Service Unavailable
B.Traffic is routed to the default
C.Traffic is dropped
D.Traffic is routed to external
AnswerA

A route to a service with no matching pods yields a 503 Service Unavailable, because Istio's Envoy sidecars have no healthy upstream endpoints to load-balance to. The VirtualService route resolves, but the destination host's endpoint list is empty, so requests fail at the data plane rather than returning 404.

Why this answer

In Istio, a VirtualService route points to a Kubernetes Service by name. If that Service has no endpoints because no pods match its label selector, Envoy has no healthy upstream cluster members to route to. Istio's default behavior in this case is to return HTTP 503 Service Unavailable (with the 'no healthy upstream' response flag), rather than silently dropping or rerouting traffic.

Exam trap

The trap is assuming Istio has a built-in fallback or default route; in reality, an empty endpoint set yields an explicit 503, and candidates who pick 'dropped' or 'default' misunderstand Istio's fail-fast routing behavior.

How to eliminate wrong answers

Option B is wrong because Istio does not have an implicit 'default' route that catches traffic when a destination has no endpoints; routing is explicit in the VirtualService, and an empty endpoint set produces a 503, not a fallback. Option C is wrong because traffic is not silently dropped — Envoy actively responds with a 503 status, which is observable in telemetry and logs. Option D is wrong because Istio does not automatically route to external services; egress to external hosts requires an explicit ServiceEntry and route configuration.

223
MCQmedium

What is the primary purpose of the 'RequestAuthentication' resource?

A.To issue new JWTs.
B.To define JWT validation requirements.
C.To store user credentials.
D.To encrypt traffic between services.
AnswerB

'RequestAuthentication' defines how Istio validates credentials on incoming requests, specifying JWT issuers, JWKS endpoints and audiences that must be satisfied. This directly fulfils the stem's requirement for JWT validation, rejecting tokens failing signature or claim checks before authorisation policies such as 'AuthorizationPolicy' evaluate the request.

Why this answer

RequestAuthentication is used to define which JWT issuers are trusted and how to validate tokens.

224
Multi-Selectmedium

Which TWO pieces of information are displayed in the Kiali 'Graph' view?

Select 2 answers
A.Kubernetes node IP addresses
B.Health status (errors/warnings)
C.Service-to-service traffic flow
D.Sidecar image versions
E.User login history
AnswersB, C

The Graph view decorates each node and edge with health indicators, colouring them red or orange when error rates or warning conditions appear. This satisfies the requirement to surface operational state, letting operators spot degraded services directly on the topology rather than correlating separate metric dashboards.

Why this answer

Option B is correct because the Kiali Graph view overlays health status on the topology, coloring nodes and edges to indicate errors and warnings (for example, red for errors and yellow for warnings) so operators can quickly spot unhealthy services. Option C is correct because the Graph view's core purpose is visualizing service-to-service traffic flow within the Istio service mesh, showing how requests move between workloads, services, and other mesh components. Option A is not shown, as the graph depicts mesh entities like services and workloads rather than Kubernetes node IP addresses.

Option D is not displayed, since sidecar (Envoy proxy) image versions are not part of the graph's traffic topology visualization. Option E is not included, as user login history is unrelated to the Kiali Graph view's traffic and health representation.

225
Multi-Selecthard

When designing for high availability in a multi-cluster Istio mesh, which THREE strategies are recommended?

Select 3 answers
A.Disabling mTLS for performance
B.Locality-aware load balancing
C.Using a single ingress gateway for all traffic
D.Cross-cluster service failover
E.Running the control plane in multiple clusters
AnswersB, D, E

Locality-aware load balancing keeps requests within the same region or zone where possible, cutting cross-cluster latency and avoiding failure domains. This directly satisfies the stem's high-availability goal by reducing dependence on any single cluster's network path.

Why this answer

Locality-aware load balancing (B) is recommended because Istio's LocalityLoadBalancerSetting prioritizes endpoints in the same region/zone before failing over to remote localities, reducing latency and cross-cluster traffic while preserving availability. Cross-cluster service failover (D) is correct because Istio's multi-cluster mesh (via east-west gateways and remote secrets) lets a service in one cluster route to healthy endpoints in another cluster when local endpoints fail, which is the core of HA across clusters. Running the control plane in multiple clusters (E) is correct because deploying istiod in each cluster (replicated control plane model) removes a single point of failure and lets each cluster's sidecars obtain configuration even if another cluster's control plane is unreachable.

Disabling mTLS (A) is not recommended: it weakens zero-trust security and does not meaningfully improve HA, and mTLS overhead is minimal. Using a single ingress gateway for all traffic (C) is not recommended because it creates a single point of failure and a cross-cluster bottleneck, contradicting HA design.

Page 2

Page 3 of 4

Page 4

All pages