Kubernetes Service Mesh (Istio)

Manage Istio service mesh for traffic management, security, and observability. Use for traffic shifting, canary releases, mTLS, and service mesh troubleshooting.

Rohit Ghumare

@rohitg00

Install

$ openclaw skills install @rohitg00/k8s-service-mesh

Kubernetes Service Mesh (Istio)

Traffic management, security, and observability using kubectl-mcp-server's Istio/Kiali tools.

Requires the cilium, istio toolsets: start kubectl-mcp-server with --toolsets default,cilium,istio (or MCP_TOOLSETS=default,cilium,istio).

When to Apply

Use this skill when:

  • User mentions: "Istio", "service mesh", "mTLS", "VirtualService", "traffic shifting"
  • Operations: traffic management, canary deployments, security policies
  • Keywords: "sidecar", "proxy", "traffic split", "mutual TLS"

Priority Rules

PriorityRuleImpactTools
1Detect Istio installation firstCRITICALdetect_ecosystem
2Run analyze before changesHIGHistio_analyze
3Check proxy status for syncHIGHistio_proxy_status
4Verify sidecar injectionMEDIUMistio_sidecar_status

Quick Reference

TaskToolExample
Detect Istiodetect_ecosystemdetect_ecosystem()
Analyze configistio_analyzeistio_analyze(namespace)
Proxy statusistio_proxy_statusistio_proxy_status()
List VirtualServicesistio_virtualservices_lististio_virtualservices_list(namespace)

Quick Status Check

Detect Istio Installation

detect_ecosystem()

Check Proxy Status

istio_proxy_status()
istio_sidecar_status(namespace)

Analyze Configuration

istio_analyze(namespace)

Traffic Management

VirtualServices

List and inspect:

istio_virtualservices_list(namespace)
istio_virtualservice_get(name, namespace)

See TRAFFIC-SHIFTING.md for canary and blue-green patterns.

DestinationRules

istio_destinationrules_list(namespace)

Gateways

istio_gateways_list(namespace)

Traffic Shifting Patterns

Canary Release (Weight-Based)

VirtualService for 90/10 split:

apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
  name: my-service
spec:
  hosts:
  - my-service
  http:
  - route:
    - destination:
        host: my-service
        subset: stable
      weight: 90
    - destination:
        host: my-service
        subset: canary
      weight: 10

Apply and verify:

kubectl_apply(vs_yaml, namespace)
istio_virtualservice_get("my-service", namespace)

Header-Based Routing

Route beta users:

http:
- match:
  - headers:
      x-user-type:
        exact: beta
  route:
  - destination:
      host: my-service
      subset: canary
- route:
  - destination:
      host: my-service
      subset: stable

Security (mTLS)

See MTLS.md for detailed mTLS configuration.

PeerAuthentication (mTLS Mode)

istio_peerauthentications_list(namespace)

AuthorizationPolicy

istio_authorizationpolicies_list(namespace)

Observability

Proxy Metrics

istio_proxy_status()

Hubble (Cilium Integration)

If using Cilium with Istio:

get_hubble_flows(namespace)
cilium_list_endpoints(namespace)

Troubleshooting

Sidecar Not Injected

istio_sidecar_status(namespace)

Traffic Not Routing

istio_analyze(namespace)
istio_virtualservice_get(name, namespace)
istio_destinationrules_list(namespace)
istio_proxy_status()

mTLS Failures

istio_peerauthentications_list(namespace)

Common Issues

SymptomCheckResolution
503 errorsistio_analyze()Fix VirtualService/DestinationRule
No sidecaristio_sidecar_status()Label namespace
Config not appliedistio_proxy_status()Wait for sync or restart pod

Multi-Cluster Service Mesh

Istio multi-cluster setup:

istio_proxy_status(context="primary")
istio_virtualservices_list(namespace, context="primary")

istio_proxy_status(context="remote")

Prerequisites

  • Istio: Required for all Istio tools
    istioctl install --set profile=demo
    

Related Skills

Top skills in this category