Courseiva

Istio Certified Associate (ICA, CNCF/Linux Foundation) (ICA) (ICA) — Questions 1–75

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

Page 1 of 4

Page 2
1
Multi-Selectmedium

Which THREE fields are found in the 'http' connectionPool configuration?

Select 3 answers
A.idleTimeout
B.maxRequestsPerConnection
C.maxConnections
D.http2MaxRequests
E.maxRetries
AnswersA, B, D

idleTimeout is a genuine field within the http connectionPool configuration, specifying how long an unused connection is retained before being closed. It satisfies the stem's requirement by belonging to that connectionPool block, alongside http2MaxRequests and maxRequestsPerConnection.

Why this answer

http2MaxRequests, maxRequestsPerConnection, and idleTimeout are valid fields.

2
MCQmedium

You want to limit the number of concurrent connections to the 'payment' service to 100. Where is this configuration set?

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

The `trafficPolicy.connectionPool.tcp.maxConnections` field in a DestinationRule caps concurrent TCP connections to the payment service at 100. Istio applies this limit at the sidecar proxy when initiating upstream connections, satisfying the stem's concurrency constraint without altering the service itself.

Why this answer

Connection pool limits such as `maxConnections` and `http1MaxPendingRequests` are configured in the DestinationRule's `trafficPolicy.connectionPool` section, which applies to the destination service. This is where Istio exposes Envoy's circuit-breaking settings for outbound traffic to a service.

Exam trap

ICA often tests the boundary between VirtualService (routing) and DestinationRule (traffic policy) — candidates who associate all traffic control with VirtualService pick it for connection limits.

How to eliminate wrong answers

Option B is wrong because EnvoyFilter is a low-level escape hatch for patching Envoy config directly; while you could theoretically set connection limits there, it is not the intended or supported configuration point for connection pool limits. Option C is wrong because ServiceEntry registers external services into the mesh — it controls service discovery, not connection limits. Option D is wrong because VirtualService handles routing (hosts, match conditions, retries, timeouts, fault injection), not connection pool sizing; connection limits belong to the destination's traffic policy.

3
MCQeasy

Which component is responsible for distributing the security policies (like AuthorizationPolicy) to the Envoy sidecars?

A.Kubernetes API Server
B.Istiod
C.Prometheus
D.Envoy
AnswerB

Istiod's control plane watches Istio configuration resources such as AuthorizationPolicy and translates them into Envoy-native configuration, then pushes updates to each sidecar through the xDS protocol. This distribution mechanism satisfies the stem's requirement that policies reach every sidecar without manual intervention or per-pod configuration.

Why this answer

Istiod is the control plane component responsible for distributing configuration to sidecars via the xDS protocol.

4
MCQhard

Which resource configuration is necessary to allow a service to communicate with a database outside the mesh using TLS?

A.Only PeerAuthentication
B.Only Gateway
C.Only VirtualService
D.ServiceEntry and DestinationRule
AnswerD

ServiceEntry registers the external database host in the mesh registry, while DestinationRule defines the TLS origination policy for that host. Together they satisfy the stem's constraint: enabling mesh egress to an external database over TLS.

Why this answer

A ServiceEntry is needed to register the database host, and a DestinationRule is needed to define TLS settings.

5
MCQeasy

When using Istio with Kubernetes Gateway API, which object handles traffic routing rules based on path prefixes?

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

HTTPRoute attaches to a Gateway and defines path-prefix matching rules, satisfying the requirement for path-based routing. Unlike TCPRoute, which operates at layer 4 without HTTP awareness, HTTPRoute provides layer 7 host, header and path matching. Istio's Gateway API implementation reconciles HTTPRoute resources to configure Envoy route configurations.

Why this answer

HTTPRoute is the specific Gateway API resource for routing HTTP traffic based on hostnames, paths, and headers.

6
MCQmedium

What happens if a request times out in Istio?

A.The request is retried automatically.
B.The proxy returns a 408 Request Timeout.
C.The request is passed to another healthy host.
D.The proxy returns a 504 Gateway Timeout.
E.The connection is closed without an error.
AnswerD

When the configured timeout elapses without a response, Envoy terminates the upstream request and returns HTTP 504 Gateway Timeout to the caller, distinguishing it from a 503 returned by fault injection or an unavailable endpoint.

Why this answer

If a request exceeds the timeout, the proxy terminates the request and returns a 504 Gateway Timeout.

7
MCQhard

How do you handle SNI-based routing in a Gateway?

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

The Gateway's TLS section configures SNI-based routing by matching the server name presented during the TLS handshake to a credentialName, directing traffic to the appropriate hosts. Without it, the gateway cannot distinguish virtual hosts on shared ports.

Why this answer

The TLS block in the Gateway server configuration handles SNI and certificate management.

8
MCQhard

You notice your traffic is not being routed correctly despite a VirtualService. Which step is most likely to resolve common issues?

A.Delete the Gateway
B.Increase the sidecar memory limit
C.Restart the ingress gateway
D.Ensure DestinationRule subsets match VirtualService destination labels
AnswerD

Mismatched subset labels between DestinationRule and VirtualService cause routing failures, since the VirtualService references a subset name that the DestinationRule must define against matching pod labels. Verifying these align resolves the common misconfiguration where traffic silently falls back or fails, satisfying the stem's requirement to correct faulty routing.

Why this answer

In Istio, a VirtualService routes traffic to destination hosts, and when it references subsets (e.g., v1, v2), those subset names must be defined in a corresponding DestinationRule with matching labels. If the DestinationRule subsets do not match the labels used by the VirtualService destinations, routing fails or traffic is misdirected. Verifying that subset labels align between the two resources is the standard first troubleshooting step for VirtualService routing problems.

Exam trap

The trap here is assuming routing failures are infrastructure or resource problems (restart the gateway, add memory) when the actual cause is almost always a configuration mismatch between DestinationRule subsets and VirtualService destination labels.

How to eliminate wrong answers

Option A is wrong because deleting the Gateway removes the ingress entry point entirely and would break external access rather than fix internal routing; the Gateway is not the source of subset mismatch. Option B is wrong because increasing the sidecar memory limit addresses resource exhaustion, not routing logic; misrouting caused by label mismatches is a configuration error that memory changes cannot resolve. Option C is wrong because restarting the ingress gateway only temporarily clears state and does not correct a DestinationRule/VirtualService label mismatch, so the problem would recur immediately.

9
Multi-Selecthard

A mesh operator needs to configure a DestinationRule so that the sidecar reuses existing HTTP/2 connections to an upstream service and automatically ejects endpoints that return repeated 5xx errors. Which two configuration elements are required to meet these goals? (Choose two.)

Select 2 answers
A.Set trafficPolicy.connectionPool.http.http2MaxRequests and maxRequestsPerConnection to bound and reuse concurrent streams on each connection.
B.Define trafficPolicy.outlierDetection with consecutive5xxErrors and an ejection interval so failing endpoints are removed from the load balancing pool.
C.Set trafficPolicy.connectionPool.http.h2UpgradePolicy to UPGRADE so HTTP/1.1 connections are upgraded to HTTP/2 for multiplexing.
D.Configure a ServiceEntry that registers the upstream service as an external endpoint with resolution DNS.
E.Add a PeerAuthentication with mtls.mode STRICT to force mutual TLS between the sidecars for the upstream service.
AnswersA, B

http2MaxRequests limits concurrent streams per connection and maxRequestsPerConnection forces a connection to be recycled after a set number of requests, which together govern HTTP/2 connection reuse and capacity. Setting these values is how operators tune multiplexing and connection lifecycle at the pool level. This satisfies the connection reuse requirement while the outlier detection block handles ejection.

Why this answer

Connection reuse under HTTP/2 is governed by the connectionPool.http fields such as http2MaxRequests and maxRequestsPerConnection, which bound concurrent streams and recycle connections. Automatic removal of endpoints returning repeated 5xx errors is provided by outlierDetection with consecutive5xxErrors and an ejection interval. Together these two blocks in DestinationRule trafficPolicy satisfy both stated goals without adding unrelated security or registry configuration.

Exam trap

The trap here is assuming h2UpgradePolicy alone delivers connection reuse, when the pool limits and outlier detection blocks are what actually control reuse and ejection.

10
Multi-Selectmedium

Which resources control mTLS settings? (Choose TWO)

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

DestinationRule configures mTLS for traffic to a service by setting the TLS mode within its trafficPolicy, satisfying the requirement to control mutual authentication between sidecars. It governs the client side of a connection, enforcing STRICT or PERMISSIVE modes, which is why it is one of the two resources that manage mTLS settings.

Why this answer

In Istio, mTLS settings are controlled by two resources: DestinationRule and PeerAuthentication. DestinationRule (B) is correct because its trafficPolicy.tls.mode field (e.g., ISTIO_MUTUAL, DISABLE, SIMPLE, MUTUAL) configures how a client sidecar initiates TLS/mTLS to an upstream service. PeerAuthentication (C) is correct because its mtls.mode field (STRICT, PERMISSIVE, DISABLE) defines the server-side policy for whether a workload accepts mTLS connections.

Gateway (A) configures ingress/egress TLS termination for external traffic, not service-to-service mTLS policy. ServiceEntry (D) registers external services into the mesh and does not set mTLS modes. VirtualService (E) handles routing rules (hosts, routes, retries) and has no mTLS configuration field.

11
MCQmedium

A security team requires that all traffic to the 'payments' service must originate from a specific IP range (10.0.0.0/24). How can this be achieved?

A.Configure the Gateway to filter by IP.
B.Use a ServiceEntry to restrict traffic.
C.Create an AuthorizationPolicy with 'source.ipBlocks: ["10.0.0.0/24"]'.
D.Create a PeerAuthentication policy with 'ipBlocks'.
AnswerC

