Courseiva

Istio Certified Associate (ICA, CNCF/Linux Foundation) (ICA) (ICA) — Questions 76–150

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

Page 1

Page 2 of 4

Page 3
76
Multi-Selecthard

Which of the following are valid DestinationRule fields? (Choose THREE)

Select 3 answers
A.redirect
B.host
C.trafficPolicy
D.subsets
E.match
AnswersB, C, D

`host` is a required DestinationRule field, specifying the destination service's fully qualified domain name or short name that traffic policies apply to. It satisfies the stem's demand for valid DestinationRule fields, since every DestinationRule must declare which service it governs before defining subsets, load-balancing or connection-pool settings.

Why this answer

In Istio's networking API, a DestinationRule is defined by the fields host, trafficPolicy, and subsets, so options B, C, and D are correct. The host field (B) is required and specifies the name of the service (or the Kubernetes service FQDN) to which the routing rules apply. The trafficPolicy field (C) defines policies such as load balancing, connection pool settings, outlier detection, and TLS settings applied to traffic to that host.

The subsets field (D) defines named subsets of the service's endpoints (via labels) so that VirtualService routes can direct traffic to specific versions. Options A (redirect) and E (match) are not DestinationRule fields: redirect is a route action used in VirtualService HTTP/TCP route destinations, and match is used in VirtualService route matching conditions, not in DestinationRule.

Exam trap

ICA often tests whether candidates can distinguish DestinationRule fields (host, trafficPolicy, subsets) from VirtualService fields (match, redirect, route), since both resources are commonly edited together.

77
MCQeasy

What is the primary purpose of adding a timeout to a service call?

A.To hide errors from the user.
B.To prevent resource exhaustion from hanging requests.
C.To load balance more effectively.
D.To increase throughput.
E.To encrypt traffic.
AnswerB

A timeout bounds how long a caller waits, releasing the thread, connection and memory tied to that request once the deadline passes. This directly prevents resource exhaustion from hanging requests, satisfying the stem's stated purpose.

Why this answer

A timeout on a service call ensures that if a downstream service does not respond within a specified period, the call is aborted. This prevents the calling service from indefinitely waiting, which can lead to thread pool exhaustion, memory buildup, and cascading failures. Thus, the primary purpose is to prevent resource exhaustion from hanging requests.

Exam trap

The trap is thinking timeouts improve performance or hide errors; candidates might choose 'increase throughput' or 'hide errors' instead of recognizing the protective role against resource exhaustion.

How to eliminate wrong answers

Option A is wrong because timeouts do not hide errors; they surface them faster (e.g., as timeout exceptions) and allow fallback logic. Option C is wrong because load balancing is handled by dedicated algorithms or proxies, not by timeouts. Option D is wrong because timeouts do not increase throughput; they may reduce it by aborting slow calls, but they protect the system.

Option E is wrong because encryption is provided by TLS, not timeouts.

78
MCQhard

You want to perform a 'headers' modification on an incoming request. Which resource allows this?

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

VirtualService HTTP route rules expose a headers field supporting request and response manipulation, including set, add and remove operations. This is the only Istio resource that rewrites incoming request headers before forwarding to the destination.

Why this answer

VirtualService allows header manipulation (add, remove, replace) in the route action.

79
MCQmedium

To strip a URL prefix before passing a request to a backend service, which field do you use?

A.prefix
B.rewrite
C.path
D.redirect
AnswerB

The rewrite field strips or replaces a matched URL prefix before forwarding the request upstream, so the backend receives the path it expects. This satisfies the requirement to remove the prefix without altering the client-facing route.

Why this answer

The rewrite field in a VirtualService can modify the URI path.

80
MCQmedium

When multiple AuthorizationPolicies target the same workload, how are they combined?

A.The most specific policy wins, others are ignored.
B.Policies are unioned (OR logic) for ALLOW actions.
C.The first policy encountered in the API server wins.
D.All policies must match (AND logic).
AnswerB

Multiple AuthorizationPolicies targeting one workload combine additively: a request is allowed if any policy's ALLOW rule matches, giving OR semantics. This satisfies the stem's union requirement, so adding policies only widens access rather than intersecting it.

Why this answer

If multiple policies are applied to the same workload, they are evaluated using an additive approach (OR logic) for ALLOW policies within the same namespace.

81
Multi-Selectmedium

Which TWO settings in a DestinationRule are used for load balancing?

Select 2 answers
A.connectionPool
B.loadBalancer.simple
C.outlierDetection
D.loadBalancer.consistentHash
E.trafficPolicy.tls
AnswersB, D

Defines the simple load balancing algorithm (e.g., ROUND_ROBIN).

Why this answer

TrafficPolicy includes the load balancing settings for a service.

82
Multi-Selecthard

Which are valid match conditions in VirtualService? (Choose THREE)

Select 3 answers
A.headers
B.timeout
C.uri
D.weight
E.port
AnswersA, C, E

Headers match on HTTP request header values, satisfying the stem's requirement for valid VirtualService match conditions. Istio evaluates them alongside URI, method, and source labels within the match block, enabling routing decisions based on custom or standard headers such as authorisation tokens or content type.

Why this answer

In Istio's VirtualService, the HTTPMatchRequest object defines the conditions used to select which route applies to a request, and its valid fields include headers (A), uri (C), and port (E). Option A (headers) is correct because HTTPMatchRequest supports a headers map that matches request headers by exact, prefix, or regex value. Option C (uri) is correct because uri is a core match field supporting exact, prefix, and regex matching on the request path.

Option E (port) is correct because HTTPMatchRequest includes a port field that matches the destination port number of the request. Option B (timeout) is not a match condition; it is a route-level setting that specifies how long to wait for a response before aborting. Option D (weight) is not a match condition either; it is a destination-level field used to distribute traffic across subsets in a weighted route.

83
MCQmedium

When inspecting Envoy stats, what does 'upstream_rq_timeout' represent?

A.The average time of all requests.
B.The total number of upstream connections.
C.The number of requests that exceeded the timeout to an upstream service.
D.The number of successful requests.
AnswerC

Envoy increments upstream_rq_timeout each time a request to an upstream cluster exceeds the configured timeout before a response arrives. It counts timed-out upstream requests specifically, distinguishing them from connection failures or resets, which are tracked by separate counters.

Why this answer

This metric indicates the number of requests that timed out while waiting for a response from the upstream service.

84
Multi-Selecthard

Which THREE of the following are valid ways to control egress traffic in Istio?

Select 3 answers
A.Sidecar resource with egress policy
B.Egress Gateway
C.Kiali Dashboard
D.ServiceEntry
E.PeerAuthentication
AnswersA, B, D

A Sidecar resource with an egress policy applies host-level and port-level rules to outbound traffic from selected workloads, restricting which external services pods may reach. This satisfies the egress control requirement by enforcing allowlists at the sidecar proxy.

Why this answer

Egress control can be achieved via mesh-level configuration, gateway-based routing, or sidecar-level restrictions.

85
MCQhard

How do you implement a circuit breaker to eject a pod that returns 5xx errors?

A.DestinationRule outlierDetection
B.PeerAuthentication
C.VirtualService fault injection
D.VirtualService retry policy
AnswerA

DestinationRule outlierDetection continuously analyses each endpoint's 5xx responses and ejects the offending pod from the load-balancing pool once consecutive failures breach the configured threshold, satisfying the requirement to remove misbehaving pods automatically. Istio's Envoy sidecars enforce this at the data plane, so no application code changes are needed.

Why this answer

Circuit breaking in Istio is implemented via DestinationRule's outlierDetection field, which configures Envoy's outlier detection to eject endpoints that return consecutive 5xx errors (or gateway errors) from the load balancing pool for a specified interval. The key parameters are consecutive5xxErrors, interval, baseEjectionTime, and maxEjectionPercent. This is the canonical Istio mechanism for passive health checking and circuit breaking at the destination level.

Exam trap

ICA often tests whether candidates confuse the three Istio traffic-management resources — VirtualService (routing, retries, fault injection), DestinationRule (LB, outlier detection, mTLS), and PeerAuthentication (mTLS) — so the trap is picking VirtualService retry or fault injection when the question asks about ejecting unhealthy endpoints.

How to eliminate wrong answers

Option B is wrong because PeerAuthentication configures mutual TLS (mTLS) mode between workloads — it has nothing to do with ejecting unhealthy endpoints based on HTTP error codes. Option C is wrong because VirtualService fault injection deliberately introduces delays or aborts to test resilience; it does not detect or eject failing pods. Option D is wrong because VirtualService retry policy retries failed requests but does not remove the failing endpoint from the load balancing pool — retries alone will keep hitting the bad pod.

86
MCQmedium

You want to access an external API (e.g., api.google.com) from within your mesh. What must you configure?

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

ServiceEntry registers external hosts in Istio's internal service registry, letting mesh sidecars resolve and route to api.google.com. Without it, the sidecar's outbound traffic policy blocks unknown external destinations, so this satisfies the requirement to reach an external API.

Why this answer

ServiceEntry allows adding entries to the Istio internal service registry for external endpoints.

87
MCQmedium

You have a global PeerAuthentication policy. What is the effect of applying a new PeerAuthentication policy in the 'default' namespace with no selector?

A.It is ignored.
B.It crashes the global policy.
C.It overrides the global policy for all workloads in the 'default' namespace.
D.It merges with the global policy.
AnswerC

