istio-traffic-management — скилл для Claude Code: настройка трафика
Скилл помогает настроить маршрутизацию, балансировку и отказоустойчивость в Istio. Пригодится для canary-релизов и проверки поведения сервисов.
/plugin marketplace add wshobson/agents
/plugin install cloud-infrastructure@claude-code-workflowsЧто делает istio-traffic-management
Скилл подсказывает, как описать правила Istio для маршрутизации между версиями сервиса, canary-развёртывания и балансировки нагрузки. В примерах используются VirtualService, DestinationRule и Gateway. Есть настройки circuit breaker, повторных запросов с таймаутами, зеркалирования трафика и инъекции сбоев.
Внутри приведены YAML-шаблоны и команды istioctl для анализа конфигурации, просмотра маршрутов и проверки обнаружения endpoint. Для canary-примера трафик распределяется между stable и canary, а правила circuit breaker задаются в DestinationRule. Скилл стоит поставить, если вы настраиваете Istio; для проектов без service mesh он не нужен.
Какие задачи решает
- направить запросы по заголовку к нужной версии сервиса
- распределить трафик между stable и canary
- задать таймауты и повторы для запросов
- проверить circuit breaker и обнаружение выбросов
- зеркалировать запросы или внедрить сбой для теста
Примеры запросов агенту
- Настрой canary для my-service: направь 90% трафика в stable и 10% в canary.
- Составь VirtualService для reviews: запросы с end-user: jason отправляй в v2, остальные — в v1.
- Проверь конфигурацию Istio для deploy/my-app и покажи команды istioctl для диагностики маршрутов.
Как установить istio-traffic-management
1Через маркетплейс плагинов
/plugin marketplace add wshobson/agents/plugin install cloud-infrastructure@claude-code-workflowsКоманда ставит плагин cloud-infrastructure целиком, со всеми его скиллами
2Через Skills CLI (Vercel)
npx skills add wshobson/agents --skill istio-traffic-management -a claude-code3Вручную: положить файлы
~/.claude/skills/istio-traffic-management/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/istio-traffic-management/
1Через Skills CLI (Vercel)
npx skills add wshobson/agents --skill istio-traffic-management -a codex2Вручную: положить файлы
.agents/skills/istio-traffic-management/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add wshobson/agents --skill istio-traffic-management -a cursor2Вручную: положить файлы
.cursor/skills/istio-traffic-management/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install wshobson/agents istio-traffic-management2Вручную: положить файлы
.github/skills/istio-traffic-management/SKILL.mdКомандой платформы
gemini skills install https://github.com/wshobson/agents --path plugins/cloud-infrastructure/skills/istio-traffic-managementВручную: положить файлы
.devin/skills/istio-traffic-management/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Claude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
Из того же набора213
Весь набор →Похожие
Вопросы о istio-traffic-management
Как установить istio-traffic-management в Claude Code?
Выполните npx skills add wshobson/agents --skill istio-traffic-management -a claude-code. Также доступна установка через /plugin marketplace add wshobson/agents и /plugin install cloud-infrastructure@claude-code-workflows.
Что делает istio-traffic-management?
Помогает настраивать правила трафика Istio: маршрутизацию, балансировку, canary-развёртывания и circuit breaker. Включает YAML-шаблоны и команды istioctl для диагностики.
С какими платформами работает этот скилл?
В списке платформ указаны Claude Code, Codex и Cursor.
Исходный текст
SKILL.md · MIT
---
name: istio-traffic-management
description: Configure Istio traffic management including routing, load balancing, circuit breakers, and canary deployments. Use when implementing service mesh traffic policies, progressive delivery, or resilience patterns.
---
# Istio Traffic Management
Comprehensive guide to Istio traffic management for production service mesh deployments.
## When to Use This Skill
- Configuring service-to-service routing
- Implementing canary or blue-green deployments
- Setting up circuit breakers and retries
- Load balancing configuration
- Traffic mirroring for testing
- Fault injection for chaos engineering
## Core Concepts
### 1. Traffic Management Resources
| Resource | Purpose | Scope |
| ------------------- | ----------------------------- | ------------- |
| **VirtualService** | Route traffic to destinations | Host-based |
| **DestinationRule** | Define policies after routing | Service-based |
| **Gateway** | Configure ingress/egress | Cluster edge |
| **ServiceEntry** | Add external services | Mesh-wide |
### 2. Traffic Flow
```
Client → Gateway → VirtualService → DestinationRule → Service
(routing) (policies) (pods)
```
## Templates
### Template 1: Basic Routing
```yaml
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
name: reviews-route
namespace: bookinfo
spec:
hosts:
- reviews
http:
- match:
- headers:
end-user:
exact: jason
route:
- destination:
host: reviews
subset: v2
- route:
- destination:
host: reviews
subset: v1
---
apiVersion: networking.istio.io/v1beta1
kind: DestinationRule
metadata:
name: reviews-destination
namespace: bookinfo
spec:
host: reviews
subsets:
- name: v1
labels:
version: v1
- name: v2
labels:
version: v2
- name: v3
labels:
version: v3
```
### Template 2: Canary Deployment
```yaml
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
name: my-service-canary
spec:
hosts:
- my-service
http:
- route:
- destination:
host: my-service
subset: stable
weight: 90
- destination:
host: my-service
subset: canary
weight: 10
---
apiVersion: networking.istio.io/v1beta1
kind: DestinationRule
metadata:
name: my-service-dr
spec:
host: my-service
trafficPolicy:
connectionPool:
tcp:
maxConnections: 100
http:
h2UpgradePolicy: UPGRADE
http1MaxPendingRequests: 100
http2MaxRequests: 1000
subsets:
- name: stable
labels:
version: stable
- name: canary
labels:
version: canary
```
### Template 3: Circuit Breaker
```yaml
apiVersion: networking.istio.io/v1beta1
kind: DestinationRule
metadata:
name: circuit-breaker
spec:
host: my-service
trafficPolicy:
connectionPool:
tcp:
maxConnections: 100
http:
http1MaxPendingRequests: 100
http2MaxRequests: 1000
maxRequestsPerConnection: 10
maxRetries: 3
outlierDetection:
consecutive5xxErrors: 5
interval: 30s
baseEjectionTime: 30s
maxEjectionPercent: 50
minHealthPercent: 30
```
### Template 4: Retry and Timeout
```yaml
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
name: ratings-retry
spec:
hosts:
- ratings
http:
- route:
- destination:
host: ratings
timeout: 10s
retries:
attempts: 3
perTryTimeout: 3s
retryOn: connect-failure,refused-stream,unavailable,cancelled,retriable-4xx,503
retryRemoteLocalities: true
```
### Template 5: Traffic Mirroring
```yaml
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
name: mirror-traffic
spec:
hosts:
- my-service
http:
- route:
- destination:
host: my-service
subset: v1
mirror:
host: my-service
subset: v2
mirrorPercentage:
value: 100.0
```
### Template 6: Fault Injection
```yaml
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
name: fault-injection
spec:
hosts:
- ratings
http:
- fault:
delay:
percentage:
value: 10
fixedDelay: 5s
abort:
percentage:
value: 5
httpStatus: 503
route:
- destination:
host: ratings
```
### Template 7: Ingress Gateway
```yaml
apiVersion: networking.istio.io/v1beta1
kind: Gateway
metadata:
name: my-gateway
spec:
selector:
istio: ingressgateway
servers:
- port:
number: 443
name: https
protocol: HTTPS
tls:
mode: SIMPLE
credentialName: my-tls-secret
hosts:
- "*.example.com"
---
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
name: my-vs
spec:
hosts:
- "api.example.com"
gateways:
- my-gateway
http:
- match:
- uri:
prefix: /api/v1
route:
- destination:
host: api-service
port:
number: 8080
```
## Load Balancing Strategies
```yaml
apiVersion: networking.istio.io/v1beta1
kind: DestinationRule
metadata:
name: load-balancing
spec:
host: my-service
trafficPolicy:
loadBalancer:
simple: ROUND_ROBIN # or LEAST_CONN, RANDOM, PASSTHROUGH
---
# Consistent hashing for sticky sessions
apiVersion: networking.istio.io/v1beta1
kind: DestinationRule
metadata:
name: sticky-sessions
spec:
host: my-service
trafficPolicy:
loadBalancer:
consistentHash:
httpHeaderName: x-user-id
# or: httpCookie, useSourceIp, httpQueryParameterName
```
## Best Practices
### Do's
- **Start simple** - Add complexity incrementally
- **Use subsets** - Version your services clearly
- **Set timeouts** - Always configure reasonable timeouts
- **Enable retries** - But with backoff and limits
- **Monitor** - Use Kiali and Jaeger for visibility
### Don'ts
- **Don't over-retry** - Can cause cascading failures
- **Don't ignore outlier detection** - Enable circuit breakers
- **Don't mirror to production** - Mirror to test environments
- **Don't skip canary** - Test with small traffic percentage first
## Debugging Commands
```bash
# Check VirtualService configuration
istioctl analyze
# View effective routes
istioctl proxy-config routes deploy/my-app -o json
# Check endpoint discovery
istioctl proxy-config endpoints deploy/my-app
# Debug traffic
istioctl proxy-config log deploy/my-app --level debug
```
© Seth Hobson · MIT · wshobson/agents