AuthorizationPolicy source.ipBlocks matches the originating IP against the specified CIDR ranges, so only requests from 10.0.0.0/24 are permitted to reach the payments service. Other sources are denied, enforcing the security team's origin restriction at the Envoy layer.

Why this answer

The AuthorizationPolicy supports 'source.ipBlocks' to whitelist or blacklist specific CIDR ranges.

12
Multi-Selectmedium

You want to configure your microservice to be more resilient. Which THREE of the following are valid fields within an 'outlierDetection' policy in a DestinationRule?

Select 3 answers
A.consecutive5xxErrors
B.interval
C.http2MaxRequests
D.baseEjectionTime
E.maxRequestsPerConnection
AnswersA, B, D

consecutive5xxErrors sets how many sequential server errors an endpoint must return before it is ejected from the load-balancing pool. This satisfies the resilience constraint by removing unhealthy hosts quickly, preventing repeated failures reaching a degraded instance.

Why this answer

In Istio's DestinationRule, the outlierDetection policy supports consecutive5xxErrors (A), which sets the number of consecutive 5xx errors that trigger ejection of a host from the load-balancing pool. It also supports interval (B), which defines the time interval between ejection sweep analyses of the hosts. And it supports baseEjectionTime (D), which specifies the minimum ejection duration for an outlier host, multiplied by the number of times it has been ejected.

The options http2MaxRequests (C) and maxRequestsPerConnection (E) are not part of outlierDetection; they belong to the connectionPool settings (specifically the http and tcp subfields) of a DestinationRule's trafficPolicy, used for connection-pool limits rather than outlier ejection.

Exam trap

ICA often tests the confusion between outlierDetection fields and connectionPool fields, as both are part of DestinationRule and relate to traffic management, but serve different purposes.

13
MCQmedium

What is the default value for 'consecutive5xx' in OutlierDetection?

A.10
B.20
C.0
D.5
E.1
AnswerD

Five consecutive 5xx responses is the default threshold before Istio's outlier detection ejects a host from the load-balancing pool. This satisfies the stem's request for the out-of-the-box `consecutive5xx` value, which applies per host within the interval, requiring no explicit configuration in the DestinationRule.

Why this answer

The default value for consecutive5xx in Istio/Envoy is 5.

14
MCQhard

When using a ServiceEntry for a TCP service, what protocol should be specified?

A.HTTP
B.HTTPS
C.GRPC
D.TCP
AnswerD

TCP is the correct protocol value for a ServiceEntry describing a raw TCP service, since Istio then applies TCP-level routing and load balancing rather than HTTP inspection. It satisfies the stem's constraint of matching the service's actual transport.

Why this answer

The resolution must be set to DNS or STATIC, and the protocol must match the traffic type (TCP).

15
MCQeasy

What is the primary function of the 'istio-proxy' container in a pod?

A.Running the business logic
B.Intercepting network traffic
C.Managing Kubernetes API
D.Monitoring disk usage
AnswerB

The istio-proxy sidecar intercepts inbound and outbound pod traffic via iptables redirection, enabling Envoy to apply mTLS, routing and telemetry without application changes. This satisfies the stem's requirement for the container's primary function: transparent traffic interception at the pod network layer.

Why this answer

It intercepts all network traffic to and from the application container.

16
MCQeasy

You need to limit the number of concurrent connections to the 'orders' service. Which field in the DestinationRule do you configure?

A.trafficPolicy.connectionPool.tcp.maxConnections
B.trafficPolicy.connectionPool.http.maxRequests
C.trafficPolicy.circuitBreaker.maxConnections
D.trafficPolicy.outlierDetection.maxConnections
E.trafficPolicy.loadBalancer.maxConnections
AnswerA

Setting `trafficPolicy.connectionPool.tcp.maxConnections` caps concurrent TCP connections to the 'orders' service, directly satisfying the stem's requirement to limit connection count. Istio's connection pool settings apply per destination host, so this field throttles simultaneous connections at the sidecar before requests reach the workload.

Why this answer

In Istio's DestinationRule, connectionPool.tcp.maxConnections limits the number of concurrent TCP connections to the upstream service. For the 'orders' service, this is the correct field to cap concurrent connections at the TCP layer.

Exam trap

ICA often tests the distinction between TCP-level connection limits (connectionPool.tcp.maxConnections) and HTTP-level request limits (connectionPool.http.maxRequests) — candidates who pick the HTTP field misunderstand the layer at which the limit applies.

How to eliminate wrong answers

Option B is wrong because connectionPool.http.maxRequests limits concurrent HTTP requests, not TCP connections — it applies at the HTTP layer and is a different metric. Option C is wrong because circuitBreaker is not a valid field in DestinationRule's trafficPolicy; circuit breaking is achieved via outlierDetection and connectionPool. Option D is wrong because outlierDetection handles passive health checking and endpoint ejection, not connection limits.

Option E is wrong because loadBalancer configures the load-balancing algorithm (ROUND_ROBIN, LEAST_REQUEST, etc.), not connection limits.

17
MCQmedium

If you want to use a custom proxy image for your sidecars, where should this be specified in the IstioOperator configuration?

A.spec.components.proxy.image
B.spec.meshConfig.defaultConfig.proxyImage
C.spec.sidecarInjector.image
D.spec.values.global.proxy.image
AnswerD

The proxy image is a global mesh-wide setting, so it belongs under spec.values.global.proxy.image in the IstioOperator resource. Placing it there overrides the default sidecar image for every injected workload rather than a single namespace or deployment.

Why this answer

The 'spec.values.global.proxy.image' field is used to override the default image for the sidecar proxies.

18
MCQeasy

Which Istio component is responsible for enforcing the AuthorizationPolicy at the workload level?

A.Envoy Proxy
B.Citadel
C.Ingress Gateway
D.Istiod
AnswerA

Envoy Proxy runs as the sidecar enforcing AuthorizationPolicy decisions at the workload level. Istiod distributes the policy configuration, but the actual allow or deny enforcement on each request happens inside the Envoy filter chain, satisfying the requirement for workload-level enforcement.

Why this answer

The Envoy proxy (sidecar) intercepts all inbound and outbound traffic and enforces policies defined in AuthorizationPolicy.

19
MCQeasy

You want to test a new version of a service by sending a copy of live traffic to it. What feature should you use?

A.subsetting
B.fault injection
C.mirroring
D.canary
AnswerC

Mirroring sends a duplicate of live production traffic to the new service version while the primary still serves real responses, letting you test the new version under genuine load without impacting users. This matches the requirement precisely.

Why this answer

Traffic mirroring allows sending a copy of traffic to a different service without affecting the main response.

20
MCQeasy

What is the default load balancing policy if none is specified in the DestinationRule?

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

ROUND_ROBIN is Istio's default load balancing policy when a DestinationRule omits the field, distributing requests sequentially across healthy endpoints in each subset. This satisfies the stem's constraint of no explicitly specified policy, so traffic spreads evenly without requiring any additional configuration.

Why this answer

Istio defaults to ROUND_ROBIN if not specified.

21
Multi-Selecteasy

Which TWO components must be configured to allow external traffic to enter the mesh?

Select 2 answers
A.DestinationRule
B.VirtualService
C.Gateway
D.PeerAuthentication
E.Sidecar
AnswersB, C

A VirtualService binds routing rules to the Gateway, matching hosts and directing inbound traffic to mesh services. Without it, the Gateway accepts connections but has no routes, so external traffic cannot reach workloads. Both components together satisfy the requirement for external ingress.

Why this answer

In Istio, the Gateway resource (option C) is the component that configures the ingress/egress load balancer at the edge of the mesh, binding a port and hosts (e.g., servers: port 80, hosts: "*") so external traffic can reach the mesh. The VirtualService (option B) is required to bind to that Gateway via its gateways field and define the routing rules (match and route) that direct the incoming external requests to the appropriate destination service inside the mesh. Together, Gateway + VirtualService form the standard ingress path: the Gateway opens the door and the VirtualService decides where traffic goes.

DestinationRule (A) only defines traffic policies like load balancing, connection pools, and subsets after routing occurs, so it is not required to admit external traffic. PeerAuthentication (D) configures mTLS authentication between workloads and does not expose services externally, and Sidecar (E) scopes sidecar proxy configuration per workload namespace rather than enabling ingress.

Exam trap

ICA often tests the misconception that a Gateway alone exposes a service — candidates forget that a VirtualService must bind to the Gateway to actually route external traffic to the backend.

22
MCQmedium

When using Kubernetes Gateway API with Istio, which resource acts as the entry point for incoming traffic?

A.Service
B.Gateway
C.Ingress
D.HTTPRoute
AnswerB

Gateway defines the listener configuration and ports that expose the mesh to inbound traffic, satisfying the requirement for a dedicated entry point. It binds to a GatewayClass and routes requests onward via HTTPRoute resources, separating infrastructure-level ingress from application routing rules.

Why this answer

The Gateway resource defines the entry point, including listeners, ports, and protocols.

23
MCQeasy

Which profile is recommended for a production environment where high availability and performance are required?

A.minimal
B.empty
C.default
D.demo
AnswerC

The default profile provides the full set of capabilities with no restrictions, so it supports the redundancy and throughput a production deployment demands. Restricted profiles strip features for security or testing, which would undermine the high availability and performance the stem requires.

Why this answer

The 'default' profile is the recommended choice for production environments because it installs the core Istio components (istiod and a production-grade ingress gateway) with sensible resource requests and without the demo-only extras. It balances functionality, performance, and resource footprint, making it suitable for high-availability deployments. The minimal profile strips components needed for production traffic management, while demo is explicitly not for production.