A namespace-wide PeerAuthentication policy without a selector applies to every workload in that namespace, taking precedence over the mesh-wide global policy. Istio resolves policy by specificity: namespace-scoped configuration overrides mesh-scoped, satisfying the requirement to supersede the global policy for all workloads in 'default'.

Why this answer

In Istio, PeerAuthentication policies are scoped hierarchically: mesh-wide (root namespace, no selector), namespace-wide (a namespace, no selector), and workload-specific (with a selector). A namespace-wide policy in 'default' with no selector applies to all workloads in that namespace and takes precedence over the mesh-wide global policy for those workloads, effectively overriding it.

Exam trap

ICA often tests the precedence hierarchy of Istio policies, trapping candidates who assume policies merge or that namespace-scoped policies are ignored in favor of mesh-wide ones.

How to eliminate wrong answers

Option A (It is ignored) is wrong because namespace-scoped PeerAuthentication policies are honored and take precedence over mesh-wide policies for workloads in that namespace. Option B (It crashes the global policy) is wrong because Istio policies are not 'crashed' by overlapping scopes; the more specific policy simply takes precedence. Option D (It merges with the global policy) is wrong because Istio does not merge PeerAuthentication policies — precedence is strict, with the most specific scope winning, so the namespace policy fully replaces the global one for that namespace.

88
MCQhard

A service is returning 5xx errors frequently. You want to eject instances that return 5 consecutive 5xx errors. Which OutlierDetection setting is required?

A.consecutive5xx: 5
B.interval: 5s
C.maxEjectionPercent: 5
D.consecutiveErrors: 5
E.baseEjectionTime: 5s
AnswerA

Setting `consecutive5xx: 5` instructs the sidecar's outlier detector to eject a host after five successive 5xx responses, directly matching the stem's threshold. Other consecutive-error counters, such as `consecutiveGatewayErrors`, track different status classes and would not trigger on generic 5xx failures.

Why this answer

The `consecutive5xx` field in Istio's OutlierDetection configuration is specifically designed to count consecutive 5xx HTTP response codes from an upstream host. When the count reaches the configured threshold (5 in this case), the host is ejected from the load balancing pool for a period defined by `baseEjectionTime`. This directly matches the requirement to eject instances after 5 consecutive 5xx errors, making `consecutive5xx: 5` the correct setting.

Exam trap

