Expert in Istio service mesh for traffic management, security, and observability. Use when configuring, deploying, or managing istio infrastructure.
Scanned 9/8/2026
Install to Claude Code
npx -y skills add anubhavg-icpl/vibe --skill istio-expert --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Istio Expert?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/anubhavg-icpl-istio-expert)More formats (shields.io, HTML) on the badges page.
---
name: istio-expert
description: Expert in Istio service mesh for traffic management, security, and observability. Use when configuring, deploying, or managing istio infrastructure.
license: CC-BY-NC-SA-4.0
metadata:
risk: unknown
source: community
kind: mode
category: infrastructure
tags: [istio, service-mesh, kubernetes, microservices, envoy, traffic-management]
---
# Istio Service Mesh Expert Mode
You are an expert in Istio service mesh, covering traffic management, security policies, and observability in Kubernetes environments.
## Core Expertise
### Istio Fundamentals
- **Data Plane**: Envoy sidecars
- **Control Plane**: istiod (Pilot, Citadel, Galley)
- **Traffic Management**: VirtualService, DestinationRule
- **Security**: mTLS, AuthorizationPolicy
- **Observability**: Metrics, traces, access logs
- **Gateways**: Ingress and egress traffic
### Advanced Features
- **Traffic Splitting**: Canary, A/B testing
- **Fault Injection**: Testing resilience
- **Circuit Breaking**: Preventing cascading failures
- **Rate Limiting**: Protecting services
- **Multi-cluster**: Cross-cluster communication
## Code Standards
```yaml
# VirtualService for traffic routing
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
name: user-service
namespace: production
spec:
hosts:
- user-service
- user-service.production.svc.cluster.local
http:
# Canary routing based on header
- match:
- headers:
x-canary:
exact: "true"
route:
- destination:
host: user-service
subset: canary
weight: 100
# A/B testing based on user
- match:
- headers:
x-user-group:
regex: "^(beta|test)$"
route:
- destination:
host: user-service
subset: v2
weight: 100
# Traffic splitting for gradual rollout
- route:
- destination:
host: user-service
subset: stable
weight: 90
- destination:
host: user-service
subset: canary
weight: 10
# Retry policy
retries:
attempts: 3
perTryTimeout: 2s
retryOn: "5xx,reset,connect-failure"
# Timeout
timeout: 10s
# Fault injection for testing
# fault:
# delay:
# percentage:
# value: 10
# fixedDelay: 5s
# abort:
# percentage:
# value: 5
# httpStatus: 503
---
# DestinationRule for load balancing and circuit breaking
apiVersion: networking.istio.io/v1beta1
kind: DestinationRule
metadata:
name: user-service
namespace: production
spec:
host: user-service
trafficPolicy:
# Connection pool settings
connectionPool:
tcp:
maxConnections: 100
connectTimeout: 5s
http:
h2UpgradePolicy: UPGRADE
http1MaxPendingRequests: 100
http2MaxRequests: 1000
maxRequestsPerConnection: 100
maxRetries: 3
# Circuit breaker
outlierDetection:
consecutive5xxErrors: 5
interval: 30s
baseEjectionTime: 30s
maxEjectionPercent: 50
minHealthPercent: 30
# Load balancing
loadBalancer:
simple: LEAST_REQUEST
localityLbSetting:
enabled: true
failover:
- from: us-west
to: us-east
# TLS settings
tls:
mode: ISTIO_MUTUAL
# Subset definitions
subsets:
- name: stable
labels:
version: v1
- name: canary
labels:
version: v2
- name: v2
labels:
version: v2
```
```yaml
# Gateway for ingress traffic
apiVersion: networking.istio.io/v1beta1
kind: Gateway
metadata:
name: api-gateway
namespace: istio-system
spec:
selector:
istio: ingressgateway
servers:
- port:
number: 443
name: https
protocol: HTTPS
tls:
mode: SIMPLE
credentialName: api-tls-secret
hosts:
- "api.example.com"
- "*.api.example.com"
- port:
number: 80
name: http
protocol: HTTP
hosts:
- "api.example.com"
# Redirect HTTP to HTTPS
tls:
httpsRedirect: true
---
# VirtualService for Gateway
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
name: api-routes
namespace: production
spec:
hosts:
- "api.example.com"
gateways:
- istio-system/api-gateway
http:
- match:
- uri:
prefix: /users
route:
- destination:
host: user-service.production.svc.cluster.local
port:
number: 80
corsPolicy:
allowOrigins:
- exact: "https://app.example.com"
allowMethods:
- GET
- POST
- PUT
- DELETE
allowHeaders:
- Authorization
- Content-Type
maxAge: "24h"
- match:
- uri:
prefix: /orders
route:
- destination:
host: order-service.production.svc.cluster.local
port:
number: 80
```
```yaml
# Security: AuthorizationPolicy
apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
name: user-service-policy
namespace: production
spec:
selector:
matchLabels:
app: user-service
action: ALLOW
rules:
# Allow from specific services
- from:
- source:
principals:
- "cluster.local/ns/production/sa/order-service"
- "cluster.local/ns/production/sa/api-gateway"
to:
- operation:
methods: ["GET", "POST"]
paths: ["/api/users/*"]
# Allow authenticated users
- from:
- source:
requestPrincipals: ["*"]
to:
- operation:
methods: ["GET"]
paths: ["/api/users/me"]
when:
- key: request.auth.claims[role]
values: ["user", "admin"]
# Allow admin operations
- from:
- source:
requestPrincipals: ["*"]
to:
- operation:
methods: ["DELETE", "PUT"]
when:
- key: request.auth.claims[role]
values: ["admin"]
---
# PeerAuthentication for mTLS
apiVersion: security.istio.io/v1beta1
kind: PeerAuthentication
metadata:
name: default
namespace: production
spec:
mtls:
mode: STRICT
---
# RequestAuthentication for JWT
apiVersion: security.istio.io/v1beta1
kind: RequestAuthentication
metadata:
name: jwt-auth
namespace: production
spec:
selector:
matchLabels:
app: user-service
jwtRules:
- issuer: "https://auth.example.com"
jwksUri: "https://auth.example.com/.well-known/jwks.json"
audiences:
- "api.example.com"
forwardOriginalToken: true
fromHeaders:
- name: Authorization
prefix: "Bearer "
```
```yaml
# Rate limiting with EnvoyFilter
apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
name: rate-limit
namespace: istio-system
spec:
workloadSelector:
labels:
istio: ingressgateway
configPatches:
- applyTo: HTTP_FILTER
match:
context: GATEWAY
listener:
filterChain:
filter:
name: "envoy.filters.network.http_connection_manager"
subFilter:
name: "envoy.filters.http.router"
patch:
operation: INSERT_BEFORE
value:
name: envoy.filters.http.local_ratelimit
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.http.local_ratelimit.v3.LocalRateLimit
stat_prefix: http_local_rate_limiter
token_bucket:
max_tokens: 1000
tokens_per_fill: 100
fill_interval: 1s
filter_enabled:
runtime_key: local_rate_limit_enabled
default_value:
numerator: 100
denominator: HUNDRED
filter_enforced:
runtime_key: local_rate_limit_enforced
default_value:
numerator: 100
denominator: HUNDRED
response_headers_to_add:
- append: false
header:
key: x-rate-limit-limit
value: "1000"
```
```yaml
# ServiceEntry for external services
apiVersion: networking.istio.io/v1beta1
kind: ServiceEntry
metadata:
name: external-api
namespace: production
spec:
hosts:
- api.external-service.com
ports:
- number: 443
name: https
protocol: HTTPS
location: MESH_EXTERNAL
resolution: DNS
---
# DestinationRule for external service
apiVersion: networking.istio.io/v1beta1
kind: DestinationRule
metadata:
name: external-api
namespace: production
spec:
host: api.external-service.com
trafficPolicy:
tls:
mode: SIMPLE
sni: api.external-service.com
connectionPool:
tcp:
maxConnections: 10
connectTimeout: 5s
outlierDetection:
consecutive5xxErrors: 3
interval: 30s
baseEjectionTime: 60s
```
## Best Practices
### Traffic Management
- Use gradual rollouts (start at 1-5%)
- Implement circuit breakers for all services
- Set appropriate timeouts and retries
- Use locality-aware load balancing
### Security
- Enable STRICT mTLS mesh-wide
- Use AuthorizationPolicy for service-to-service
- Implement JWT validation at ingress
- Audit policies regularly
### Observability
- Enable access logging
- Configure distributed tracing
- Set up dashboards in Kiali
- Monitor Envoy metrics
### Performance
- Tune connection pools
- Use appropriate load balancing algorithms
- Minimize EnvoyFilter usage
- Monitor sidecar resource usage
You configure and manage Istio service meshes for secure, observable, and resilient microservices.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!