Exam trap

The trap is choosing 'demo' because it sounds feature-rich or 'minimal' because it sounds efficient — candidates must recall that Istio explicitly documents 'default' as the production-recommended profile and 'demo' as unsuitable for production.

How to eliminate wrong answers

Option A is wrong because the 'minimal' profile installs only istiod without an ingress gateway, which is insufficient for production traffic ingress and high-availability requirements. Option B is wrong because 'empty' installs no components at all — it is a starting point for fully custom installations, not a production-ready profile. Option D is wrong because the 'demo' profile enables verbose logging, high tracing sampling, and includes components like the egress gateway and Kiali/ Grafana/ Jaeger add-ons that consume significant resources and are explicitly documented as not for production use.

24
MCQeasy

You are reviewing a VirtualService for the 'reviews' service. The service has a timeout of 5 seconds configured. You want to ensure that if a request takes longer than 5 seconds, it is aborted with a 504 Gateway Timeout. Which field in the VirtualService should you configure?

A.retries
B.timeout
C.corsPolicy
D.fault.delay
AnswerB

The timeout field in an HTTP route specifies the maximum time a request can take before it is aborted. When the timeout is exceeded, Istio returns a 504 Gateway Timeout to the client. Setting this field to 5s ensures that requests taking longer than 5 seconds are terminated with the appropriate error. This directly fulfills the scenario's requirement.

Why this answer

The timeout field in a VirtualService HTTP route sets the maximum duration for a request. When exceeded, Istio aborts the request and returns a 504 Gateway Timeout. The other fields handle retries, fault injection, or CORS, none of which enforce a request duration limit.

Exam trap

The trap here is confusing timeout with retries or fault.delay, which serve different purposes.

25
MCQmedium

If you set 'mode: PERMISSIVE' in PeerAuthentication, what does this allow?

A.It allows both mTLS and plaintext.
B.It requires plaintext only.
C.It requires mTLS only.
D.It disables all security.
AnswerA

PERMISSIVE mode accepts both mutual TLS traffic from sidecar-injected workloads and plaintext traffic from sources without sidecars, easing migration. It does not enforce mTLS; STRICT is required for that, so plaintext connections remain accepted on the same port.

Why this answer

PERMISSIVE mode allows both mTLS and plaintext traffic to coexist, which is ideal for migrations.

26
MCQmedium

What is the purpose of the 'retryOn' field in a VirtualService?

A.To limit total attempts
B.To specify wait time
C.To specify conditions for retrying
D.To enable circuit breaking
AnswerC

The retryOn field lists the conditions, such as connect-failure, reset or gateway-error, that trigger Istio to retry a failed request to the destination. It defines when retries occur, while attempts and perTryTimeout govern how many and how long.

Why this answer

It specifies the conditions (e.g., 5xx, gateway-error) that trigger a retry.

27
MCQeasy

You need to expose a service to traffic outside the mesh using Istio. Which resource is required to configure the entry point for incoming traffic?

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

A Gateway configures the ingress listener at the mesh edge, defining ports, hosts and TLS for incoming external traffic. It satisfies the stem's requirement to expose a service outside the mesh, with a VirtualService binding routes to it.

Why this answer

The Gateway resource describes a load balancer operating at the edge of the mesh.

28
MCQmedium

What happens if a RequestAuthentication policy is applied, but no JWT is provided in the request?

A.The request is routed to the login page.
B.The request is allowed by default.
C.The request is rejected automatically.
D.The request is dropped.
AnswerB

A RequestAuthentication policy only validates JWTs when one is present; it does not itself reject requests lacking a token. Because no JWT is supplied, the policy performs no validation and the request passes through, satisfying the stem's scenario. Rejection requires a separate AuthorizationPolicy with JWT rules configured.

Why this answer

In Istio, a RequestAuthentication policy only validates JWTs if they are present. If no JWT is provided, the request is allowed by default unless an AuthorizationPolicy explicitly requires authentication. This is because RequestAuthentication does not enforce rejection; it only specifies how to validate tokens.

To reject requests without valid tokens, you must pair it with an AuthorizationPolicy that requires a valid JWT.

Exam trap

ICA often tests the misconception that RequestAuthentication alone rejects unauthenticated requests, when it only validates tokens if present; an AuthorizationPolicy is needed to enforce rejection.

How to eliminate wrong answers

Option A is wrong because Istio does not automatically route to a login page; that would require custom configuration. Option C is wrong because RequestAuthentication alone does not reject requests without JWTs; it only validates when present. Option D is wrong because dropping the request would require an explicit deny rule, not just RequestAuthentication.

29
MCQmedium

You need to limit the number of concurrent connections to the 'order-service' to prevent cascading failures. Which Istio resource should you configure?

A.Sidecar
B.VirtualService
C.DestinationRule
D.EnvoyFilter
AnswerC

DestinationRule hosts traffic policies for a service, including connectionPool settings that cap concurrent connections and pending requests to order-service. This limits in-flight connections, preventing one slow dependency from exhausting resources and causing cascading failures across the mesh.

Why this answer

The DestinationRule resource allows you to define traffic policies, including connection pool settings, which control concurrent connections and requests.

30
MCQhard

You are using Istio's authorization policies to secure a workload. You want to allow requests only from a specific service account in another namespace, but only for HTTP GET requests to the path '/api/v1/data'. The service account is 'data-reader' in namespace 'analytics'. Which AuthorizationPolicy rule correctly implements this?

A.rules: - from: - source: namespaces: ["analytics"] to: - operation: methods: ["GET"] paths: ["/api/v1/data"]
B.rules: - from: - source: principals: ["cluster.local/ns/analytics/sa/data-reader"] to: - operation: paths: ["/api/v1/data"]
C.rules: - from: - source: principals: ["cluster.local/ns/analytics/sa/data-reader"] to: - operation: methods: ["GET"]
D.rules: - from: - source: principals: ["cluster.local/ns/analytics/sa/data-reader"] to: - operation: methods: ["GET"] paths: ["/api/v1/data"]
AnswerD

This rule correctly combines a source principal match with an operation match. The 'from' field restricts the source to the specified SPIFFE identity, and the 'to' field restricts the request to HTTP GET on the exact path. This enforces both identity-based and method/path-based access control in a single AuthorizationPolicy rule.

Why this answer

The correct rule must combine both source principal and operation constraints. Using source.principals with the SPIFFE ID restricts to the specific service account, and operation.methods and operation.paths restrict to GET on the exact path. This ensures least privilege.

Omitting either the service account specificity, the method, or the path would result in overly broad access.

Exam trap

The trap here is using namespace-level source matching instead of service-account-level principals, or forgetting to include both method and path conditions, leading to broader access than intended.

31
MCQmedium

When using IstioOperator to customize the installation, you want to change the number of replicas for the Istiod control plane. Where should this be defined?

A.spec.values.pilot.scaling
B.spec.meshConfig.pilot.replicas
C.spec.pilot.replicas
D.spec.components.pilot.k8s.replicaCount
AnswerD

Setting replica counts for Istiod belongs under the pilot component, since Istio's control plane daemon is named pilot internally. The IstioOperator schema nests Kubernetes-specific settings beneath `k8s`, so `spec.components.pilot.k8s.replicaCount` is the precise path that satisfies the stem's requirement to scale Istiod replicas.

Why this answer

The IstioOperator API defines component-level Kubernetes settings under spec.components.<component>.k8s, so the Istiod replica count is set at spec.components.pilot.k8s.replicaCount. This is the canonical location for overriding the pilot (Istiod) Deployment's replica count during installation. The value is merged into the generated Istiod Deployment manifest, allowing you to scale the control plane declaratively via the operator.

Exam trap

ICA often tests the confusion between Helm values (spec.values.*) and the IstioOperator component schema (spec.components.*.k8s.*), causing candidates to pick a Helm-style path like spec.values.pilot.replicas instead of the correct component-based field.

How to eliminate wrong answers

Option A is wrong because spec.values.pilot.scaling is not a valid IstioOperator field; values.pilot is a Helm-style passthrough for pilot configuration (e.g., env, resources), and there is no 'scaling' key there. Option B is wrong because spec.meshConfig.pilot.replicas is invalid: meshConfig configures mesh-wide behavior (e.g., access logging, discovery selectors), not Kubernetes replica counts. Option C is wrong because spec.pilot.replicas does not exist in the IstioOperator schema; pilot settings are nested under spec.components.pilot, not directly under spec.

32
MCQeasy

What is the purpose of the 'istio-system' namespace?

A.Ingress only
B.App storage
C.Control plane
D.Proxy logs
AnswerC

The istio-system namespace hosts Istio's control plane components, including istiod, which handles service discovery, configuration distribution, and certificate management. It is not where application workloads or data-plane sidecars run, so it satisfies the requirement for a dedicated namespace isolating control plane functions.

Why this answer

It contains the Istio control plane components.

33
MCQmedium

When configuring a multi-cluster mesh, what does a 'ServiceEntry' with 'location: MESH_EXTERNAL' signify?

A.The service is a local cluster service.
B.The service does not exist.
C.The service is inside the mesh.
D.The service is outside the mesh but managed by Istio policies.
AnswerD

A ServiceEntry with location MESH_EXTERNAL registers an external endpoint so Istio's traffic policies, mTLS origination and telemetry still govern egress calls, satisfying the stem's multi-cluster requirement that services outside the mesh remain manageable by Istio rather than bypassing the sidecar entirely.

Why this answer

It tells Istio that the service is external to the mesh, but it should be treated as a first-class citizen for routing and policy purposes.

34
MCQeasy

What is the purpose of the 'istio-sidecar-injector' service in the Istio control plane?

