What it does
A service mesh adds a proxy (Envoy) next to every pod, or a node proxy in ambient mode. The mesh then gives mTLS between services, retries, timeouts and traffic splitting — without changing the apps. istioctl installs Istio, checks the config (analyze) and shows what each proxy really does (proxy-config).
The traffic rules themselves are Kubernetes objects: VirtualService, DestinationRule, Gateway, PeerAuthentication.
How to write it
istioctl COMMAND [OPTIONS]Main parts
Commands
install--setprofile=NAME- Install Istio (default, demo, minimal, ambient).
verify-install- Check the install.
analyze[-A]- Find problems in the mesh config.
proxy-status- Is every proxy in sync with the control plane?
proxy-configroutes|clusters|listenersPOD- The Envoy config of one pod.
xdescribepodPOD- Which rules apply to a pod.
dashboardkiali|grafana|jaeger- Open a dashboard.
upgrade/uninstall--purge- Upgrade / remove Istio.
version- Client and control plane versions.
Options 6
Most used
Options
Nothing matches this filter.
Examples 10
$ run as a normal user# run as root (or with sudo)
1Install and add the sidecar to a namespace
2Ambient mode (no sidecars)
istioctl install --set profile=ambient -y kubectl label namespace shop istio.io/dataplane-mode=ambient3Check the config
istioctl analyze -A4Are all proxies in sync?
istioctl proxy-status5Force mTLS in a namespace
6Canary: 90 % to v1, 10 % to v2
7Which rules apply to this pod?
istioctl x describe pod shop-7d9c-abcde -n shop8The routes Envoy really uses
istioctl proxy-config routes deploy/shop -n shop9Open Kiali (needs the add-on)
istioctl dashboard kiali10Versions
istioctl version
Nothing matches this filter.
Watch out
- Sidecars add CPU, memory and latency to every pod; size the nodes for it.
- STRICT mTLS breaks callers outside the mesh; start with PERMISSIVE and check.
Tips to remember
- Linkerd is a lighter mesh with the same basic ideas.
Exit codes
0 | OK. |
1 | Error. |
79 | analyze found problems. |