ICA often tests the distinction between `consecutive5xx` and `consecutiveGatewayErrors`, and candidates may mistakenly choose `consecutiveErrors` (which doesn't exist) or confuse the threshold with other ejection parameters like `baseEjectionTime` or `maxEjectionPercent`.

How to eliminate wrong answers

Option B is wrong because `interval` defines the time period over which the ejection sweep is performed (e.g., how often to check for outliers), not the error threshold. Option C is wrong because `maxEjectionPercent` limits the maximum percentage of hosts that can be ejected, not the number of consecutive errors. Option D is wrong because `consecutiveErrors` is not a valid Istio OutlierDetection field; Istio distinguishes between `consecutive5xx` (for HTTP 5xx errors) and `consecutiveGatewayErrors` (for 502/503/504 errors).

Option E is wrong because `baseEjectionTime` specifies the minimum duration a host is ejected, not the error count threshold.

89
MCQhard

You need to inspect the envoy config for a specific pod. Which command do you use?

A.istioctl get config
B.kubectl get proxy
C.istioctl proxy-config all
D.istioctl inspect
AnswerC

`istioctl proxy-config all` dumps every Envoy configuration category — clusters, listeners, routes, endpoints and secrets — for the named pod's sidecar, satisfying the requirement to inspect the full envoy config. Unlike narrower subcommands such as `cluster` or `listener`, `all` returns the complete configuration in one pass.

Why this answer

istioctl proxy-config all <pod-name> shows all configuration for that proxy.

90
Multi-Selecteasy

Which THREE are types of traffic management patterns?

Select 3 answers
A.Canary deployment
B.Circuit breaking
C.Traffic mirroring
D.Namespace isolation
E.Database sharding
AnswersA, B, C

Canary deployment is a traffic management pattern that shifts a small percentage of live traffic to a new version, then gradually increases it. This progressive rollout limits blast radius, matching the question's requirement for a recognised traffic management pattern.

Why this answer

Canary deployment (A) is a traffic management pattern in which a small percentage of live traffic is routed to a new version of a service so its behavior can be validated before a full rollout, typically implemented via weighted routing in a service mesh or load balancer. Circuit breaking (B) is a traffic management pattern that monitors failure rates and, once a threshold is exceeded, trips the circuit to stop sending requests to an unhealthy backend, preventing cascading failures and allowing recovery. Traffic mirroring (C) is a traffic management pattern that duplicates production traffic (often via shadowing in Istio or AWS VPC Traffic Mirroring) and sends a copy to a test or analysis target without affecting the original request path.

Namespace isolation (D) is a Kubernetes organizational and security construct for scoping resources, RBAC, and network policies, not a traffic management pattern. Database sharding (E) is a data partitioning/scalability technique that distributes rows across multiple databases, not a pattern for managing service traffic.

91
MCQmedium

Which field defines how long an ejected pod remains out of the rotation?

A.maxEjectionPercent
B.baseEjectionTime
C.interval
D.minHealthPercent
E.consecutive5xx
AnswerB

baseEjectionTime sets the duration a pod stays ejected from the load-balancing pool before being returned for health re-evaluation. This directly satisfies the stem's requirement: it is the field governing how long an ejected pod remains out of rotation, measured from the moment of ejection.

Why this answer

baseEjectionTime determines the duration an instance is excluded from the load balancing pool.

92
Multi-Selectmedium

Which of the following are valid traffic management components in Istio? (Choose TWO)

Select 2 answers
A.ClusterRole
B.Deployment
C.VirtualService
D.ServiceAccount
E.DestinationRule
AnswersC, E

VirtualService defines how requests are routed to a service within Istio's traffic management API, specifying matching rules and destinations. It is a core traffic management component, satisfying the question's requirement for valid Istio traffic management resources.

Why this answer

VirtualService (C) is a core Istio traffic management resource that defines how requests are routed to a service in the mesh, including match conditions, retries, timeouts, fault injection, and traffic splitting rules. DestinationRule (E) is also a core Istio traffic management resource that configures policies applied after routing, such as load balancing algorithms, connection pool settings, outlier detection, and subsets used by VirtualService routes. Together, VirtualService and DestinationRule form the standard Istio routing pair for controlling traffic behavior.

The other options are Kubernetes resources, not Istio traffic management components: ClusterRole (A) and ServiceAccount (D) are RBAC/identity objects, and Deployment (B) is a workload controller for managing pods.

93
MCQeasy

What protocol does the Gateway resource support?

A.Only HTTP
B.Only TCP
C.HTTP, HTTPS, GRPC, and TCP
D.Only TLS
AnswerC

The Kubernetes Gateway resource models Layer 4 and Layer 7 routing, so listeners can be configured for HTTP, HTTPS, GRPC and TCP traffic. This protocol set satisfies the requirement to expose both web and raw TCP services through one gateway.

Why this answer

Gateways support HTTP, HTTPS, GRPC, and TCP protocols.

94
Multi-Selectmedium

Which TWO Istio components can be configured via the 'spec.components' section in IstioOperator?

Select 2 answers
A.pilot
B.ingressGateways
C.prometheus
D.kiali
E.jaeger
AnswersA, B

The `spec.components` section of IstioOperator exposes per-component configuration for core control plane deployments. Pilot, the traffic management component now named istiod, is configured here through fields such as `pilot.k8s` and `pilot.env`, satisfying the stem's requirement for components settable via that section.

Why this answer

The IstioOperator custom resource's spec.components section is used to enable, disable, and configure the core Istio control-plane and gateway components, and pilot (A) is one of them — it controls the istiod deployment (the merged Pilot/Citadel/Galley control plane), so it is correctly configured here. ingressGateways (B) is also part of spec.components, where you define gateway deployments such as istio-ingressgateway with their k8s settings, so it is correct as well. The add-on components prometheus (C), kiali (D), and jaeger (E) are not configured under spec.components; they are optional observability add-ons installed separately (e.g., via samples/addons manifests or the istioctl dashboard commands) and are not part of the IstioOperator components schema.

95
MCQeasy

Which resource is used to provide a unified entry point for multiple services?

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

A gateway consolidates access to several backend services behind one address, giving clients a single, unified entry point rather than separate endpoints. It satisfies the stem's requirement for one entry point by routing and translating requests to the appropriate service, unlike a proxy that typically forwards to a single destination.

Why this answer

An Istio Gateway provides a unified entry point for multiple services by configuring a load balancer at the edge of the mesh to accept inbound HTTP/TCP traffic and route it to VirtualServices. A single Gateway resource can host multiple VirtualService bindings, each routing different hostnames or paths to different backend services, making it the canonical 'north-south' entry point in Istio.

Exam trap

ICA often tests whether candidates can distinguish the roles of Gateway (entry point/listener), VirtualService (routing rules), and ServiceEntry (external service registration), so the trap is picking VirtualService because it 'routes traffic' — but routing rules alone do not create an entry point.

How to eliminate wrong answers

Option A is wrong because ServiceEntry is used to register external services (outside the mesh) into Istio's service registry so mesh workloads can route to them — it is not an ingress entry point. Option C is wrong because VirtualService defines routing rules (hosts, match conditions, destinations) but must be bound to a Gateway or sidecar to actually receive traffic; it is not itself an entry point. Option D is wrong because EnvoyFilter is a low-level escape hatch for patching Envoy configuration (listeners, clusters, HTTP filters) and does not provide a service entry point.

96
Multi-Selecthard

When planning an Istio upgrade, which THREE steps are critical for a canary upgrade strategy?

Select 3 answers
A.Install the new version as a separate revision
B.Update the 'istio.io/rev' label on the target namespace
C.Perform an in-place upgrade of the existing istiod
D.Delete the old IstioOperator CR
E.Restart the application pods in the namespace
AnswersA, B, E

Installing the new control plane as a separate revision lets both versions run side by side, so workloads stay on the old revision until explicitly migrated. This coexistence is the foundation of canary upgrades, enabling gradual, reversible rollout rather than an all-at-once replacement.

Why this answer

Option A is correct because Istio's canary upgrade model requires installing the new control plane as a separate revision (e.g., istioctl install --set revision=canary), which creates a distinct istiod deployment and webhook so the old and new versions coexist. Option B is correct because traffic to the new revision is enabled by labeling the target namespace with istio.io/rev=<new-revision>, which causes the sidecar injector webhook for that revision to inject the new proxy version into pods. Option E is correct because existing pods still run the old sidecar; restarting the application pods in the namespace triggers re-injection so the new revision's proxy is actually applied.

Option C is wrong because an in-place upgrade of the existing istiod replaces the control plane rather than running revisions side by side, defeating the canary approach. Option D is wrong because deleting the old IstioOperator CR is not part of the canary process and would remove the old revision's configuration before migration is complete.

Exam trap

ICA often tests the confusion between in-place upgrades (which replace the control plane) and canary upgrades (which use revisions and namespace labels for gradual rollout).

97
MCQmedium

You want to enforce that only requests with a valid JWT issued by 'https://accounts.example.com' are allowed to access the 'orders' service. You have applied a RequestAuthentication policy. What additional step is required to actually block requests without a valid JWT?

A.Apply an AuthorizationPolicy with an ALLOW action that requires a valid JWT principal.
B.Add a DENY AuthorizationPolicy that blocks all requests without a JWT.
C.Configure a PeerAuthentication policy with mode STRICT to require client certificates.
D.Modify the RequestAuthentication policy to set 'forwardOriginalToken: true'.
AnswerA

RequestAuthentication only validates JWTs if present, but it does not reject requests without a JWT. To enforce that a valid JWT is required, you must create an AuthorizationPolicy that allows only requests with a validated JWT. This is typically done by matching on the 'requestPrincipals' field, which is populated after successful JWT validation. Without this policy, requests without a JWT would still be allowed, so this step is necessary to block them.

Why this answer

RequestAuthentication validates JWTs but does not reject requests without one. To enforce JWT presence, you need an AuthorizationPolicy that allows only requests with a validated JWT principal. This is typically done by matching on 'requestPrincipals', which is set after successful validation.

The ALLOW policy will deny any request that does not have a valid JWT, effectively blocking unauthorized access.

Exam trap

The trap here is believing that RequestAuthentication alone will reject requests without a JWT, when in fact it only validates tokens if they are present.

98
MCQmedium

You need to ensure that traffic is only routed to healthy pods. What feature does this?

A.DestinationRule outlierDetection
B.ServiceEntry registry
C.PeerAuthentication
D.VirtualService weight
AnswerA

DestinationRule outlierDetection continuously ejects pods that return consecutive 5xx errors or fail health checks, removing them from the load-balancing pool so traffic reaches only healthy endpoints. This directly satisfies the stem's requirement to route traffic exclusively to healthy pods, unlike liveness probes, which merely restart containers without influencing routing decisions.

Why this answer

Outlier detection in DestinationRule ejects unhealthy hosts from the load balancing pool.

99
MCQmedium

How do you specify a header-based match in a VirtualService?

A.In the 'subset' policy
B.In the 'destination' block
C.In the 'subset' definition
D.In the 'match' block
AnswerD

Header-based matching is expressed inside the match block of an HTTP route, using a headers list with exact, prefix or regex matchers. This satisfies routing decisions based on request headers rather than URI or method alone.

Why this answer

Header-based matching in Istio is configured inside the 'match' block of a VirtualService HTTP route, using the 'headers' field with a key and a StringMatch (exact, prefix, or regex). The match block is the conditional gate that determines which route applies to an incoming request. This is the canonical location for all request-matching criteria, including headers, URI, method, query params, and source labels.

Exam trap

ICA often tests whether candidates know that header matching belongs in the VirtualService 'match' block, not in DestinationRule subsets or the destination stanza — mixing up where routing predicates live is the classic error.

How to eliminate wrong answers

Option A is wrong because 'subset' is not a policy block — subsets are named endpoint groupings defined in a DestinationRule, and they have no matching logic. Option B is wrong because the 'destination' block specifies where matched traffic goes (host, subset, port), not how to match it. Option C is wrong because a subset definition lives in DestinationRule and only labels endpoints; it cannot express header conditions.

Option D is correct because the 'match' block is where all request predicates, including headers, are declared.

100
Multi-Selectmedium

Which TWO of the following are true regarding the RequestAuthentication resource?

Select 2 answers
A.It enforces that the request MUST have a JWT token.
B.It can be applied to specific workloads using a selector.
C.It handles the issuance of JWT tokens.
D.It replaces the need for PeerAuthentication.
E.It can be applied at the namespace level to cover all services in that namespace.
AnswersB, E

RequestAuthentication supports a workloadSelector, so the JWT validation rules it defines apply only to the pods matching that selector rather than the whole namespace. This satisfies the requirement of scoping authentication policy to specific workloads.

Why this answer

Option B is correct because RequestAuthentication uses a workload selector (matchLabels) to target specific pods/workloads, allowing you to scope JWT validation rules to particular services rather than the entire mesh. Option E is correct because RequestAuthentication can be applied at the namespace level (with a namespace-wide policy) so that all services in that namespace inherit the JWT authentication rules. Option A is incorrect because RequestAuthentication only validates JWTs when present; it does not require a token—enforcement of a valid token is done via AuthorizationPolicy.

Option C is incorrect because RequestAuthentication does not issue JWTs; token issuance is handled by an external identity provider or an OIDC provider. Option D is incorrect because RequestAuthentication handles end-user JWT authentication, while PeerAuthentication handles mTLS between workloads; they are complementary, not replacements.

101
Multi-Selecthard

Which THREE settings are required in a VirtualService for a canary deployment?

Select 3 answers
A.tcp
B.http routes
C.tls
D.weight
E.hosts
AnswersB, D, E

The http routes block is mandatory: it defines the match conditions and destination subsets that split traffic between stable and canary versions. Without it, the VirtualService has no routing rules to weight, so canary splitting cannot occur.

Why this answer

In an Istio VirtualService, a canary deployment is expressed through HTTP routing rules, so option B (http routes) is required because the http stanza holds the match and route entries that split traffic between the stable and canary subsets. Option D (weight) is required because each route destination must carry a weight value (for example 90/10) so the mesh can distribute traffic proportionally between the two versions. Option E (hosts) is required because the VirtualService must declare the destination hosts (the service DNS names, such as reviews.prod.svc.cluster.local) that the routing rules apply to.

Options A (tcp) and C (tls) are not required here: tcp and tls are alternative protocol-specific stanzas used for TCP or TLS routing, and a canary deployment based on HTTP traffic does not need them.

Exam trap

The trap is selecting tcp or tls as required fields because they appear in VirtualService documentation — but they are alternative protocol blocks, not components of an HTTP canary.

102
Multi-Selecthard

A platform team is implementing a resilience strategy for the 'checkout' service. They want to configure a DestinationRule that ejects unhealthy hosts, and they also want to ensure that the ejection does not remove too many hosts at once. Which TWO settings in the OutlierDetection configuration directly control how many hosts can be ejected and how long they remain ejected? (Choose two.)

Select 2 answers
A.interval
B.minHealthPercent
C.consecutive5xxErrors
D.maxEjectionPercent
E.baseEjectionTime
AnswersD, E

maxEjectionPercent defines the maximum percentage of endpoints in the load-balancing pool that can be ejected simultaneously. Setting it to a value like 40 ensures that even if many hosts fail, at least 60% remain available to serve traffic. This directly controls how many hosts can be ejected, which is one of the two requirements in the scenario.

Why this answer

Outlier detection in a DestinationRule includes several fields, but the two that directly control ejection quantity and duration are maxEjectionPercent and baseEjectionTime. maxEjectionPercent caps the fraction of endpoints that can be simultaneously ejected, preventing a complete outage. baseEjectionTime sets the minimum time a host stays out of the pool. Together they define the scope and duration of the ejection behavior, which are the two aspects the team wants to manage.

Exam trap

The trap here is confusing the threshold that triggers ejection (consecutive5xxErrors) with the settings that limit how many and how long hosts are ejected.

103
MCQeasy

What does the 'jwksUri' field in a RequestAuthentication resource define?

A.The URL to register the application.
B.The URL to fetch the public keys for JWT validation.
C.The location where JWTs are stored.
D.The address of the Identity Provider login page.
AnswerB

RequestAuthentication validates JWTs presented by clients. The jwksUri points to the JSON Web Key Set endpoint holding the public keys; Envoy fetches these keys to verify each token's signature, ensuring the JWT was issued by the trusted identity provider.

Why this answer

The jwksUri specifies the endpoint where the JWT issuer publishes its public keys, used by Istio to verify the token signature.

104
Multi-Selectmedium

When configuring a Gateway API resource, which TWO properties are defined within the 'listeners' block?

Select 2 answers
A.Request retries
B.Port
C.Circuit breaker policy
D.Protocol
E.Service account
AnswersB, D

Each entry in the listeners block must specify the port the listener binds to on the Gateway, alongside its protocol. This port determines which traffic the listener accepts, satisfying the requirement that listeners define the network endpoint for incoming connections.

Why this answer

In the Gateway API, each entry in the 'listeners' block defines how the gateway accepts traffic, and two of its core required fields are the port and the protocol. Option B (Port) is correct because a listener must specify the network port on which the gateway listens for incoming connections, such as port 80 or 443. Option D (Protocol) is correct because a listener must declare the protocol it handles, such as HTTP, HTTPS, TLS, or TCP, which determines how traffic on that port is processed.

The other options do not belong in the 'listeners' block: request retries (A) and circuit breaker policy (C) are traffic-management policies typically expressed in HTTPRoute or backend policy resources, while a service account (E) is a Kubernetes identity object unrelated to listener configuration.

105
MCQmedium

What is the function of the 'weight' parameter in a VirtualService route?

A.To specify the TTL of a request
B.To split traffic between multiple destinations
C.To limit bandwidth usage
D.To set the priority of a rule
AnswerB

Weight assigns a relative proportion of traffic to each destination within a single route block, letting you split requests across multiple subsets or hosts. This satisfies the stem's requirement by distributing load between several destinations rather than sending all traffic to one.

Why this answer

Weight determines the percentage of traffic directed to a specific destination.

106
MCQmedium

You are using Kiali to debug a service mesh. You notice a red line between two services. What does this indicate?

A.The services are located in different clusters.
B.The traffic is encountering high error rates or being blocked by an Istio policy.
C.The service is not part of the mesh.
D.The connection is encrypted using mTLS.
AnswerB

Kiali renders red edges when the destination workload reports elevated error responses or when an Istio authorisation or traffic policy rejects requests. This colouring reflects the measured error rate on that edge, not latency or throughput, so it points to failures or policy blocks.

Why this answer

In Kiali's graph view, edge colors encode traffic health: green means healthy, yellow means degraded, and red means the request/response flow is failing. A red line specifically indicates that the destination workload is returning errors (typically 5xx) or that traffic is being denied by an Istio policy such as an AuthorizationPolicy or a misconfigured PeerAuthentication. Kiali derives this from Envoy sidecar telemetry (istio_requests_total), so the red edge is a symptom of actual request failures, not a topology or encryption state.

Exam trap

The trap here is confusing Kiali's visual encodings — candidates assume red means a topology/configuration problem (different cluster, not in mesh) rather than the actual meaning: failing or policy-blocked traffic.

How to eliminate wrong answers

Option A is wrong because cross-cluster placement is not represented by edge color in Kiali — multi-cluster topology is shown via cluster badges/annotations, not red lines. Option C is wrong because a service outside the mesh is typically rendered as a gray or dashed node/edge (or missing telemetry), not a red edge; mesh membership is a node attribute, not a traffic-health signal. Option D is wrong because mTLS encryption is indicated by a padlock icon on the edge, not by color — encrypted-but-healthy traffic still shows green.

107
MCQhard

You want to limit the total number of concurrent connections to a service. Where is this defined?

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

DestinationRule defines connection pool limits under its trafficPolicy, using tcp.maxConnections to cap concurrent TCP connections to a service. This directly satisfies the stem's requirement to limit total concurrent connections, since the setting is enforced per destination host by Envoy sidecars.

Why this answer

connectionPool settings in the DestinationRule control connection limits.

108
Multi-Selectmedium

Which of these are valid sub-commands for istioctl? (Choose TWO)

Select 2 answers
A.restart
B.analyze
C.proxy-config
D.start
E.debug
AnswersB, C

The analyze sub-command inspects a live cluster or configuration files for misconfigurations, reporting warnings and errors. It validates Istio resources against best practise, making it a genuine istioctl sub-command used for diagnosing broken mesh configuration.

Why this answer

Option B, analyze, is a valid istioctl sub-command: `istioctl analyze` performs configuration analysis on Istio resources and reports potential issues such as misconfigurations or deprecated fields. Option C, proxy-config, is also valid: `istioctl proxy-config` (often abbreviated `pc`) retrieves Envoy configuration from a sidecar or gateway, with subcommands like `cluster`, `listener`, `route`, `endpoint`, and `bootstrap`. The other options are not istioctl sub-commands: restart and start are not provided by istioctl (workload restarts are done via kubectl or by deleting pods), and debug, while istioctl has diagnostic commands such as `proxy-status` and `experimental`, is not a valid top-level sub-command.

109
Multi-Selecthard

Which THREE things happen when a request fails and a retry policy is active?

Select 3 answers
A.Ejects the host immediately.
B.Checks if the error code matches 'retryOn'.
C.Attempts the request again.
D.Waits for the specified backoff period.
E.Opens the circuit breaker.
AnswersB, C, D

Envoy evaluates the response against the retryOn condition, comparing the returned status code or reset type to the configured list. Only matching failures trigger the retry budget, so non-matching errors pass straight back to the caller.

Why this answer

When a request fails and a retry policy is active, the policy first evaluates the failure by checking whether the returned error code matches the configured 'retryOn' conditions (option B), since only matching errors trigger a retry. If the error qualifies, the policy attempts the request again (option C), re-issuing the call to the target. Before that retry, it waits for the specified backoff period (option D), which may be fixed or exponential, to avoid overwhelming the endpoint.

Option A is incorrect because host ejection is a separate outlier-detection mechanism, not an immediate retry-policy action. Option E is incorrect because opening the circuit breaker is governed by circuit-breaking thresholds, not by the retry policy itself.

Exam trap

ICA often tests the confusion between retry and outlier detection, leading candidates to pick ejecting the host as part of retry.

110
Multi-Selecthard

Which parameters can be configured in a VirtualService retry policy? (Choose TWO)

Select 2 answers
A.maxConnections
B.attempts
C.connectionPool
D.outlierDetection
E.perTryTimeout
AnswersB, E

The `attempts` parameter sets how many times Envoy re-tries a failed request before returning an error to the caller, satisfying the stem's requirement for configurable retry-policy parameters. Istio's VirtualService retry block exposes `attempts` alongside `perTryTimeout` and `retryOn`, so it is directly configurable.

Why this answer

In Istio's VirtualService HTTP retry policy, the retry block supports fields such as attempts, perTryTimeout, retryOn, and retryRemoteLocalities, so option B (attempts) is correct because it specifies the maximum number of retry attempts for a failed request, and option E (perTryTimeout) is correct because it sets the timeout for each individual retry attempt. The other options do not belong to the retry policy: maxConnections (A) and connectionPool (C) are DestinationRule traffic-policy settings controlling connection limits, and outlierDetection (D) is a DestinationRule setting for ejecting unhealthy hosts from the load-balancing pool.

Exam trap

The trap is mixing VirtualService retry fields with DestinationRule connection-pool and outlier-detection fields; the exam expects you to know which resource owns which parameter.

111
MCQeasy

A cluster administrator wants to limit the number of concurrent connections and pending requests that the sidecar will allow to the 'shipping' service. The team also wants to configure a circuit breaker that trips when the number of pending requests exceeds a threshold. Where should these settings be defined?

A.In the ServiceEntry's resolution settings.
B.In the VirtualService's http route configuration.
C.In the DestinationRule's trafficPolicy connectionPool settings.
D.In the EnvoyFilter resource applied to the sidecar.
AnswerC

Connection pool limits and circuit breaker thresholds for a service are configured in the DestinationRule under trafficPolicy.connectionPool. The tcp and http subsections define maximum connections and pending requests respectively. This is the correct location because DestinationRules define policies that apply after routing, including connection-level controls for the selected service.

Why this answer

Connection pool and circuit breaker settings for a service are defined in the DestinationRule under trafficPolicy.connectionPool. The tcp subsection controls maximum connections and connection timeouts, while the http subsection controls http1MaxPendingRequests, http2MaxRequests, and similar limits. This placement ensures the settings apply to the sidecar's outbound connections to the selected service, independent of routing rules.

Exam trap

The trap here is assuming that routing resources like VirtualService also carry connection pool settings, when in fact they are exclusive to DestinationRule trafficPolicy.

112
MCQmedium

You have a namespace 'prod' and you need to ensure that all workloads in this namespace only accept mutual TLS (mTLS) encrypted traffic. What is the most effective way to configure this?

A.Apply a DestinationRule with trafficPolicy.tls.mode set to ISTIO_MUTUAL.
B.Apply a global MeshConfig setting to enforce mTLS.
C.Apply a PeerAuthentication resource with spec.mtls.mode set to STRICT in the 'prod' namespace.
D.Create an AuthorizationPolicy that denies all traffic without a client certificate.
AnswerC

Setting PeerAuthentication's mtls.mode to STRICT in the prod namespace enforces namespace-wide mTLS, rejecting any plaintext or permissive traffic to workloads there. This satisfies the requirement that all workloads accept only mTLS, without per-pod configuration, since STRICT overrides mesh-level defaults for that namespace.

Why this answer

A PeerAuthentication policy scoped to the namespace with mode set to STRICT ensures all sidecars in that namespace enforce mTLS.

113
MCQeasy

What does an AuthorizationPolicy's 'operation' field represent?

A.HTTP methods and paths.
B.Certificate details.
C.IP addresses.
D.User identities.
AnswerA

The operation field lists the HTTP methods and exact paths a rule matches, such as GET on /products. It defines the request attributes the policy evaluates, letting you scope authorisation to specific endpoints rather than whole workloads.

Why this answer

The operation field defines the methods (GET, POST) and paths allowed or denied.

114
MCQhard

Your team runs a payments service in the 'prod' namespace with a Kubernetes Service named 'payments' listening on port 8443. During a canary rollout you created a Gateway 'payments-gw' in the 'istio-system' namespace and a VirtualService 'payments-vs' in the 'prod' namespace that references the gateway as 'payments-gw'. Clients report HTTP 404 errors when calling the service, but the sidecar-injected payments pods show healthy endpoints and the Gateway pod logs report 'no matching route'. Which change resolves the routing failure?

A.Move the payments-vs VirtualService into the istio-system namespace.
B.Add 'exportTo: ["*"]' to the payments-vs VirtualService.
C.Add a 'hosts' entry for 'payments.prod.svc.cluster.local' to the payments-gw Gateway.
D.Change the VirtualService gateway reference to 'istio-system/payments-gw'.
AnswerD

Gateway references in a VirtualService are resolved as '<namespace>/<name>' when the Gateway lives in a different namespace than the VirtualService. Because payments-vs is in 'prod' and payments-gw is in 'istio-system', the short name only resolves within the VirtualService's own namespace, so the Gateway never binds the route and clients receive 404. Qualifying the reference with the Gateway's namespace binds the route correctly.

Why this answer

A VirtualService binds to a Gateway by name, and that name is resolved relative to the VirtualService's own namespace. When the Gateway is in a different namespace, the reference must be fully qualified as '<gateway-namespace>/<gateway-name>'. Because the Gateway and VirtualService here live in different namespaces, the unqualified reference fails to bind, so the Gateway has no route and returns 404.

Qualifying the reference restores the binding.

Exam trap

The trap here is assuming a short Gateway name resolves cluster-wide, when it is actually scoped to the VirtualService's own namespace unless explicitly qualified.

115
MCQmedium

You are deploying a new version of a microservice in your Istio mesh. You want to perform a canary rollout where 10% of traffic goes to the new version, but you also want to ensure that requests from a specific test user always go to the new version regardless of the overall percentage. Which Istio traffic management feature should you use to achieve this?

A.VirtualService with HTTP route matching on headers and weighted destinations
B.ServiceEntry with resolution: STATIC and endpoints
C.DestinationRule with subset and trafficPolicy
D.Sidecar with outboundTrafficPolicy: REGISTRY_ONLY
AnswerA

A VirtualService allows you to define HTTP routes that match on request attributes such as headers, and then route to different destinations with weights. You can create a route that matches a specific header (e.g., user: test) and directs to the new version, and another route with a weight-based split (90/10) for all other traffic. This achieves both the canary rollout and the sticky routing for the test user.

Why this answer

The VirtualService is the core Istio resource for traffic routing. It supports matching on HTTP headers, path, method, etc., and can route to different destinations with weights. By combining a header match for the test user with a weighted route for the rest, you achieve both the canary percentage and the sticky routing for that user.

This is a common pattern for progressive delivery.

Exam trap

The trap here is confusing the roles of VirtualService and DestinationRule; the DestinationRule defines subsets but does not route traffic.

116
MCQmedium

A platform engineer is migrating a legacy service into the mesh. The service exposes an HTTP API on port 8080 but also a raw TCP admin port on 9090. The engineer wants the sidecar to treat port 8080 as HTTP so that Istio can apply request-level routing, while treating port 9090 as opaque TCP. Which configuration achieves this?

A.Set the environment variable ISTIO_META_PROTOCOL=HTTP on the application container so the sidecar reads it during injection.
B.Add a DestinationRule that sets trafficPolicy.portLevelSettings with protocol: HTTP for 8080 and protocol: TCP for 9090.
C.Annotate the pod with sidecar.istio.io/inject=true and set the protocol using the Service port name prefix, such as http-api for 8080 and tcp-admin for 9090.
D.Create a VirtualService that lists both ports and set the tls.match.sniHosts field for 9090 to force TCP handling.
AnswerC

Istio infers the protocol for a Service port from the port name prefix (http-, tcp-, grpc-, etc.), so naming 8080 http-api and 9090 tcp-admin makes the sidecar apply HTTP parsing to one and opaque TCP handling to the other. This is the standard, supported way to declare per-port protocol on a Kubernetes Service without extra configuration.

Why this answer

Istio's sidecar determines how to handle a port primarily from the Service port name prefix or the appProtocol field. Naming port 8080 with an http- prefix enables HTTP-aware routing and metrics, while naming 9090 with tcp- keeps it as opaque TCP. The other approaches either reference fields that do not exist or place protocol information where the control plane does not read it.

Exam trap

The trap here is assuming any Istio resource can declare a port's protocol, when in fact protocol selection happens through Service port naming or appProtocol.

117
MCQmedium

When using JWT authentication, where does the Istio sidecar fetch the public key (JWKS) required for token verification?

A.The sidecar fetches it directly from the URL specified in the 'jwksUri' field of the RequestAuthentication resource.
B.It is hardcoded in the Envoy binary.
C.The Istio Control Plane (istiod) fetches it and pushes it to the sidecar.
D.The user must manually upload the public key as a Kubernetes Secret.
AnswerA

The Envoy sidecar retrieves the JSON Web Key Set directly from the URL declared in the RequestAuthentication resource's jwksUri field, caching the keys locally. This satisfies the verification requirement because the sidecar validates JWT signatures itself without routing token checks through an external service.

Why this answer

The sidecar automatically fetches the JWKS from the URL defined in the 'jwksUri' field within the RequestAuthentication policy.

118
MCQeasy

An application is experiencing intermittent errors. You decide to use outlier detection to eject unhealthy pods. Which field in the DestinationRule controls the ejection of hosts after a certain number of 5xx errors?

A.baseEjectionTime
B.interval
C.consecutive5xxErrors
D.maxConnections
AnswerC

Istio's outlier detection ejects a host once its consecutive 5xx responses reach the value set in consecutive5xxErrors, counted per host over the interval. This field directly governs the ejection threshold, unlike interval or baseEjectionTime, which control timing rather than the error count.

Why this answer

The 'consecutive5xxErrors' field in the 'outlierDetection' section of a DestinationRule is used to eject unhealthy hosts.

119
Multi-Selectmedium

Which of the following are valid Gateway configurations? (Choose TWO)

Select 2 answers
A.servers
B.subsets
C.selector
D.retry
E.endpoints
AnswersA, C

"Servers" is a valid Gateway configuration because Istio's ingress gateway can run directly on bare-metal or virtual machines, not only as a Kubernetes pod. This satisfies the stem's requirement for valid deployment targets, since the gateway workload may be hosted on standalone servers outside a cluster.

Why this answer

In Istio's Gateway resource, the `servers` field (option A) is a valid top-level configuration that defines the ports, protocols, hosts, and TLS settings the gateway listens on, making it a required part of any Gateway spec. The `selector` field (option C) is also valid and specifies which Envoy proxy pods (via label matching, e.g., `istio: ingressgateway`) should apply the gateway configuration. Options B (`subsets`) and E (`endpoints`) belong to DestinationRule and Service/Endpoint resources respectively, not Gateway, and option D (`retry`) is a traffic-policy setting found in VirtualService or DestinationRule, so none of these are valid Gateway fields.

120
MCQmedium

Which load balancing policy would you choose to ensure requests from the same user always hit the same pod?

A.LEAST_CONN
B.consistentHash
C.ROUND_ROBIN
D.PASSTHROUGH
AnswerB

consistentHash hashes a chosen request attribute, such as a cookie or source IP, so the same user consistently maps to the same pod, satisfying the requirement that requests from one user always reach the same pod.

Why this answer

Consistent hashing based on a header or cookie ensures session stickiness.

121
Multi-Selectmedium

Which THREE things are required for mTLS to be successful?

Select 3 answers
A.PeerAuthentication configuration
B.External load balancer
C.Sidecar proxy presence
D.Ingress Gateway
E.Certificate distribution
AnswersA, C, E

PeerAuthentication in Istio's security API defines the mTLS mode (STRICT, PERMISSIVE, DISABLE) that the mesh enforces for a workload or namespace. Without it, sidecars default to PERMISSIVE, so plaintext remains accepted and mutual authentication is never guaranteed.

Why this answer

mTLS needs certificates issued to the workloads, a mutual agreement on using mTLS (PeerAuthentication), and sidecar proxies to perform the handshake.

122
Multi-Selectmedium

Which THREE components are involved in the Istio certificate management process?

Select 3 answers
A.Istiod
B.The Workload
C.Ingress Gateway
D.Envoy Proxy
E.Kubernetes Secret
AnswersA, B, D

Acts as the CA.

Why this answer

The certificate lifecycle involves Istiod (CA), the control plane agent, and the workload sidecar/proxy.

123
Multi-Selectmedium

Which TWO scenarios indicate that a PeerAuthentication policy is working correctly?

Select 2 answers
A.Requests are rejected when mTLS is not used by the client.
B.Traffic from outside the mesh can reach the service in STRICT mode without modification.
C.All traffic is logged in plain text in the Envoy logs.
D.Services with sidecars can communicate with each other in STRICT mode.
E.The API server allows non-mTLS traffic by default.
AnswersA, D

STRICT mode enforces mutual TLS, so plaintext or non-mTLS client connections to the workload are refused at the sidecar proxy. This directly satisfies the scenario's requirement that requests without mTLS be rejected, confirming the PeerAuthentication policy is active and enforcing rather than merely permissive.

Why this answer

Option A is correct because a PeerAuthentication policy set to STRICT mode enforces mutual TLS, so any request arriving without a valid mTLS client certificate is rejected by the sidecar proxy — this rejection is exactly the expected enforcement behavior. Option D is correct because in STRICT mode, workloads that have sidecar proxies (and thus can present and validate mTLS certificates) are able to communicate with each other successfully, demonstrating that the policy permits properly authenticated mesh traffic. Option B is wrong because STRICT mode should block, not allow, non-mTLS traffic from outside the mesh unless it is upgraded to mTLS.

Option C is wrong because Envoy logs being in plain text says nothing about PeerAuthentication enforcement and is unrelated to mTLS policy validation. Option E is wrong because PeerAuthentication does not control the Kubernetes API server, and non-mTLS traffic is not allowed by default under a STRICT policy.

124
Multi-Selecteasy

Which TWO resources are essential for configuring traffic splitting between versions?

Select 2 answers
A.VirtualService
B.ServiceEntry
C.Sidecar
D.Gateway
E.DestinationRule
AnswersA, E

A VirtualService defines the routing rules that distribute requests across versioned workloads, satisfying the requirement to split traffic between versions. It matches on hosts, paths and headers, then weights destinations to specific subsets, so percentage-based canary or blue-green distribution becomes possible when paired with a DestinationRule.

Why this answer

In Istio, traffic splitting between versions is implemented by defining weighted routing rules in a VirtualService (option A), whose HTTP route entries specify multiple destinations with weights that sum to 100 for the version subsets. Those subsets must be declared in a DestinationRule (option E), which uses labels to define named subsets such as v1 and v2 that the VirtualService weights reference. Without the DestinationRule subsets, the VirtualService has no version-specific destinations to split traffic across, so both resources are essential.

ServiceEntry (B) is only needed to register external or non-mesh hosts, Sidecar (C) scopes sidecar proxy configuration, and Gateway (D) handles ingress/egress edge traffic, none of which are required for internal version-based traffic splitting.

125
MCQhard

You have a cluster with multiple revisions of Istio installed. You want to move a namespace from revision '1-18' to '1-19'. What is the correct procedure?

A.Use 'istioctl install --revision 1-19' on the namespace
B.Update label and restart pods
C.Update label and run 'istioctl proxy-config rev 1-19'
D.Just update the label; Istio handles it automatically
AnswerB

Updating the `istio.io/rev` label to `1-19` and restarting pods triggers sidecar injection from the new revision's mutating webhook, satisfying the requirement to migrate the namespace between revisions. Existing pods retain their old sidecar until restarted, so the restart is essential to complete the move.

Why this answer

To move a namespace from revision 1-18 to 1-19, you update the istio.io/rev label on the namespace from 1-18 to 1-19 and then restart the pods so the sidecar injector (mutating webhook) re-injects the new revision's proxy. Istio does not automatically restart pods on label change, so the restart is mandatory for the new sidecar to take effect.

Exam trap

The trap is assuming Istio automatically reconciles sidecar versions when the namespace label changes — it does not, because injection is a pod-creation-time operation, not a continuous reconciliation.

How to eliminate wrong answers

Option A is wrong because istioctl install --revision 1-19 installs or upgrades the control plane revision, not a namespace — it does not move workloads between revisions. Option C is wrong because istioctl proxy-config rev 1-19 is not a valid command; proxy-config inspects Envoy config (clusters, listeners, routes) and has no 'rev' subcommand for migration. Option D is wrong because simply updating the label does not trigger pod restarts — existing pods keep their old sidecar until they are recreated, so the namespace remains on the old revision in practice.

126
MCQeasy

You need to ensure that a request to the 'orders' service times out if it takes longer than 2 seconds. Which field in the VirtualService should you configure?

A.deadline
B.timeout
C.maxRequestDuration
D.requestTimeout
AnswerB

The timeout field in the VirtualService's HTTP route specifies how long a request may run before Istio aborts it, so setting it to 2s enforces the required limit on the orders service. Other fields control retries, faults or matching, not request duration.

Why this answer

The timeout setting is defined within the route rule of a VirtualService.

127
MCQmedium

What is the result of setting 'outlierDetection' in a DestinationRule?

A.Logs are sent to a remote collector.
B.Traffic is automatically retried.
C.Connections are encrypted.
D.Unhealthy endpoints are temporarily ejected from the load balancing pool.
AnswerD

Outlier detection actively ejects endpoints that return consecutive errors from the load balancing pool for a defined interval, then returns them for re-evaluation. This satisfies the stem's requirement by isolating unhealthy hosts, preventing failed requests from reaching them while other healthy endpoints continue serving traffic.

Why this answer

The outlierDetection field in an Istio DestinationRule configures outlier ejection, which is Istio's implementation of passive health checking. When an endpoint in the load balancing pool returns a consecutive number of 5xx errors (default consecutive5xxErrors: 5) within a defined interval, Envoy ejects that endpoint from the pool for a base ejection time (default 30s), preventing traffic from being routed to the unhealthy pod. This is analogous to circuit breaking at the endpoint level and improves overall service reliability without requiring active health checks.

Exam trap

The trap here is confusing outlierDetection (passive endpoint ejection) with active health checks or circuit breaking — candidates often pick 'retries' because both relate to resilience, but retries are configured in VirtualService, not DestinationRule.

How to eliminate wrong answers

Option A is wrong because log forwarding to a remote collector is handled by telemetry components such as Fluent Bit, Fluentd, or the Istio access log configuration, not by DestinationRule outlierDetection. Option B is wrong because automatic retries are configured via the retries field in a VirtualService (or Envoy retry policy), not outlierDetection. Option C is wrong because connection encryption is provided by mTLS configuration in a PeerAuthentication policy or the trafficPolicy.tls settings, not by outlier detection.

128
MCQmedium

What happens when an AuthorizationPolicy is applied to a workload without a sidecar?

A.The policy is logged but not enforced.
B.The workload crashes.
C.The policy is ignored.
D.Traffic is denied by default.
AnswerC

Without a sidecar proxy, there is no Envoy instance to enforce Istio's authorization rules, so the policy has no effect on traffic. Istio's control plane distributes policy to sidecars, not to the application itself; absent that enforcement point, requests proceed unauthenticated and unrestricted.

Why this answer

AuthorizationPolicy relies on the Envoy sidecar to enforce rules. If no sidecar is present, the policy is ignored for that traffic.

129
MCQmedium

Your team wants to ship an application's logs and metrics to a centralized platform without redeploying the application or changing its code. The application already runs with an injected sidecar. Which Istio capability should you use to emit telemetry to an external backend?

A.A Sidecar resource with egress listeners that mirror traffic to an external observability service.
B.Istio's Telemetry API with providers configured to send metrics and access logs to the external backend.
C.A VirtualService with a mirror destination that copies every request to the observability platform.
D.EnvoyFilter that patches the sidecar's HTTP connection manager to forward access logs to a remote collector.
AnswerB

The Telemetry API is the supported, declarative way to configure metrics, access logging, and tracing for workloads in a mesh. It supports defining providers, including OpenTelemetry, and selecting which workloads emit which signals. Because it is applied through Istio configuration rather than application changes, it meets the goal of exporting telemetry to a central platform without touching the app or redeploying it.

Why this answer

The Telemetry API provides declarative configuration for metrics, access logs, and traces across mesh workloads. By defining providers such as OpenTelemetry and selecting the signals to emit, you can route telemetry to a centralized backend without modifying or redeploying the application. It is the supported extension point for observability export and avoids brittle low-level Envoy patching.

Exam trap

The trap here is confusing traffic mirroring or Sidecar scoping with telemetry export, when only the Telemetry API declares providers and signals.

130
MCQhard

A VirtualService is not correctly routing traffic to a new version. Which tool helps verify the actual route configuration loaded in the proxy?

A.istioctl describe
B.istioctl analyze
C.kubectl logs
D.istioctl proxy-config routes
AnswerD

istioctl proxy-config routes queries the Envoy admin API and prints the route configuration currently loaded in a specific sidecar. This satisfies the constraint of verifying actual routes, revealing whether the VirtualService changes were pushed and how they were translated.

Why this answer

istioctl proxy-config routes displays the routing table as understood by the Envoy proxy.

131
MCQmedium

You want to inject a 5-second delay into requests for testing. Which resource allows this?

A.VirtualService
B.Sidecar
C.EnvoyFilter
D.DestinationRule
E.Gateway
AnswerA

VirtualService supports fault injection, including a fixed delay applied to matching requests. Specifying a five-second delay in the http fault block makes Envoy hold each matching request, satisfying the testing requirement without changing application code.

Why this answer

A VirtualService is the Istio resource that defines traffic routing rules, including fault injection. The 'fault' stanza with 'delay' (fixedDelay or exponentialDelay) injects latency into requests matching the route, which is exactly what's needed to simulate a 5-second delay for chaos/resilience testing. This is a first-class VirtualService capability, not something you configure in DestinationRule or Gateway.

Exam trap

ICA often tests the confusion between VirtualService and DestinationRule — candidates must remember that routing and fault injection live in VirtualService, while LB/TLS/connection pooling live in DestinationRule.

How to eliminate wrong answers

Option B is wrong because Sidecar only scopes which services a proxy can reach (namespace/registry configuration) — it has no fault injection capability. Option C is wrong because EnvoyFilter patches raw Envoy config and could theoretically inject delay, but it is a low-level escape hatch, not the intended resource for fault injection and far more error-prone. Option D is wrong because DestinationRule configures load balancing, connection pool settings, outlier detection, and TLS — not request delays.

Option E is wrong because Gateway only handles ingress/egress listener configuration (ports, hosts, TLS), not per-request fault behavior.

132
MCQmedium

Your team runs an Istio service mesh in STRICT mutual TLS mode across the cluster. A new workload in the 'payments' namespace must accept only traffic from workloads that present a SPIFFE identity of 'cluster.local/ns/payments/sa/payment-processor'. All other inbound traffic, including from other namespaces, must be denied. You create an AuthorizationPolicy in the 'payments' namespace. Which configuration correctly enforces this requirement?

A.Set action: ALLOW with rules matching source.principals: ["cluster.local/ns/payments/sa/payment-processor"].
B.Set action: DENY with rules matching source.principals: ["cluster.local/ns/payments/sa/payment-processor"].
C.Set action: ALLOW with rules matching source.ipBlocks: ["10.0.0.0/8"] and source.principals: ["cluster.local/ns/payments/sa/payment-processor"].
D.Set action: ALLOW with rules matching source.namespaces: ["payments"] and source.principals: ["*"].
AnswerA

An ALLOW policy with a source.principals match permits only requests whose peer certificate carries the SPIFFE ID cluster.local/ns/payments/sa/payment-processor. Because Istio's default is to deny when any ALLOW policy exists for the workload, all other identities are implicitly rejected. This exactly implements least-privilege, identity-based access in a STRICT mTLS mesh.

Why this answer

In Istio, when at least one ALLOW AuthorizationPolicy selects a workload, the default becomes deny-all except what the ALLOW rules permit. Specifying source.principals with the exact SPIFFE ID restricts inbound traffic to the payment-processor service account. Other identities are implicitly denied.

This is the canonical way to enforce service-account-level least privilege in a STRICT mTLS mesh.

Exam trap

The trap here is confusing DENY and ALLOW semantics: DENY rules specify what to block, while ALLOW rules specify what to permit when the default is deny.

133
MCQeasy

You are using Istio's telemetry features to monitor your mesh. You want to collect metrics on the number of requests that result in a 5xx error for a specific service. Which Istio component is responsible for generating these metrics?

A.istiod
B.Kiali
C.Prometheus
D.Envoy sidecar proxies
AnswerD

Envoy sidecar proxies are deployed alongside each service instance and intercept all inbound and outbound traffic. They generate a rich set of metrics, including request counts, response codes (like 5xx), and latency. These metrics are exposed on the sidecar's Prometheus endpoint and scraped by Prometheus. Therefore, the sidecar is directly responsible for generating the 5xx error metrics for a service.

Why this answer

Envoy sidecar proxies are the data plane components that handle all service traffic. They are instrumented to emit detailed metrics for each request, including response codes. These metrics are then scraped by Prometheus and can be visualized in tools like Kiali.

The control plane (istiod) configures the proxies but does not generate traffic metrics.

Exam trap

The trap here is attributing metric generation to the monitoring system (Prometheus) or the control plane, when it is actually the data plane proxies that produce the raw metrics.

134
Multi-Selecthard

Which THREE fields are found within the 'trafficPolicy' block of a DestinationRule?

Select 3 answers
A.loadBalancer
B.retries
C.connectionPool
D.mirroring
E.outlierDetection
AnswersA, C, E

The `trafficPolicy` block accepts `loadBalancer`, which configures how Istio distributes requests across a service's endpoints — for example `ROUND_ROBIN`, `LEAST_REQUEST` or `RANDOM`. This satisfies the stem's requirement for a genuine trafficPolicy field, since load balancing policy is defined there rather than in the DestinationRule's top-level spec.

Why this answer

The trafficPolicy block of an Istio DestinationRule supports loadBalancer (A), which defines how requests are distributed across the endpoints of the destination (e.g., ROUND_ROBIN, LEAST_REQUEST, RANDOM, PASSTHROUGH); connectionPool (C), which configures TCP and HTTP connection limits such as maxConnections, http1MaxPendingRequests, and http2MaxRequests; and outlierDetection (E), which enables passive health checking by ejecting unhealthy hosts based on consecutive errors (consecutive5xxErrors, interval, baseEjectionTime). These three are all valid top-level fields nested directly under trafficPolicy in the DestinationRule spec. The retries field (B) is not part of DestinationRule trafficPolicy; retry behavior is configured via a VirtualService's HTTP route retries block.

The mirroring field (D) is likewise not in DestinationRule trafficPolicy; traffic mirroring is defined in a VirtualService HTTP route using the mirror and mirrorPercentage fields.

Exam trap

ICA often tests the distinction between VirtualService and DestinationRule features, causing candidates to incorrectly assign retries or mirroring to DestinationRule's trafficPolicy.

135
MCQeasy

Where do you define the hosts that a Gateway will listen on?

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

The Gateway resource's servers block declares the hosts, port and TLS settings the ingress or egress proxy listens on. This satisfies the stem directly: host definitions belong to the Gateway, while routing rules referencing that gateway live in the VirtualService.

Why this answer

The hosts field inside the servers block of a Gateway resource defines the hostnames.

136
MCQeasy

To perform a canary deployment, you have two versions of a service. Which resource do you use to split traffic between them?

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

Istio's VirtualService defines routing rules, including weighted destination subsets, so you can direct a percentage of traffic to the canary version and the remainder to the stable one. DestinationRule merely defines those subsets; the VirtualService performs the actual traffic split.

Why this answer

In Istio, the VirtualService resource defines routing rules that determine how requests are matched and distributed to destinations. To split traffic between two versions of a service for a canary deployment, you configure weighted routes (e.g., 90/10) inside a VirtualService's http route block, each pointing to a subset defined in a DestinationRule.

Exam trap

The trap here is confusing DestinationRule with VirtualService — candidates often assume the resource that defines subsets also performs the traffic split, when in fact VirtualService does the routing and DestinationRule only defines the subsets.

How to eliminate wrong answers

Option A is wrong because a DestinationRule defines policies that apply after routing has occurred — such as subsets, load balancing, and connection pool settings — but it does not itself split traffic between versions. Option B is wrong because a Gateway configures ingress/egress listeners at the edge of the mesh (ports, hosts, TLS) and does not perform traffic splitting between service versions. Option C is wrong because a Sidecar resource controls the scope of configuration pushed to sidecar proxies (namespace/port visibility), not traffic distribution.

137
MCQmedium

In an AuthorizationPolicy, what does the 'ALLOW' action mean when combined with an empty rule set?

A.It allows all requests.
B.It crashes the proxy.
C.It requires valid mTLS.
D.It denies all requests.
AnswerA

An ALLOW action paired with an empty rule set matches every request unconditionally, because no conditions restrict which traffic qualifies. This differs from ALLOW with populated rules, which permits only requests satisfying those specific conditions, and from DENY, which blocks matching traffic.

Why this answer

An empty 'rules' section in an 'ALLOW' policy effectively allows all requests that meet the identity criteria, or if no source/to constraints are specified, it allows everything.

138
MCQmedium

A DestinationRule is configured with a 'v1' subset but traffic is failing. Where should you check for the label match?

A.EnvoyFilter
B.VirtualService
C.DestinationRule spec
D.Gateway spec
AnswerC

The subset's label selector lives in the DestinationRule spec, under subsets[].labels. If those labels do not match the pod labels, no endpoints populate the subset and traffic fails, so that is where the match must be verified.

Why this answer

DestinationRule uses 'subsets' that map to 'labels' on Kubernetes pods.

139
MCQeasy

Which command is used to display the currently active PeerAuthentication policies in the mesh?

A.istioctl analyze
B.istioctl get peerauthentication
C.kubectl get peerauthentication -A
D.kubectl describe mtls
AnswerC

Listing the PeerAuthentication custom resources across all namespaces queries the live mesh configuration directly, so it reveals every policy currently enforced. The -A flag satisfies the requirement to show policies mesh-wide rather than only those in the current namespace.

Why this answer

The 'kubectl get peerauthentication -A' command is the standard way to list all PeerAuthentication resources in the cluster.

140
MCQmedium

Which type of routing allows you to route to different services based on URL path?

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

VirtualService HTTP route match rules support URI path conditions, directing requests to distinct destinations based on the URL path. This path-based routing capability is exactly what the scenario requires, unlike DestinationRule, which handles subsets and policies after routing is decided.

Why this answer

VirtualService 'match' can use 'uri' with 'prefix' or 'exact' matches to route to different services.

141
MCQmedium

How can you verify the current configuration being pushed to an Envoy sidecar without using Kiali?

A.istioctl analyze
B.kubectl get virtualservice
C.istioctl proxy-config
D.kubectl describe pod
AnswerC

istioctl proxy-config reads the sidecar's live Envoy configuration directly from the proxy, showing clusters, listeners, routes and endpoints. It satisfies the constraint of verifying pushed configuration without Kiali, querying the data plane rather than relying on the dashboard.

Why this answer

The `istioctl proxy-config` command retrieves the actual Envoy configuration (clusters, listeners, routes, endpoints) from a specific sidecar, allowing you to verify what is currently pushed without Kiali. It queries the Envoy admin API on the proxy and formats the output. This is the standard CLI method for inspecting sidecar config.

Exam trap

ICA often tests the confusion between configuration resources (VirtualService, etc.) and the actual Envoy config, leading candidates to pick `kubectl get virtualservice` instead of `istioctl proxy-config`.

How to eliminate wrong answers

Option A is wrong because `istioctl analyze` performs static analysis of Istio configuration for potential issues; it does not show the live Envoy config pushed to a sidecar. Option B is wrong because `kubectl get virtualservice` shows the Istio VirtualService resource, not the Envoy configuration that results from it; it does not verify what the sidecar actually received. Option D is wrong because `kubectl describe pod` shows Kubernetes pod metadata and events, not the Envoy proxy configuration.

142
MCQmedium

Which resource type is used for mTLS policy?

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

PeerAuthentication enforces mutual TLS between workloads in the Istio mesh, satisfying the requirement for an mTLS policy resource. Its mtls mode setting (STRICT, PERMISSIVE or DISABLE) controls whether sidecar proxies accept only encrypted, certificate-authenticated connections, directly configuring transport-level authentication rather than authorisation or routing.

Why this answer

PeerAuthentication is the specific CRD for mTLS.

143
MCQmedium

What is the primary function of the 'PeerAuthentication' resource?

A.Apply rate limits to requests.
B.Configure mTLS mode for workloads.
C.Limit egress traffic to external sites.
D.Route traffic based on headers.
AnswerB

PeerAuthentication defines the mutual TLS mode Istio applies to workloads in a namespace or mesh, satisfying the requirement to control service-to-service encryption. Its mtls.mode field accepts STRICT, PERMISSIVE or DISABLE, governing whether sidecars accept plaintext alongside encrypted traffic. This makes it the resource for configuring workload mTLS behaviour.

Why this answer

PeerAuthentication allows you to define the mTLS mode (STRICT, PERMISSIVE, DISABLE) for workloads within a namespace or the entire mesh.

144
MCQmedium

When configuring an IstioOperator file, what does the 'spec.meshConfig' section primarily control?

A.Mesh-wide proxy and traffic behavior policies
B.The version of Istio to install
C.The ingress gateway load balancer IP
D.Kubernetes deployment manifests for Istiod
AnswerA

MeshConfig sets mesh-wide defaults for Envoy proxies, covering access logging, tracing, and traffic policy such as mutual TLS and outbound traffic handling. It satisfies the requirement for cluster-wide behaviour rather than per-workload settings, which belong in sidecar or destination rule resources.

Why this answer

The `spec.meshConfig` section in an IstioOperator file configures mesh-wide settings that apply to all sidecar proxies and gateways, such as access logging, tracing, and default traffic policies. It directly influences the behavior of the Envoy proxies, including protocol detection, keepalive settings, and mutual TLS enforcement. These settings are propagated to all proxies via the Istio control plane, ensuring consistent behavior across the mesh.

Exam trap

ICA often tests the distinction between mesh-wide settings and component-specific configurations, causing candidates to confuse `meshConfig` with `components` or `version` fields.

How to eliminate wrong answers

Option B is wrong because the Istio version is specified in `spec.version` or via the `--set revision` flag, not in `meshConfig`. Option C is wrong because the ingress gateway load balancer IP is configured in the `spec.components.ingressGateways` section, specifically under `k8s.service.annotations` or `k8s.service.loadBalancerIP`. Option D is wrong because Kubernetes deployment manifests for Istiod are not directly controlled by `meshConfig`; they are managed through the `spec.components.pilot` section or Helm values.

145
MCQhard

How do you specify a custom header match in a VirtualService?

A.Using a DestinationRule
B.Using a ServiceEntry
C.Using a Gateway
D.Using the match field in a VirtualService
AnswerD

The match field within an HTTP route accepts header criteria, letting you specify exact, prefix or regex matches on a named header. This satisfies the stem's requirement for defining custom header matching in a VirtualService.

Why this answer

The match block within a VirtualService route supports header matching using the headers key.

146
MCQeasy

What is the primary function of the 'root-cert.pem' file in the Istio control plane?

A.To authorize HTTP requests.
B.To authenticate JWT tokens.
C.To encrypt user data in transit.
D.To establish the chain of trust for mTLS.
AnswerD

root-cert.pem holds the trusted root CA certificate that both workloads and the Istio control plane use to validate peer certificates, anchoring the mTLS trust chain. This satisfies the stem's constraint by providing the common trust anchor for certificate verification.

Why this answer

root-cert.pem is the root CA certificate used by Istio's Citadel (istiod) to sign intermediate CA certificates, which in turn sign workload certificates. It anchors the chain of trust that enables mutual TLS between sidecars, so every workload certificate can be verified back to this root. Without a shared root, mTLS handshakes between meshes or across clusters fail.

Exam trap

ICA often tests the distinction between authentication, authorization, and encryption primitives, so the trap is confusing the root CA's trust-anchoring role with JWT authentication or payload encryption.

How to eliminate wrong answers

Option A is wrong because HTTP request authorization is handled by AuthorizationPolicy and Envoy RBAC filters, not by a CA certificate. Option B is wrong because JWT authentication uses RequestAuthentication with a JWKS (JSON Web Key Set), not root-cert.pem. Option C is wrong because encrypting user data in transit is a function of the TLS session keys derived during the mTLS handshake; root-cert.pem only establishes trust, it does not itself encrypt payloads.

147
MCQhard

You have a DestinationRule with outlier detection enabled. If a host returns 5 consecutive 5xx errors and the 'interval' is set to 1s, what happens if 'baseEjectionTime' is 30s?

A.It is ejected for 30 seconds
B.It is ejected for 1 second
C.It is removed permanently
D.It is ignored because the interval is too small
AnswerA

Outlier detection ejects the host for baseEjectionTime once consecutive 5xx errors reach the threshold within the interval. Five errors in one second triggers ejection, so the host is removed from the load-balancing pool for 30 seconds.

Why this answer

The host is ejected from the load balancing pool for 30 seconds.

148
MCQhard

You want to inject a fault to test application resilience. Which field in the VirtualService supports this?

A.weight
B.fault
C.retry
D.mirror
AnswerB

The fault field injects delays or aborts into a percentage of requests at the Envoy proxy, directly satisfying the resilience-testing requirement without touching application code. Other VirtualService fields handle routing, retries and mirroring, but only fault deliberately corrupts traffic.

Why this answer

The fault field in the route block allows for abort or delay injection.

149
MCQhard

You need to route traffic to a service based on the 'x-user-type' header. How is this defined?

A.ServiceEntry
B.DestinationRule subset
C.Gateway host
D.VirtualService match
AnswerD

A VirtualService match inspects HTTP headers directly, so an exact or regex match on `x-user-type` routes requests to the appropriate destination. This satisfies the stem's requirement to route by that header, unlike host- or path-based rules, which cannot discriminate on arbitrary request headers.

Why this answer

The match field in a VirtualService can include a 'headers' condition with exact or regex matching.

150
MCQhard

You have an external dependency that is not in the Kubernetes registry. How do you allow the mesh services to communicate with it?

A.Create a VirtualService
B.Create a ServiceEntry
C.Create an EnvoyFilter
D.Create a DestinationRule
AnswerB

A ServiceEntry adds the external dependency to Istio's internal service registry, giving mesh sidecars the DNS name, endpoints and ports needed to route traffic to it. This directly satisfies the stem's constraint: the dependency is absent from the Kubernetes registry, so mesh services cannot otherwise resolve or reach it.

Why this answer

A ServiceEntry adds an external service to Istio's internal service registry, giving it a mesh-internal hostname, ports, and resolution mode. Once registered, mesh sidecars can route to the external dependency through Istio's traffic management (with policies, TLS origination, etc.). This is the canonical way to allow egress to services not in the Kubernetes registry.

Exam trap

ICA often tests the misconception that VirtualService or DestinationRule can register external services, when only ServiceEntry adds entries to Istio's service registry.

How to eliminate wrong answers

Option A is wrong because a VirtualService defines routing rules for hosts already known to Istio; it cannot introduce a new external host into the registry by itself. Option C is wrong because EnvoyFilter patches the underlying Envoy configuration directly — it is a low-level escape hatch, not the supported mechanism for registering external services. Option D is wrong because DestinationRule applies traffic policy (load balancing, TLS, outlier detection) to a host that must already exist in the registry; it does not create the registry entry.

Page 1

Page 2 of 4

Page 3

All pages