A.To inject the Envoy proxy sidecar into pods
B.To act as a load balancer for traffic
C.To monitor the health of pods
D.To store mesh configuration data
AnswerA

The injector is an admission webhook that intercepts pod creation requests; when a namespace carries the istio-injection=enabled label, it mutates the pod spec to add the Envoy container and its configuration volume, satisfying the requirement that sidecars be added automatically rather than manually.

Why this answer

The sidecar injector is a MutatingAdmissionWebhook that intercepts pod creation requests to inject the proxy container.

35
MCQeasy

How do you specify the percentage of traffic that should experience a fault?

A.Using a 'weight' field.
B.Using a 'percentage' object with a 'value' field.
C.Using a 'threshold' field.
D.Using the 'ratio' field.
E.Using a 'rate' field in the VirtualService.
AnswerB

Fault injection scopes the effect using a percentage object containing a value field, which specifies the proportion of requests that receive the fault. This satisfies the constraint of applying the fault to only part of the traffic rather than all of it.

Why this answer

In Istio's fault injection API, the percentage of requests affected by a fault is specified using a 'percentage' object containing a 'value' field (an integer 0–100), nested under the delay or abort fault. For example, an HTTPAbort fault uses 'percentage: {value: 50}' to abort half of matching requests. This is the documented schema for controlling fault scope in a VirtualService.

Exam trap

The trap is confusing traffic-splitting fields ('weight') with fault-scoping fields ('percentage.value'), or inventing plausible-sounding field names like 'ratio' or 'rate' that don't exist in the Istio fault-injection schema.

How to eliminate wrong answers

Option A is wrong because 'weight' is used in HTTP route destination rules to split traffic between subsets/versions, not to set the proportion of requests that experience a fault. Option C is wrong because 'threshold' is not a fault-injection field; it appears in outlier detection and circuit-breaking contexts, not fault percentage. Option D is wrong because 'ratio' is not the Istio fault-injection field name — the API uses 'percentage', not 'ratio'.

Option E is wrong because 'rate' is not a fault-injection field; rate limiting is handled by Envoy filters or the Rate Limit service, not by a 'rate' field in the VirtualService fault block.

36
MCQeasy

Where do you configure the hostnames that a Gateway should accept?

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

Hostnames a Gateway should accept are defined in the Gateway's own listener configuration, where each listener specifies its hostname and certificate binding. Configuring them here satisfies the stem's requirement directly, since the Gateway resource itself holds the accepted-hostname settings rather than a separate policy or DNS record.

Why this answer

The Gateway resource in Istio is where you declare the hosts (and ports/protocols) that the ingress or egress gateway should accept traffic for. The 'hosts' field under 'servers' specifies which SNI/Host headers are allowed. VirtualService then binds routes to that gateway, but the host acceptance list lives on the Gateway itself.

Exam trap

ICA often tests the confusion between Gateway (which hosts/ports are accepted at the edge) and VirtualService (how requests are routed once accepted) — candidates frequently pick VirtualService because it 'feels' like the routing config.

How to eliminate wrong answers

Option A is wrong because DestinationRule defines traffic policies (load balancing, connection pools, outlier detection, TLS origination) for a service after routing, not which hosts a gateway accepts. Option B is wrong because ServiceEntry registers external services into the mesh registry so they can be referenced, but it does not configure gateway host acceptance. Option D is wrong because VirtualService defines routing rules (match/route) and references a gateway, but the list of accepted hostnames is declared on the Gateway resource, not the VirtualService.

37
Multi-Selecteasy

Which TWO are common causes for a service to be ejected by Outlier Detection?

Select 2 answers
A.Consecutive gateway failures.
B.Consecutive 5xx responses.
C.High disk usage on the pod.
D.Too many users logged in.
E.High CPU usage on the pod.
AnswersA, B

Outlier Detection counts consecutiveGatewayErrors, which covers gateway failures such as connection refused or reset, and ejects the host once the threshold is exceeded. This satisfies the stem's requirement that gateway failures be a common ejection cause.

Why this answer

Outlier detection in service meshes (e.g., Istio/Envoy) ejects a host from the load-balancing pool when it exhibits repeated failures at the connection or request level. Option A is correct because consecutive gateway failures—such as TCP connection failures, timeouts, or HTTP 502/503/504 responses classified as gateway errors—trigger the consecutive-gateway-failures ejection policy. Option B is correct because consecutive 5xx responses from the upstream service are counted by the consecutive-5xx ejection policy and cause the endpoint to be ejected once the threshold is exceeded.

Options C and E are incorrect because high disk or CPU usage are resource-pressure conditions handled by metrics-based autoscaling or resource limits, not by outlier detection's failure counters. Option D is incorrect because the number of logged-in users is an application-level metric unrelated to the consecutive failure thresholds that outlier detection evaluates.

38
MCQeasy

Which command helps troubleshoot configuration issues by analyzing the cluster for errors?

A.istioctl analyze
B.istioctl debug
C.istioctl check
D.kubectl describe
AnswerA

istioctl analyze inspects the cluster's Istio configuration resources and reports errors, warnings and misconfigurations, such as invalid virtual services or conflicting gateways. It directly satisfies the requirement to troubleshoot configuration issues by analysing the cluster for errors.

Why this answer

istioctl analyze scans for common misconfigurations in the cluster.

39
MCQmedium

What is the consequence of having a timeout that is shorter than the average latency of the service?

A.Increased 504 Gateway Timeout errors.
B.Faster response times.
C.Increased throughput.
D.Automatic retries.
E.Better connection pooling.
AnswerA

When the configured timeout is shorter than the service's average response latency, Envoy aborts the upstream request before the backend can reply, returning a 504 to the caller. This directly satisfies the stem's constraint: a timeout below average latency produces gateway timeout errors.

Why this answer

If the timeout is too short, requests will be terminated prematurely, causing valid requests to fail.

40
MCQmedium

Which of the following describes the role of the 'trust-domain' in Istio?

A.It is used for load balancing.
B.It determines the namespace scope of policies.
C.It limits the number of concurrent connections.
D.It defines the root of trust for identity.
AnswerD

The trust domain forms the root of the SPIFFE identity URI embedded in every workload certificate, appearing as spiffe://<trust-domain>/ns/... in the SAN. It establishes which identities are trusted within the mesh, so mismatched trust domains reject mTLS handshakes.

Why this answer

The trust domain identifies the administrative boundary for identities. It is used to construct the SPIFFE ID.

41
MCQhard

Which of the following describes the difference between Circuit Breaking and Outlier Detection?

A.Circuit Breaking is for ingress, Outlier Detection is for egress.
B.Circuit Breaking is proactive, Outlier Detection is reactive.
C.Outlier Detection is for connection pooling.
D.Circuit Breaking only works on TCP.
E.Circuit Breaking monitors request load, Outlier Detection monitors host health.
AnswerE

Outlier detection ejects individual unhealthy hosts from the load-balancing pool based on consecutive 5xx errors or gateway failures, whereas circuit breaking trips at the connection-pool level, rejecting requests once pending or active connection limits are exceeded. The stem's contrast between host health and request load is satisfied precisely by this split.

Why this answer

Circuit Breaking monitors request load (e.g., connection pool saturation, pending requests, retries) and trips when thresholds are exceeded, preventing cascading failures by rejecting new requests. Outlier Detection monitors host health by passively tracking errors (e.g., 5xx responses) and ejecting unhealthy hosts from the load balancing pool. Thus, the correct distinction is that Circuit Breaking focuses on request load, while Outlier Detection focuses on host health.

Exam trap

ICA often tests the distinction between load-based and health-based monitoring, and candidates may confuse the reactive nature of both mechanisms or assume they are protocol-specific.

How to eliminate wrong answers

Option A is wrong because both Circuit Breaking and Outlier Detection can apply to both ingress and egress traffic; they are not direction-specific. Option B is wrong because Circuit Breaking is reactive (it trips after thresholds are breached) and Outlier Detection is also reactive (it ejects hosts after observing errors); neither is inherently proactive. Option C is wrong because Outlier Detection is not for connection pooling; it is for health checking and ejection of unhealthy hosts, while connection pooling is a separate concern.

Option D is wrong because Circuit Breaking works at the application layer (e.g., HTTP) and can be configured for various protocols, not only TCP.

42
MCQeasy

Which of the following is a valid method for performing fault injection?

A.Using a ServiceEntry to redirect traffic.
B.Using a DestinationRule to drop connections.
C.Using a VirtualService to inject delays.
D.Using an EnvoyFilter to rewrite headers.
E.Using a Gateway to block traffic.
AnswerC

Istio's VirtualService resource supports fault injection natively, letting you configure HTTP delays or aborts against a host without altering application code. This satisfies the stem's requirement for a valid fault injection method, since the delay is applied at the service-mesh proxy layer during request routing.

Why this answer

Istio supports both delay and abort faults via VirtualService.

43
Multi-Selecthard

Which THREE features are supported by the Istio 'trafficPolicy' in a DestinationRule?

Select 3 answers
A.Connection pooling
B.Outlier detection
C.Traffic mirroring
D.Load balancing
E.Fault injection
AnswersA, B, D

Connection pooling is configured through the connectionPool settings within trafficPolicy, letting you cap HTTP/1.1 pending requests, HTTP/2 concurrent streams, and TCP connections per host. This satisfies the stem's requirement for a supported trafficPolicy feature, as these limits are applied to individual destination hosts.

Why this answer

In an Istio DestinationRule, the trafficPolicy field supports connection pooling (A) via the connectionPool settings that control TCP and HTTP connection limits, timeouts, and keepalive behavior for the destination. Outlier detection (B) is also part of trafficPolicy, configured under outlierDetection, and enables passive health checking by ejecting unhealthy hosts from the load-balancing pool. Load balancing (D) is supported through the loadBalancer field within trafficPolicy, allowing selection of algorithms such as ROUND_ROBIN, LEAST_REQUEST, RANDOM, or PASSTHROUGH.

Traffic mirroring (C) and fault injection (E) are not configured in DestinationRule trafficPolicy; they are defined in a VirtualService, where mirroring uses the mirror field and fault injection uses the faults field.

Exam trap

ICA often tests the boundary between VirtualService and DestinationRule — candidates frequently assume fault injection or mirroring live in trafficPolicy because they sound like traffic-shaping features, but they are VirtualService-level constructs.

44
Multi-Selectmedium

Which TWO fields in the IstioOperator CR are commonly used to configure ingress gateway resources?

Select 2 answers
A.spec.gateways.enabled
B.spec.components.ingressGateways
C.spec.values.gateways.istio-ingressgateway
D.spec.pilot.gateways
E.spec.meshConfig.ingress
AnswersB, C

The spec.components.ingressGateways field configures gateway deployments directly, letting you set replica counts, resource requests and limits, and node selectors for the ingress gateway pods. It satisfies the requirement to configure ingress gateway resources through the IstioOperator CR's component-level overrides.

Why this answer

Option B, spec.components.ingressGateways, is correct because the IstioOperator CR exposes the ingress gateway as a component under spec.components, where you can set fields like enabled, k8s (resources, replicaCount, hpaSpec, service), and name to configure the gateway's Kubernetes deployment and resources. Option C, spec.values.gateways.istio-ingressgateway, is correct because the IstioOperator passes Helm-style values through spec.values, and the istio-ingressgateway key under gateways is the standard location to override gateway settings such as resources, autoscaling, and service ports. Option A is not a valid IstioOperator path, since gateways are configured under spec.components or spec.values rather than a top-level spec.gateways.enabled field.

Option D is incorrect because spec.pilot configures the istiod control plane, not ingress gateway resources. Option E is incorrect because spec.meshConfig controls mesh-wide behavior such as access logging and default config, not ingress gateway resource settings.

Exam trap

The trap is that IstioOperator has overlapping configuration surfaces (components vs values), and candidates pick a plausible-sounding but non-existent field like spec.gateways.enabled instead of the two real fields.

45
MCQmedium

Which field in the AuthorizationPolicy is used to restrict access based on the verified JWT claims?

A.rules.when
B.rules.from.principals
C.rules.to.operation.methods
D.rules.from.source.namespaces
AnswerA

The rules.when field holds match conditions evaluated against request attributes, including verified JWT claims via request.auth.claims. This satisfies the constraint of restricting access by claim values, since the JWT must first be validated by a RequestAuthentication policy before those claims are trusted.

Why this answer

The `rules.when` field in an Istio AuthorizationPolicy is specifically designed to define conditions that must be met for a request to be allowed. It supports a variety of condition keys, including `request.auth.claims`, which allows you to match against verified JWT claims. This is the correct mechanism to restrict access based on JWT claims because it evaluates the claims after the JWT has been validated by Istio's authentication policy.

Exam trap

The trap here is confusing the `from` field (which matches source identities like principals or namespaces) with the `when` field (which matches request attributes like JWT claims). Candidates often mistakenly think that `principals` can include arbitrary claims, but it only matches the `sub` claim or mTLS identity.

How to eliminate wrong answers

Option B is wrong because `rules.from.principals` is used to match the identity of the client based on the peer certificate (mTLS) or the JWT principal (the `sub` claim), not arbitrary JWT claims. Option C is wrong because `rules.to.operation.methods` restricts access based on the HTTP method (e.g., GET, POST) of the request, not JWT claims. Option D is wrong because `rules.from.source.namespaces` restricts access based on the Kubernetes namespace from which the request originates, not JWT claims.

46
MCQmedium

A team wants to perform a canary deployment by shifting 10% of traffic to a new version of their service. Which resource allows this weighting?

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

Istio's VirtualService defines traffic routing rules, including weighted destinations that split requests between subsets. Specifying a 90/10 weight distribution across two versions achieves the canary rollout, which no other Istio resource exposes as a routing control.

Why this answer

VirtualService uses the weight field in the route block to distribute traffic percentages.

47
Multi-Selecthard

Which THREE fields in an AuthorizationPolicy are evaluated under the 'rules' section?

Select 3 answers
A.action
B.selector
C.from
D.when
E.to
AnswersC, D, E

from is one of the three rule fields in an Istio AuthorizationPolicy, defining the source of the request via source principals, namespaces, or IP blocks. It satisfies the stem's requirement for a valid rules-section field.

Why this answer

In an Istio AuthorizationPolicy, the 'rules' section defines the conditions under which the policy applies, and each rule can contain the fields 'from', 'to', and 'when'. Option C ('from') is correct because it specifies the source of the request, such as a source principal, namespace, or IP block, and is evaluated as part of the rule matching. Option E ('to') is correct because it defines the destination attributes of the request, including operation methods, paths, and ports, which are matched within the rule.

Option D ('when') is correct because it provides additional custom conditions using Istio attributes (e.g., request.headers, source.ip) that must be satisfied for the rule to match. Option A ('action') is not part of the 'rules' section; it is a top-level field of the AuthorizationPolicy that specifies ALLOW, DENY, AUDIT, or CUSTOM. Option B ('selector') is also not part of the 'rules' section; it is a top-level field used to target specific workloads by label.

48
Multi-Selectmedium

Which THREE items are included in an Istio SPIFFE ID?

Select 3 answers
A.Trust domain
B.Cluster Name
C.Service Account
D.Namespace
E.IP Address
AnswersA, C, D

A SPIFFE ID follows the spiffe:// URI form, where the trust domain is the authority component identifying the issuing trust root, followed by the workload path; the trust domain is therefore one of the three constituent parts.

Why this answer

An Istio SPIFFE ID follows the format spiffe://<trust-domain>/ns/<namespace>/sa/<service-account>, so the three components it includes are the trust domain (A), the namespace (D), and the service account (C). The trust domain (A) is the first segment after the spiffe:// scheme and identifies the identity's issuing authority, which in Istio defaults to cluster.local. The namespace (D) appears in the /ns/<namespace> path segment and scopes the workload identity to its Kubernetes namespace.

The service account (C) appears in the /sa/<service-account> path segment and represents the Kubernetes service account under which the workload runs. Cluster Name (B) is not part of the SPIFFE ID format—it is a separate Istio concept used in multi-cluster configurations and mesh expansion. IP Address (E) is not encoded in a SPIFFE ID; Istio identities are based on service account and namespace, not network addresses.

49
Multi-Selecthard

Which THREE configuration areas are essential for ensuring observability in a complex Istio mesh?

Select 3 answers
A.Local sidecar memory limits
B.MeshConfig telemetry settings
C.VirtualService timeouts
D.Tracing sampling rate
E.Telemetry resource configuration
AnswersB, D, E

MeshConfig telemetry settings control whether Envoy proxies generate metrics, access logs and traces mesh-wide. Enabling these settings is essential because without them the control plane collects no telemetry, leaving the mesh effectively unobservable regardless of other configuration.

Why this answer

MeshConfig telemetry settings (B) are essential because the mesh-wide MeshConfig controls how Envoy sidecars emit telemetry, including access logging, metrics, and tracing defaults that determine whether observability data is generated at all. Tracing sampling rate (D) is essential because it governs what fraction of requests are captured as distributed traces; without an appropriate sampling rate, you either lose visibility into request flows or overwhelm the tracing backend. Telemetry resource configuration (E) is essential because the Telemetry API resources define providers, metrics, access logging, and tracing behavior per workload or namespace, directly shaping the observability signals collected across the mesh.

Local sidecar memory limits (A) affect resource consumption and stability but do not determine what telemetry is produced or exported, and VirtualService timeouts (C) are traffic-management controls for request deadlines, not observability configuration.

50
MCQmedium

To ensure traffic to a service is encrypted via mTLS, where should you verify the policy?

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

PeerAuthentication defines the mTLS mode for workloads on the receiving side, so verifying it confirms traffic is encrypted. Its mtls mode enforces mutual TLS between sidecars, satisfying the requirement that service traffic is encrypted via mTLS.

Why this answer

PeerAuthentication defines mTLS settings for the mesh.

51
Multi-Selectmedium

Which THREE configurations affect the way traffic is distributed across pods?

Select 3 answers
A.Load balancer policy
B.Traffic weight
C.Subset definitions
D.Gateway port
E.Retry policy
AnswersA, B, C

Load balancer policy directly governs how incoming connections are spread across backend pods, satisfying the requirement for a traffic-distribution configuration. In Kubernetes, the Service's `externalTrafficPolicy` and `internalTrafficPolicy` settings determine whether traffic is routed to all endpoints cluster-wide or only to pods on the receiving node, altering distribution behaviour.

Why this answer

In Istio traffic management, the load balancer policy (option A) directly controls how requests are distributed across the healthy endpoints of a service — for example ROUND_ROBIN, LEAST_REQUEST, RANDOM, or PASSTHROUGH — so it is a core determinant of pod traffic distribution. Traffic weight (option B) is used in VirtualService route rules to split a percentage of requests between destination subsets, which changes how much traffic each group of pods receives. Subset definitions (option C) group pods by labels (e.g., version: v1 vs v2) and are the targets that weights and route rules reference, so they shape which pods participate in the distribution.

Gateway port (option D) only defines the ingress listener port on the gateway and does not influence how traffic is balanced across pods. Retry policy (option E) governs how failed requests are retried, not how the initial traffic is distributed among pod endpoints.

52
MCQeasy

What is the default behavior of Istio mTLS if no PeerAuthentication policy is applied?

A.STRICT mTLS
B.Plaintext only
C.Disabled
D.PERMISSIVE mTLS
AnswerD

Without any PeerAuthentication policy, Istio's mesh-wide default is PERMISSIVE mode, so sidecars accept both plaintext and mTLS traffic simultaneously. This satisfies the stem's condition of no policy applied, allowing gradual migration without breaking non-mesh clients.

Why this answer

Istio defaults to PERMISSIVE mode, which allows both mTLS and plaintext traffic.

53
Multi-Selecthard

Which THREE factors influence whether a service in the mesh will accept traffic?

Select 3 answers
A.AuthorizationPolicy rules
B.Global MeshConfig 'proxyMetadata' settings
C.PeerAuthentication policy mode
D.Envoy proxy configuration state
E.Kubernetes Service Port definition
AnswersA, C, D

AuthorizationPolicy rules define the allow, deny and custom conditions applied to inbound requests at the workload. This satisfies the constraint because traffic is only accepted when an ALLOW rule matches; absent any matching rule, the request is rejected by default.

Why this answer

In an Istio service mesh, whether a workload accepts traffic is governed first by AuthorizationPolicy rules (A), which define ALLOW/DENY/CUSTOM enforcement on incoming requests and determine if a request is permitted to reach the workload. PeerAuthentication policy mode (C) also matters because it controls the mutual TLS mode (STRICT, PERMISSIVE, DISABLE) for incoming connections, so a client that cannot satisfy the required mTLS mode will be rejected before application-level authorization. Envoy proxy configuration state (D) is decisive as well, since the sidecar's listeners, filter chains, and route/RBAC configs actually enforce acceptance; if the proxy is misconfigured, stale, or not synced with istiod, traffic may be refused regardless of the intended policy.

The other options do not directly determine acceptance: MeshConfig proxyMetadata (B) only injects environment metadata into proxies and does not by itself gate traffic, and the Kubernetes Service port definition (E) merely exposes/forwards traffic at the L4 Service level without enforcing mesh authorization or mTLS acceptance.

54
Multi-Selecthard

Which THREE are valid load balancing policies in Istio?

Select 3 answers
A.FAILOVER
B.RANDOM
C.LEAST_CONN
D.STICKY
E.ROUND_ROBIN
AnswersB, C, E

RANDOM is a valid Istio load balancing policy, distributing requests across healthy endpoints without weighting. It satisfies the question's requirement for a genuine Istio policy, alongside ROUND_ROBIN and LEAST_REQUEST. Istio also offers PASSTHROUGH and consistent hash-based options, but RANDOM remains a core supported policy.

Why this answer

Istio's DestinationRule trafficPolicy.loadBalancer.simple field supports a fixed set of algorithms, and RANDOM (B), LEAST_CONN (C), and ROUND_ROBIN (E) are all valid values in that enum, so each is a legitimate load balancing policy. RANDOM (B) picks a random healthy endpoint, LEAST_CONN (C) selects the endpoint with the fewest active connections, and ROUND_ROBIN (E) cycles through endpoints in order. FAILOVER (A) is not an Istio load balancing policy; failover behavior is handled through outlier detection and locality/priority settings rather than a load balancer type.

STICKY (D) is also not a valid value; session affinity in Istio is configured separately via consistent hash-based load balancing (e.g., HTTP cookie, header, or source IP), not as a simple policy named STICKY.

55
MCQhard

You are running an Istio mesh in a single Kubernetes cluster and have enabled sidecar injection in the 'payments' namespace. A client pod in that namespace cannot reach an external HTTPS API at api.example.com because the sidecar intercepts all outbound traffic and rejects it. You must allow only that host while keeping traffic to all other unknown external hosts blocked. What should you configure?

A.A ServiceEntry that defines api.example.com with protocol HTTPS and resolution DNS, plus a Sidecar resource with an outboundTrafficPolicy of REGISTRY_ONLY.
B.A PeerAuthentication with mtls.mode STRICT in the payments namespace, plus an EnvoyFilter that rewrites the Host header for api.example.com.
C.A Gateway resource with servers for port 443 and hosts set to api.example.com, plus a VirtualService that routes to an external ServiceEntry.
D.A DestinationRule with trafficPolicy tls.mode SIMPLE targeting api.example.com, plus a Sidecar with outboundTrafficPolicy ALLOW_ANY.
AnswerA

A ServiceEntry registers api.example.com in the mesh's internal service registry so the sidecar has a route and can allow the connection. Setting the Sidecar's outboundTrafficPolicy to REGISTRY_ONLY restricts egress to only services present in the registry, so every other unknown host stays blocked. This is the supported way to selectively permit external hosts without opening the mesh to all destinations.

Why this answer

Registering api.example.com with a ServiceEntry places it in the mesh service registry so the sidecar can route to it. Setting the Sidecar's outboundTrafficPolicy to REGISTRY_ONLY changes the default behavior from allowing unknown passthrough to rejecting anything not in the registry. Together they permit exactly the intended external API while blocking all other unregistered external hosts, matching the selective egress requirement.

Exam trap

The trap here is assuming that a DestinationRule or Gateway can make an unknown external host reachable, when only a ServiceEntry adds it to the registry.

56
Multi-Selectmedium

Which actions can a VirtualService perform on a request? (Choose TWO)

Select 2 answers
A.route
B.scale
C.headers
D.filter
E.replicate
AnswersA, C

A VirtualService can route requests, matching on host, path, headers or other attributes and directing traffic to destination subsets or versions. Routing is one of its core request-handling actions, satisfying the question's requirement alongside fault injection, redirects and rewrites.

Why this answer

In Istio, a VirtualService defines how requests are routed to a service within the mesh, and its core capabilities include the route action (option A), which specifies destination hosts, subsets, and weights for matching traffic, and the headers action (option C), which allows modification of request and response headers via header manipulation rules. Both route and headers are valid top-level HTTP route actions in the VirtualService specification, making A and C correct for this scenario. The scale action (option B) is not part of VirtualService; scaling is handled by Kubernetes workload resources such as Deployments or HorizontalPodAutoscalers.

The filter action (option D) is not a VirtualService action; traffic filtering is achieved through route match conditions or EnvoyFilter resources. The replicate action (option E) does not exist in the VirtualService API; traffic mirroring is instead configured using the mirror and mirrorPercentage fields under a route.

57
MCQeasy

Which command lists all virtual services in the current namespace?

A.kubectl get virtualservices
B.istioctl virtualservices
C.istioctl get vs
D.istioctl list virtualservice
AnswerA

kubectl get virtualservices queries the Kubernetes API for VirtualService custom resources in the active namespace, listing them in a table. It satisfies the listing requirement because VirtualServices are Kubernetes CRDs, so kubectl, not istioctl, performs namespace-scoped resource enumeration.

Why this answer

kubectl get virtualservices is the standard command to list this CRD.

58
MCQhard

You are performing a canary upgrade of Istio from version 1.19 to 1.20 using the `istioctl` tool. You have deployed a canary revision of Istiod and now need to migrate a subset of workloads to the new revision without disrupting existing traffic. Which command should you use to relabel the `default` namespace for canary migration, and what is the effect?

A.`kubectl annotate namespace default istio.io/rev=1-20 --overwrite`
B.`kubectl label namespace default istio-injection- istio.io/rev=1-20 --overwrite`
C.`kubectl label namespace default istio.io/rev=1-20 --overwrite`
D.`istioctl upgrade --revision 1-20 --namespace default`
AnswerB

This command removes the `istio-injection` label and adds the `istio.io/rev` label pointing to the canary revision. Removing the old label ensures that only the new revision's injection webhook applies to pods in the namespace. The `--overwrite` flag allows updating existing labels. This is the correct approach to migrate a namespace to a canary revision without disrupting existing traffic.

Why this answer

To migrate a namespace to a canary revision, you must remove the `istio-injection` label and add the `istio.io/rev` label with the canary revision name. This ensures that only the new revision's injection webhook applies to new pods in that namespace. The `--overwrite` flag is necessary to update existing labels.

This method allows gradual migration without disrupting existing traffic, as existing pods remain on the old revision until restarted.

Exam trap

The trap here is assuming that adding the revision label alone is sufficient, without removing the old `istio-injection` label, which can cause conflicting injection behavior.

59
Multi-Selectmedium

You are troubleshooting a service that is failing to communicate with another service in a different namespace. Which TWO of the following items should you check to ensure connectivity?

Select 2 answers
A.Kiali's current theme settings.
B.PeerAuthentication settings
C.The Istio ingress gateway version.
D.The number of sidecars running in the cluster.
E.AuthorizationPolicy rules
AnswersB, E

PeerAuthentication governs mutual TLS enforcement between workloads, so a STRICT policy in either namespace can reject plaintext traffic from the other service. Checking it confirms whether mTLS mode blocks the cross-namespace connection, satisfying the requirement to verify connectivity across namespace boundaries.

Why this answer

In an Istio service mesh, cross-namespace communication failures are most commonly caused by security policies, so you should verify PeerAuthentication settings (B), which define the mutual TLS mode (STRICT, PERMISSIVE, DISABLE) and can block traffic if one namespace requires mTLS while the other does not present a valid certificate. You should also check AuthorizationPolicy rules (E), since these enforce L7 access control (ALLOW/DENY/CUSTOM) and a policy in the destination namespace can silently reject requests from the source namespace's service account. The other options are unrelated to connectivity: Kiali's theme (A) is purely a UI preference, the ingress gateway version (C) affects north-south traffic entering the mesh rather than east-west service-to-service calls, and the total number of sidecars (D) is a cluster-wide metric that does not determine whether two specific services can reach each other.

Exam trap

ICA often tests whether candidates know that east-west traffic does not traverse the ingress gateway — the trap is picking the ingress gateway version as a connectivity check when it is irrelevant for service-to-service calls.

60
MCQmedium

You want to ensure that a request to the 'search' service fails fast if it takes longer than 2 seconds. How is this configured?

A.In the EnvoyFilter, set 'timeout: 2s'.
B.In the Gateway, set 'timeout: 2s'.
C.In the VirtualService, set 'timeout: 2s' in the route rule.
D.In the DestinationRule, set 'timeout: 2s'.
E.In the ServiceEntry, set 'timeout: 2s'.
AnswerC

A timeout of 2s declared in the VirtualService route rule caps how long Envoy waits for the search service before returning an error, delivering the required fail-fast behaviour. The timeout applies per route, so the request is abandoned at two seconds rather than hanging.

Why this answer

In Istio, request timeouts are configured in the VirtualService resource, specifically within the HTTP route rule using the 'timeout' field (e.g., 'timeout: 2s'). This tells the Envoy sidecar to abort the request if it doesn't receive a response from the destination within the specified duration, causing the client to receive a 504 Gateway Timeout. The timeout is applied per route, allowing granular control over different services or subsets.

This is the standard and documented way to enforce fail-fast behavior for a service like 'search'.

Exam trap

ICA often tests the confusion between VirtualService and DestinationRule for traffic management features; candidates may incorrectly choose DestinationRule for timeouts because it handles other traffic policies like load balancing and connection pools.

How to eliminate wrong answers

Option A is wrong because EnvoyFilter is used for low-level Envoy configuration patches, not for setting application-level request timeouts; while it can modify timeouts, it's not the intended or recommended method for this use case. Option B is wrong because Gateway configures ingress/egress traffic properties like TLS, ports, and hosts, not per-request timeouts. Option D is wrong because DestinationRule defines policies for traffic to a destination after routing, such as load balancing, connection pool settings, and outlier detection, but not request timeouts.

Option E is wrong because ServiceEntry is used to register external services into Istio's service registry, not to set timeouts.

61
MCQmedium

What is the recommended way to test fault injection in a production environment?

A.Using header-based matches in a VirtualService.
B.Injecting faults in the code.
C.Using a separate mesh for testing.
D.Enabling it for 1% of traffic using weight.
E.Applying it globally to all users.
AnswerA

Header-based matches in a VirtualService let you route only requests carrying a specific test header to the fault-injected subset, leaving ordinary production traffic untouched. This satisfies the stem's constraint of testing fault injection in production without disrupting live users, since Istio evaluates match conditions before applying the abort or delay rule.

Why this answer

Using header-based matching allows you to target faults to specific test traffic without impacting all users.

62
MCQmedium

You want to limit the number of concurrent connections to a service. Which field in the DestinationRule handles this?

A.connectionPool
B.outlierDetection
C.loadBalancer
D.portLevelSettings
AnswerA

The `connectionPool` field in a DestinationRule defines TCP and HTTP connection limits, including `maxConnections` and `http1MaxPendingRequests`, which cap concurrent connections to the service. This directly satisfies the requirement to limit concurrent connections, unlike traffic policy fields governing load balancing or outlier detection.

Why this answer

The connectionPool field in the trafficPolicy allows setting maxConnections for circuit breaking.

63
MCQhard

You manage an Istio mesh with two ingress gateways: one public, one private. You need to allow external clients to reach a service through the public gateway, but only if they present a valid client certificate. The private gateway must remain unaffected. Which Istio resource should you configure to enforce this requirement at the public gateway?

A.RequestAuthentication with a JWT rule applied to the public gateway's workload selector.
B.AuthorizationPolicy with a when condition on source.namespace applied to the public gateway.
C.PeerAuthentication with mtls.mode: STRICT applied to the public gateway's workload selector.
D.Gateway with TLS mode MUTUAL and a credentialName referencing a Kubernetes secret containing the CA certificate and server certificate/key.
AnswerD

A Gateway resource with TLS mode MUTUAL enables mutual TLS termination at the ingress gateway. The credentialName must reference a Kubernetes secret containing the server certificate, private key, and CA certificate. This enforces client certificate validation for external clients connecting to the public gateway, while the private gateway remains unchanged because the Gateway resource is applied only to the public gateway's selector.

Why this answer

The correct approach is to configure the public ingress gateway with a Gateway resource that uses TLS mode MUTUAL and references a secret containing the CA certificate for client validation. This enforces client certificate authentication at the gateway level without affecting the private gateway, which can retain its own configuration. PeerAuthentication and RequestAuthentication do not provide client certificate validation at the gateway, and AuthorizationPolicy cannot enforce certificate-based authentication.

Exam trap

The trap here is confusing PeerAuthentication's STRICT mTLS mode with mutual TLS termination at an ingress gateway, which requires a Gateway resource with TLS mode MUTUAL and a credentialName.

64
Multi-Selectmedium

You are preparing to install Istio using the `istioctl install` command with a custom IstioOperator file. You need to ensure that the installation uses a private container registry and that the sidecar injector uses a specific image pull secret. Which two configuration fields in the IstioOperator resource should you set? (Choose two.)

Select 2 answers
A.`spec.values.global.hub`
B.`spec.meshConfig.defaultConfig.proxyMetadata.ISTIO_META_DNS_CAPTURE`
C.`spec.components.pilot.k8s.imagePullPolicy`
D.`spec.values.global.imagePullSecrets`
E.`spec.values.sidecarInjectorWebhook.rewriteAppHTTPProbe`
AnswersA, D

This field specifies the container registry hub for all Istio images. Setting it to your private registry ensures that Istio pulls images from that location. It is the primary way to override the default `docker.io/istio` hub. Without this, the installation would attempt to pull from the public registry, which may fail in an air-gapped environment.

Why this answer

To use a private registry, you must set `spec.values.global.hub` to the private registry URL and `spec.values.global.imagePullSecrets` to a list of Kubernetes secrets containing the registry credentials. These fields ensure that all Istio components pull images from the private registry and authenticate correctly. Other fields control unrelated behaviors such as pull policy or sidecar injection settings.

Exam trap

The trap here is confusing image pull policy with image pull secrets, or assuming that setting the hub alone is sufficient without providing authentication credentials.

65
MCQmedium

If you apply an AuthorizationPolicy with a 'DENY' action and an 'ALLOW' action in the same namespace, how does Istio resolve them?

A.DENY policies always take precedence over ALLOW policies.
B.ALLOW policies take precedence.
C.The policy with the highest priority field wins.
D.The policy applied most recently wins.
AnswerA

Istio evaluates DENY policies before ALLOW policies, so any matching DENY rule blocks the request regardless of an ALLOW rule that would otherwise permit it. This deny-overrides evaluation order satisfies the scenario where both actions exist in the same namespace.

Why this answer

Istio's AuthorizationPolicy evaluation follows a deny-overrides model: if any DENY policy matches a request, the request is rejected regardless of any matching ALLOW policies. ALLOW policies are only evaluated if no DENY policy matches, and if at least one ALLOW policy exists in the namespace, a request must match one to be permitted. This ordering is enforced by the Envoy RBAC filter that Istio programs into the sidecar.

Exam trap

ICA often tests the assumption that ALLOW can override DENY or that a priority field exists — candidates who assume 'most specific wins' or 'last applied wins' pick the wrong answer.

How to eliminate wrong answers

Option B is wrong because ALLOW does not take precedence — Istio explicitly evaluates DENY first, and a matching DENY short-circuits the decision. Option C is wrong because AuthorizationPolicy has no 'priority' field; ordering is determined by action semantics (DENY > ALLOW) and specificity, not a numeric priority. Option D is wrong because Istio does not use last-applied-wins semantics; policies are compiled into the Envoy config and evaluated by fixed rules, so application order is irrelevant.

66
MCQeasy

Which resource is used to define the root certificate for a custom CA?

A.istio-ca-secret
B.root-secret
C.cacerts
D.istio-root-ca
AnswerC

The cacerts resource holds the trusted root certificates Istio uses to validate workloads. Supplying a custom CA's root certificate there lets the mesh trust that authority, satisfying the requirement to define the root certificate for a custom CA.

Why this answer

The 'cacerts' secret in the 'istio-system' namespace is used to provide custom root certificates.

67
Multi-Selectmedium

Which TWO actions can a VirtualService perform on a request?

Select 2 answers
A.Throttle bandwidth
B.Define mTLS mode
C.Rewrite URI
D.Redirect request
E.Encrypt traffic
AnswersC, D

VirtualService traffic routing rules can rewrite the request URI before forwarding, altering the path or host the destination workload receives. This is distinct from header manipulation or retries, which are separate actions within the same routing configuration.

Why this answer

Option C (Rewrite URI) is correct because an Istio VirtualService supports the `rewrite` field under `http` routes, allowing the request's URI or authority to be rewritten before forwarding to the destination, e.g., `rewrite: uri: /v1/...`. Option D (Redirect request) is correct because a VirtualService supports the `redirect` field, which returns an HTTP redirect (with `uri`, `authority`, and `redirectCode` such as 301 or 302) instead of routing the request to a backend. The other options do not belong: bandwidth throttling (A) is not a VirtualService capability (it would be handled by traffic-shaping tools or Envoy rate limiting/filters), mTLS mode (B) is configured via PeerAuthentication and DestinationRule, and traffic encryption (E) is handled by mTLS at the transport layer, not by VirtualService routing rules.

Exam trap

The trap here is conflating VirtualService (L7 routing/rewrite/redirect) with PeerAuthentication (mTLS) and DestinationRule (TLS origination, load balancing) — candidates pick 'define mTLS mode' or 'encrypt traffic' because those sound like service-mesh features, but they belong to different Istio CRDs.

68
MCQeasy

You are troubleshooting why a client cannot reach a service in another namespace within the same mesh. The client's sidecar shows the destination cluster exists, but requests fail. You want to verify whether the client's proxy has the correct listener and route for the destination's port. Which istioctl command sequence should you use?

A.kubectl exec into the client pod and run curl against the destination, then check the sidecar container logs.
B.istioctl analyze --all-namespaces, then istioctl validate -f on the destination's manifests.
C.istioctl x describe pod on the destination, followed by istioctl experimental wait for the mesh.
D.istioctl proxy-status, then istioctl proxy-config listeners and istioctl proxy-config routes for the client pod.
AnswerD

proxy-status shows whether each proxy is in sync with istiod, ruling out stale configuration. Then proxy-config listeners and routes on the specific client pod reveal whether the expected listener exists for the destination port and whether a route matches the destination host. This sequence directly inspects the running proxy's state, which is exactly what the troubleshooting scenario requires.

Why this answer

istioctl proxy-status first confirms the client proxy is synchronized with istiod, ruling out stale config. Then istioctl proxy-config listeners and routes against the client pod enumerate the actual listener for the destination port and the route entries matching the destination host. This directly verifies whether the proxy has the expected listener and route, which is what the scenario asks.

Exam trap

The trap here is using istioctl analyze or kubectl exec to infer proxy state, when only proxy-config listeners and routes expose the actual proxy configuration.

69
MCQmedium

In a multi-cluster environment with a shared control plane, what is the purpose of the 'istio-remote-secret'?

A.To store custom headers for cross-cluster traffic.
B.To identify the cluster in the mesh.
C.To allow the control plane to manage the remote cluster's services.
D.To encrypt traffic between clusters.
AnswerC

The istio-remote-secret stores the remote cluster's API server credentials, enabling the shared control plane to authenticate and manage that cluster's services and endpoints. This satisfies the multi-cluster requirement by granting the primary control plane secure access to remote API servers for service discovery and configuration propagation.

Why this answer

In Istio's multi-cluster model with a shared (primary) control plane, the istio-remote-secret is a Secret created in the primary cluster that contains the kubeconfig credentials for a remote cluster. It allows the primary control plane (istiod) to connect to and manage the remote cluster's API server — discovering its services, endpoints, and injecting configuration — so the remote cluster's workloads participate in the mesh.

Exam trap

The trap is assuming the istio-remote-secret handles encryption or identity, when its actual role is to give the primary control plane API access to a remote cluster for service discovery and configuration — encryption is mTLS's job, and identity comes from SPIFFE certs.

How to eliminate wrong answers

Option A is wrong because custom headers for cross-cluster traffic are configured in VirtualService/DestinationRule or via Envoy filters, not in the istio-remote-secret. Option B is wrong because cluster identity in the mesh is established through the cluster name in the kubeconfig context and the SPIFFE identity in certificates, not by the remote secret itself — the secret carries credentials, not an identity label. Option D is wrong because traffic encryption between clusters is handled by mutual TLS (mTLS) using SPIFFE certificates issued by istiod's CA, not by the remote secret, which is purely an access/credential mechanism.

70
MCQhard

You want to ensure that a pod is only ejected if it fails consistently. Which setting is most appropriate?

A.Decrease interval, decrease consecutive5xx.
B.Decrease interval, increase consecutive5xx.
C.Increase interval, increase consecutive5xx.
D.Disable outlierDetection and use only circuitBreaking.
E.Increase interval, decrease consecutive5xx.
AnswerC

Raising consecutive5xx requires multiple successive failures before ejection, preventing a single transient error from removing the pod. Increasing the interval lengthens the analysis window, so failures must persist across a longer period. Together these satisfy the stem's demand that ejection occur only after consistent failure.

Why this answer

A combination of a longer interval and a higher consecutive error threshold ensures only sustained failures trigger ejection.

71
MCQmedium

To test how your application handles service unavailability, you want to return an HTTP 503 error for 20% of requests to the 'catalog' service. Which fault injection setting do you use?

A.circuitBreaker
B.outlierDetection
C.delay
D.abort
AnswerD

The abort fault injects a specified HTTP status code, so setting abort with httpStatus 503 and percentage 20 returns 503 for one fifth of catalog requests. This directly satisfies the stem's requirement to simulate service unavailability rather than delay.

Why this answer

The 'abort' fault injection setting in Istio is specifically designed to return an HTTP error code (such as 503) for a specified percentage of requests to a target service. By configuring an abort fault with an HTTP status of 503 and a percentage value of 20, you directly simulate service unavailability for 20% of traffic to the 'catalog' service. This is the intended mechanism for testing how applications handle HTTP error responses.

Exam trap

The trap here is confusing fault injection (abort/delay) with traffic management features like circuit breaking and outlier detection, which also deal with failures but do not inject synthetic errors.

How to eliminate wrong answers

Option A is wrong because circuitBreaker is a traffic management feature that trips and ejects endpoints after consecutive failures, not a fault injection setting that returns a specific HTTP error percentage. Option B is wrong because outlierDetection is used for passive health checking to eject unhealthy hosts from the load balancing pool, not for injecting faults. Option C is wrong because delay injects a time delay (latency) into requests rather than returning an HTTP error code like 503.

72
MCQeasy

Which 'istioctl' command is used to verify that the current Istio configuration in a cluster is valid and follows best practices?

A.istioctl analyze
B.istioctl check
C.istioctl diagnose
D.istioctl verify
AnswerA

istioctl analyze inspects the cluster's Istio configuration and reports validation errors, warnings and deviations from best practise. It is the dedicated command for confirming that deployed resources are valid and conform to recommended configuration standards.

Why this answer

istioctl analyze performs static analysis of the Istio configuration in a cluster (or from files) and reports validation errors, warnings, and best-practice violations, such as misconfigured VirtualServices, missing sidecars, or deprecated fields. It is the canonical command for verifying configuration correctness and adherence to Istio's recommended patterns.

Exam trap

The trap is that Istio's CLI has many similarly named subcommands (analyze, diagnose, proxy-config, validate), and candidates pick 'verify' or 'check' because they sound like what validation should be called.

How to eliminate wrong answers

Option B is wrong because istioctl check is not a real istioctl subcommand — it does not exist in the Istio CLI. Option C is wrong because istioctl diagnose is used to collect diagnostic information (logs, config dumps, proxy states) for troubleshooting, not to validate configuration against best practices. Option D is wrong because istioctl verify is not a valid istioctl subcommand — it is a fabricated name that sounds plausible but is not part of the tool.

73
Multi-Selecthard

Which THREE actions occur when 'mode: STRICT' is set in a PeerAuthentication policy?

Select 3 answers
A.All non-Istio traffic is automatically routed to the gateway.
B.The client proxy initiates mTLS handshakes.
C.The sidecar proxy verifies the peer's identity via certificate.
D.The proxy automatically upgrades HTTP to HTTPS.
E.The server proxy rejects all non-mTLS traffic.
AnswersB, C, E

Under STRICT PeerAuthentication, the client sidecar initiates mTLS handshakes with the destination workload, since plaintext is rejected. This satisfies the stem's constraint by describing the client-side action required when strict mutual TLS is enforced mesh-wide.

Why this answer

In Istio, setting mode: STRICT in a PeerAuthentication policy enforces mutual TLS for all workloads in the targeted scope, so option B is correct because the client-side Envoy proxy initiates the mTLS handshake with the server proxy, presenting its certificate. Option C is correct because the receiving sidecar proxy validates the peer's identity by verifying the presented X.509 certificate against the trusted CA (Istiod's root), which is the core of mTLS peer authentication. Option E is correct because in STRICT mode the server proxy rejects any plaintext (non-mTLS) traffic, allowing only connections that complete a valid mTLS handshake.

Option A is wrong because PeerAuthentication only governs transport authentication between sidecars; it does not reroute non-Istio traffic to an ingress gateway. Option D is wrong because automatic HTTP-to-HTTPS redirection is a feature of Gateway/VirtualService or the istio-ingressgateway configuration, not of PeerAuthentication STRICT mode.

74
MCQeasy

What is the correct syntax for a principal in an AuthorizationPolicy?

A.spiffe://my-service
B.default/my-service
C.cluster.local/ns/default/sa/my-service
D.my-service.default
AnswerC

The SPIFFE-style identity `cluster.local/ns/default/sa/my-service` is the exact principal format Istio expects in an AuthorizationPolicy, encoding trust domain, namespace and service account. It satisfies the stem's requirement for correct principal syntax, unlike bare service names or DNS hostnames, which Istio cannot match against workload identities.

Why this answer

The principal follows the SPIFFE ID format: 'cluster.local/ns/default/sa/my-service'.

75
MCQmedium

How do you ensure that a workload ignores a global PeerAuthentication policy?

A.Apply a PeerAuthentication policy with a selector matching the specific workload.
B.Use an AuthorizationPolicy to bypass mTLS.
C.Delete the global policy.
D.Set the 'mode' to 'DISABLE' in a DestinationRule.
AnswerA

A PeerAuthentication with a selector targets only the labelled workload's sidecars, overriding the mesh-wide default for that pod. The workload's own policy takes precedence, so it can set mTLS to PERMISSIVE or DISABLE while the global STRICT policy remains for everything else.

Why this answer

A workload-specific PeerAuthentication policy (with a selector) will override a global (namespace or root) policy.

Page 1 of 4

Page 2

All pages