index

Numerics

15000 port 425

15001 port 425

15004 port 426427

15006 port 425

15010 port 429

15012 port 429

15014 port 429

15017 port 429

15020 port 425426

15021 port 425

15053 port 425

15090 port 425

8080 port 429

9876 port 429

A

access logs, ingress gateways 106107

accessLogFile property 106

ACK (acknowledgment) flag 290291

action property 243

Admin API 69

ADS (Aggregated Discovery Service) 64, 281, 313

advanced retries 164166

agent behavior 375

agent logs 365366

agent, Istio 424428

endpoints to introspect and troubleshoot 426427

querying Istio Pilot debug endpoints through 427428

algorithms, client-side load balancing 147149

ALLOW policy 243, 245246, 248, 252

ALLOW_ANY mode 307

analyze command 274

analyze subcommand 275

/api/catalog endpoint 123

API gateways 1820, 88

/api/v2/spans endpoint 221

APIs, Envoy 277

/app-health/ endpoint 427

application libraries 811

application-aware service proxy 11

application-networking security 230234

authorization 231

comparison of security in monoliths and microservices 231233

end-user authentication 231

how Istio implements SPIFFE 233

Istio security 233234

service-to-service authentication 231

application-specific libraries 911

attribute-gen plugin 202

attributes 202204

authentication 231, 414416

:authority header 80

authorization 231

Authorization filter 423

AuthorizationPolicy resource 233, 242243, 245, 257258, 263264, 383

Auto mTLS 234 – 242

PeerAuthentication resource 236242

applying workload-specific policies 237238

denying all non-authenticated traffic using mesh-wide policy 236237

permitting non-mutually authenticated traffic 237

tcpdump 239241

two additional mutual authentication modes 238239

verifying workload identities tied to workload service account 241242

setting up environment 235236

auto passthrough, SNI 338339

Azure, creating clusters in 327328

B

backend distributed tracing engine 221223

batching period

environment variables defining 311312

increasing 312

blue deployment 6

blue-green deployment 6, 111

bootstrapping, of workload identity 419420

bulkheading 8

C

CA (certificate authority) 89, 434

CA (certificate authority) private key 416

call graph 120122

calls 202204

Canary object 128

canary release 113, 124129

Canary resource 125126, 129

CDS (cluster discovery service) 63, 187

CEL (Common Expression Language) 201

--cert parameter 96

cert-manager 326

certificate signing requests (CSRs) 186, 326, 416

/certs endpoint 69

CheckRequest API 260

CIDRs (classless inter-domain routing) 244

circuit breaking 78, 166176

connection-pool control 168173

outlier detection 173176

client-side load balancing 7, 139149

algorithms 147149

getting started with 140142

setting up scenario 142144

testing strategies 144147

cloud infrastructure 327328

creating clusters in Azure 327328

unreliabilty of 67

cluster roles 323

cluster subcommand 276

cluster_name.internal.* metrics 183

cluster_name.ssl.* metrics 184

clusters 57, 277

configuration of 281

Envoy cluster endpoints 281282

exposing cluster services to VM 360361

multi-cluster service meshes 320326

benefits of 320

common trust between clusters 324326

cross-cluster workload connectivity 324

discovering workloads in multi-cluster deployments 323324

Istio multi-cluster deployment models 321322

multi-cluster, multi-network, multi-control-plane service mesh 326346

choosing multi-cluster deployment model 327

configuring plug-in CA certificates 328329

enabling cross-cluster workload discovery 333335

installing control planes in each cluster 329333

load-balancing across clusters 341346

setting up cloud infrastructure 327328

setting up cross-cluster connectivity 335341

requests without tokens 257

resolving hostnames 372374

/clusters endpoint 69

CNI (Container Network Interface) plugin 413

Common Expression Language (CEL) 201

/config_dump endpoint 69

configmap resource 207

connection identity 233

connection logger 286

connection-pool control 168173

connectionPool settings 167

consecutive5xxErrors setting 174

container_cpu_usage_seconds_total metric 301

control plane 14, 2934

configuring Prometheus Operator to scrape 190193

goal of 295298

factors determining performance 298

steps of data-plane synchronization 297298

Grafana, viewing metrics 208209

ingress and egress gateway 3334

installing in multi-cluster, multi-network, multi-control-plane service mesh 329333

metrics in 186187

monitoring four signals 298303

errors 303

latency 299301

saturation 301302

traffic 302303

tuning performance 303314

discovery selectors 309310

event-batching and push-throttling properties 310314

guidelines 314315

measuring performance before optimizations 305309

setting up workspace 304305

ControlZ interface 431432

cool-off period 7

cool-store application 355

coolstore-gateway gateway definition 84

CRD (custom resource definition) 31

create-remote-secret command 333

cross-cluster workload

connectivity 324, 335341

configuring east-west gateways with SNI clusters 336338

Istio east-west gateway 336

routing cross-cluster traffic using SNI auto passthrough 338339

validating cross-cluster workload discovery 339341

enabling discovery 333335

labeling networks for 329333

installing control planes using IstioOperator resources 330331

running workloads on both clusters 332333

CRs (custom resources) 31

CSRs (certificate signing requests) 186, 326, 416

curl command 96, 172, 188

custom authorization filters 423

CUSTOM policy 243, 252

D

dark launch 114

dashboards, Grafana 207

data plane 13

customizing Istio 382383

Envoy config, misconfigurations from 275291

Envoy administration interface 276

inspecting network traffic with ksniff 288291

querying proxy configurations using istioctl 276282

troubleshooting application issues 282288

Envoy telemetry 291294

finding rate of failing requests in Grafana 291292

querying affected Pods using Prometheus 292294

Grafana, viewing metrics 209

identifying issues 270275

verifying data plane is up to date 270272

with istioctl 274275

with Kiali 272274

Lua, extending with 392395

metrics in 180186

misconfigured 268270

synchronization 297298

WebAssembly, extending with 395400

building new Envoy filter with 396397

building new Envoy filter with meshctl tool 397399

deploying new WebAssembly Envoy filter 399400

overview 395396

reasons for using for Envoy 396

DC flag 285

Debian Software Package (.deb) 363

debounce period 312

debouncing 298

/debug/adsz endpoint 431

/debug/authorizationz endpoint 431

/debug/config_distribution endpoint 431

debug endpoints

Istio Pilot 429431

querying through Istio agent 427428

/debug/ndsz endpoint 427

/debug/pprof/* endpoint 427

/debug/syncz endpoint 431

default namespace 244, 247

default tracing headers 215216

demo profile 217

DENY policy 243, 252

deny-all policy 246, 248

deny-by-default behavior 245

denying requests 246247

describe command 274275

descriptors 388

DestinationRule resource 121, 140142, 154, 268269, 273274, 278, 281, 320, 383384

dimensions 194

direction flag 280

DISABLE mode 238

discovery APIs 32

discovery selectors 309310

DiscoveryServer component 297

distributed architectures 2122

distributed tracing 209223

configuring Istio to perform 213216

configuring tracing at installation 213214

configuring tracing per workload 215

configuring tracing using MeshConfig 214

default tracing headers 215216

customizing backend distributed tracing engine 221223

customizing tags in trace 219220

force-tracing from client 218219

installing system 212213

overview 210212

trace sampling for mesh 218

viewing data 216217

with open tracing 4447

distribution, Istio 2627

DNS proxy 372375

aware of hostnames 374375

resolution of in-mesh services 354355

resolving cluster hostnames 372374

Docker Desktop 25

downloadIstio script 26

dynamic configuration 6365

E

east-west gateways 324, 336338

east-west traffic 335

echo service 99

EDS (endpoint discovery service) 32, 63, 187

edsClusterConfig section 281

egress gateway 3334

ENABLE_DEBUG_ON_HTTP environment variable 430

end-user authentication and authorization 231, 252259

at ingress gateway 255

JWT (JSON web token) 252254

traffic encryption via 414416

validating JWTs with RequestAuthentication 255259

creating RequestAuthentication resource 256

denying requests without JWTs 257258

levels of access based on JWT claims 258259

requests with tokens from invalid issuers 257

requests with tokens from valid issuers 256

requests without tokens are admitted into cluster 257

endpoint subcommand 276

endpoints

debug

Istio Pilot 429431

querying through Istio agent 427428

Envoy cluster 281282

to introspec and troubleshoot 426427

Envoy 387392

access logs

changing format 284285

overview 283

cluster configuration 279281

configuring Envoy filter with EnvoyFilter resource 383387

extension capabilities 379383

customizing Istio data plane 382383

filter chaining 379382

filters intended for extension 382

rate limiting 388392

configuring Envoy rate-limit server 389390

configuring request path for rate limiting 390392

WebAssembly

building new Envoy filter with 396397

building new Envoy filter with meshctl tool 397399

deploying new WebAssembly Envoy filter 399400

reasons for using 396

Envoy config 275291

Envoy administration interface 276

inspecting network traffic with ksniff 288291

inspecting network traffic on localhost interface 288291

installing Krew, ksniff, and Wireshark 288

querying proxy configurations using istioctl 276282

cluster configuration 281

Envoy cluster configuration 279 – 281

Envoy cluster endpoints 281282

Envoy listener configuration 277278

Envoy Route configuration 278279

interaction of Envoy APIs routing request 277

troubleshooting application issues 282288

changing Envoy access log format 284285

Envoy access logs 283

increasing logging level for ingress gateway 285288

setting up intermittently slow workload that times out 282283

envoy default provider 107

Envoy listeners 277278

Envoy proxy 12, 408

comparing to other proxies 6162

configuring 6265

dynamic configuration 6365

static configuration 6263

configuring proxies to report statistics 182186

features of 5761

automatic TLS termination and origination 61

extending Envoy 61

HTTP/2 and gRPC 59

load balancing 58

network resilience 59

observability with distributed tracing 60

observability with metrics collection 60

rate limiting 61

service discovery 58

traffic and request routing 59

traffic shifting and shadowing capabilities 59

in action 6570

Admin API 69

request retries 6970

Istio and 7173

overview 5557

Envoy Route configuration 278279

Envoy telemetry 291294

finding rate of failing requests in Grafana 291292

querying affected Pods using Prometheus 292294

Envoy Workload menu item, Workload view 228

envoy_cluster_upstream_cx_tx_bytes_total metric 303

envoy_on_request() function 393394

envoy_on_response() function 393

envoyExtAuthz service 262

EnvoyFilter API 164165

EnvoyFilter resource 165166, 196, 202, 382385, 390392, 394

ERROR_RATE environment variable 345

errors, four signals 303

ESB (enterprise service bus) 1718

Eureka 9

event-batching properties 310314

allocating additional resources to control plane 313314

environment variables defining batching period 311312

increasing batching period 312

latency metrics do not account for debounce period 312

ext-authz service 261

ExtAuthz 262263

extending Envoy 61

external authorization services 260264

configuring Istio for ExtAuthz 262263

setting up 261262

using AuthorizationPolicy resource 263264

external call-out, rate-limiting requests with 387392

external origin 183

external processing filter 382

extraStats annotation 203

F

failover, cross-cluster 345

filter chains 277, 380

filter metadata 233

filters

building new Envoy filter

overview 396397

with meshctl tool 397399

chaining 379382

configuring Envoy filter with EnvoyFilter resource 383387

deploying new WebAssembly Envoy filter 399400

intended for extension 382

FIN (finish) flag 291

fire and forget mode 59

Flagger 124129

force-tracing from client 218219

fortio server command 149

forum application 133, 358

forum service 134, 355, 368

forum-services namespace 366

four signals 299303

errors 303

latency 299301

saturation 301302

traffic 302303

FQDN (fully qualified domain name) 183, 332, 351

G

Gateway resource 82, 8586, 88, 9091, 9397, 99, 101, 103, 115, 140, 255, 269270, 278, 302, 332, 338, 361, 429

gateways

east-west gateways 336338

egress gateway 3334

ingress gateways 8088

API gateways vs. 88

Kubernetes Ingress vs. 8788

routing with virtual services 8386

specifying gateway resources 8283

traffic flow 86

operational tips 104108

gateway injection 105106

ingress gateway access logs 106107

reducing gateway configuration 107108

split gateway responsibilities 104105

securing traffic 8898

HTTP redirect to HTTPS 9394

HTTP traffic with mutual TLS 9497

HTTP traffic with TLS 8993

serving multiple virtual hosts with TLS 9798

TCP traffic 98104

exposing TCP ports on Istio gateway 99101

traffic routing with SNI passthrough 101104

traffic ingress 7880

virtual hosting 7980

virtual IPs 7879

GET requests 201

GKE (Google Kubernetes Engine) 25, 83

golden-signal networking metrics 204

Grafana 205209

control-plane metrics 208209

dashboards 207

data-plane metrics 209

finding rate of failing requests in 291292

setting up 189190

green deployment 6

grouping calls 202204

gRPC 59

H

header part, JWT 252

/headers endpoint 66, 216

headers, default tracing 215216

health checking 424

/healthz/ready endpoint 426

help endpoint 181

high availability of VMs 351354

health checks performed by Istio 353

Istio performing readiness probes in VMs 353354

workload auto-registration 351352

Host header 80, 84, 86, 91, 131

hostnames 372375

HTTP

redirect to HTTPS 9394

traffic with mutual TLS 9497

traffic with TLS 8993

http logger 286

HTTP/2 59

httpbin service 63, 6566, 68, 215, 393, 395, 399400

httpbin_service cluster 63

httpCall() function 393394

HTTPS 9394

Hystrix 9

I

ID, SPIFFE 416

identity, VM 349350

imageUrl property 49, 117

Inbound Metrics menu item, Workload view 228

inbound request 194

ingress gateways 3334, 8088, 255

access logs 106107

API gateways vs. 88

increasing logging level for 285288

Kubernetes Ingress vs. 8788

routing with virtual services 8386

setting up workspace 255

specifying gateway resources 8283

traffic flow 86

ingress points 78

injection, gateway 105106

injection, sidecar 409412

automatic 411412

manual 410411

installation profiles 402403

installing

distributed tracing system 212213

Istio components into Kubernetes 2729

istio-agent in VM 363366

checking agent logs 365366

verifying that workload registered to mesh 366

Kiali 223228

Krew, ksniff, and Wireshark 288

using istioctl 403404

with istio-operator 404407

installing istio-operator 405406

updating installation of mesh 406407

internal origin 183

interval setting 174

ipBlocks 244

Istio

control plane 2934

ingress and egress gateway 3334

Istiod 3032

customizing standard metrics 193204

configuring existing metrics 196200

creating new metrics 200202

grouping calls with new attributes 202204

deploying application in service mesh 3438

deploying on Kubernetes 2529

getting Istio distribution 2627

installing Istio components into Kubernetes 2729

using Docker Desktop for examples 25

Envoy proxy and 7173

health checks performed by 353

installation profiles 402403

installing and customizing

using istioctl 403404

with istio-operator 404407

IstioOperator API 401402

power of 3952

observability 4047

resiliency 4749

traffic routing 4952

security

authentication using PKI 414416

request identity 421423

SPIFFE 416420

service mesh 1522

API gateway 1820

distributed architectures 2122

drawbacks to using 22

ESB (enterprise service bus) 1718

non-microservices deployments 2021

service-to-service traffic 243244

authorization policy rules 243244

properties of authorization policy 243

sidecar

injection 409412

security issues with istio-init 413

traffic routing requests with 114122

cleaning up workspace 114115

deploying v1 of catalog service 115116

deploying v2 of catalog service 116117

routing all traffic to v1 of catalog service 117118

routing deep within call graph 120122

routing specific requests to v2 119

routing to services outside cluster 131135

troubleshooting

Istio agent 424428

Istio Pilot 428432

VM support 348355

DNS resolution of in-mesh services 354355

high availability 351354

simplifying sidecar proxy installation and configuration in VM 348350

Istio security 233234

Istio service proxy 72

istio_get_calls metric 201

ISTIO_KUBE_APP_PROBERS environment variable 427

ISTIO_META_ROUTER_MODE environment variable 337

istio_request_bytes metric 182

istio_request_duration metric 182

istio_request_duration_milliseconds metric 182

istio_requests_total metric 182, 192, 194195, 197, 203

istio_response_bytes metric 182

istio-agent 363366

checking agent logs 365366

verifying that workload registered to mesh 366

istio-egressgateway component 80

istio-ingressgateway component 93

istio-ingressgateway service 99100

istio-init 413

istio-init containers 408, 413

istio-operator 404407

installing 405406

updating installation of mesh 406407

istio-proxy container 37, 191, 241

istio-reader-service-account service account 333

istio-sidecar-injector configmap 106

istio-system namespace 2728, 39, 90, 106107, 125, 214, 218, 224, 236, 262, 307308, 329, 383

istioctl

identifying data plane issues with 274275

analyzing Istio configurations 274

detecting workload-specific misconfigurations 274275

installing 403404

istioctl analyze command 274

istioctl analyze subcommand 280

istioctl CLI tool 2627

istioctl command 35, 105, 369

istioctl dashboard command 216

istioctl describe output 275

istioctl kube-inject command 35

istioctl profile dump subcommand 402

istioctl proxy-config clusters flags 279

istioctl proxy-config command 276, 281

istioctl proxy-status command 271, 431

istioctl x internal-debug command 428

istiod 3032, 360361

istiod component 16, 26, 29

istiod control plane 271

istiod deployment 304

istiod server 297

istiod.istio-system.svc host entry 434

IstioOperator API 401402, 404, 407

IstioOperator definition 331, 337, 359, 403406

IstioOperator resource 105, 213, 330331, 337, 403, 405406

/items endpoint 201

J

Jaeger and distributed tracing 209223

configuring Istio to perform 213216

configuring tracing at installation 213214

configuring tracing per workload 215

configuring tracing using MeshConfig 214

default tracing headers 215216

customizing backend distributed tracing engine 221223

customizing tags in trace 219220

force-tracing from client 218219

installing system 212213

overview 210212

trace sampling for mesh 218

viewing data 216217

jq tool 221

jsonplaceholder.typicode.com host 134

JWKS (JSON Web Key Set) 254

JWT authentication filter 423

JWTs (JSON web tokens) 27, 231, 252254, 416

issuing 254

validating with RequestAuthentication 255259

creating resource 256

denying requests without JWTs 257258

levels of access based on JWT claims 258259

requests with tokens from invalid issuers 257

requests with tokens from valid issuers 256

requests without tokens are admitted into cluster 257

K

Kálmán, Rudolf E. 178

--key parameter 96

Kiali 223229

identifying data plane issues with 272274

installing 223228

Krew 288

ksniff 288291

inspecting network traffic on localhost interface 288291

installing Krew and Wireshark 288

kube-inject command 36

kube-prometheus stack 206

kubeconfig file 334

kubectl command 27, 328, 334

kubectl command-line tool 328

kubectl plugin manager 288

Kubernetes 2529

getting Istio distribution 2627

installing Istio components into 2729

using Docker Desktop for examples 25

Kubernetes Ingress 8788

L

labels property 361

last (catch-all) authorization filter 423

latency 299

latency metrics 299301, 312

LDS (listener discovery service) 32, 63, 238

listener subcommand 276

listeners 57, 277

/listeners endpoint 69

liveness probes 353

load balancing

across clusters 341346

cross-cluster access control using authorization policies 345346

cross-cluster failover 345

locality-aware routing across clusters 342344

Envoy proxy 58

local DNS proxy 408

localhost interface 288291

locality-aware load balancing 58, 149156

in action 149153

with weighted distribution 153156

locality-aware routing 342344

--log-level flag 66

/logging endpoint 69

logging level 285288

Logs menu item, Workload view 228

Lua 392395

M

mesh

trace sampling for 218

updating installation of 406407

VMs (virtual machines) joining 433434

mesh expansion to VMs 359371

enforcing mutual authentication 371

exposing istiod and cluster services to VM 360361

installing and configuring istio-agent in VM 363366

routing traffic to cluster services 366367

routing traffic to WorkloadEntry 367371

starting forum application in VM 370371

verifying health of forum workload 369370

setting up infrastructure 355358

provisioning VM 357358

setting up service mesh 356357

WorkloadGroup 361363

generating configuration for VM sidecar 362363

transferring generated files to VM 363

mesh federation 320

mesh-wide PeerAuthentication policies 236

mesh-wide sidecar 308

MeshConfig 214

meshconfig configuration 262

meshConfig.accessLogFile 283

meshctl tool 397399

meshID property 330

MeshNetwork configuration 329

metadata 421422

metrics 179187

customizing standard 193204

configuring existing metrics 196200

creating new metrics 200202

grouping calls with new attributes 202204

in control plane 186187

in data plane 180186

scraping with Prometheus 187193

configuring Prometheus Operator to scrape Istio control plane and workloads 190193

setting up Prometheus and Grafana 189190

metrics collection and exposure 424

microservices 231233

mirroring, traffic 129131

misconfigured data plane 268270

MITM (man-in-the-middle) attacks 89

mod_proxy module 11

monitoring, observability vs. 179

monoliths 231233

mTLS (mutual Transport Layer Security) 14, 32

MTTR (mean time to recovery) 178

multi-cluster service mesh 320

multi-mesh 320

multi-network meshes 324

MutatingWebhookConfiguration resource 412

mutual authentication 371

mutual TLS (mTLS) protocol 94

N

namespace discovery selectors 309

namespace-wide PeerAuthentication policies 236

namespace-wide sidecar 308

namespaces 244, 247248

NDS (Name Discovery Service) 355, 427

network filters 380

network property 361

network resilience 59

network traffic inspection 288291

inspecting network traffic on localhost interface 288291

installing Krew, ksniff, and Wireshark 288

nodes, Kubernetes 25

non-authenticated legacy workloads 248

non-microservices deployments 2021

north-south traffic 335

NOT SENT workload 271

notPrincipals property 244

notValues property 250

NR flag 285

O

observability 4047

customizing Istio standard metrics 193204

configuring existing metrics 196200

creating new metrics 200202

grouping calls with new attributes 202204

defined 178179

distributed tracing 60, 209223

configuring Istio to perform 213216

customizing backend distributed tracing engine 221223

customizing tags in trace 219220

force-tracing from client 218219

installing system 212213

overview 210212

trace sampling for mesh 218

viewing data 216217

with open tracing 4447

Grafana 205209

setting up dashboards 207

viewing control-plane metrics 208209

viewing data-plane metrics 209

Kiali 223229

metrics

collection 60

in control plane 186187

in data plane 180186

monitoring vs. 179

Prometheus, scraping Istio metrics with 187193

Prometheus Operator 190193

setting up 189190

top-level metrics 4144

On the General Theory of Control Systems (Khalman) 178

onRequestBody function 398

onRequestHeaders function 398

onResponseBody function 398

onResponseHeaders function 397398

open tracing 4447

openssl command utility 241

openssl verify utility 241

optimizations, measuring performance before 305309

defining better defaults with mesh-wide sidecar configuration 307309

reducing configuration size and number of pushes using sidecars 306

Sidecar resource 306307

origination, automatic TLS 61

Outbound Metrics menu item, Workload view 228

outbound request 194

outlier detection 59, 152, 173176

Overview menu item, Workload view 227

P

P99 (99th percentile) latency 305

passthrough 101104

path variable 233, 416

payload part, JWT 252

PeerAuthentication filter 423

PeerAuthentication policy 264, 371

PeerAuthentication resource 233, 236242, 308, 421

applying workload-specific policies 237238

denying all non-authenticated traffic using mesh-wide policy 236237

mutual authentication modes 238239

permitting non-mutually authenticated traffic 237

tcpdump 239241

verifying workload identities are tied to workload service account 241242

performance tuning, control plane 303314

discovery selectors 309310

event-batching and push-throttling properties 310314

allocating additional resources to control plane 313314

environment variables defining batching period and push throttling 311312

increasing batching period 312

latency metrics do not account for debounce period 312

guidelines 314315

measuring performance before optimizations 305309

defining better defaults with mesh-wide sidecar configuration 307309

reducing configuration size and number of pushes using sidecars 306

Sidecar resource 306307

setting up workspace 304305

PERMISSIVE authentication mode 236, 238

PERMISSIVE mutual authentication 237

phantom workloads 296

pilot agent 408

PILOT_DEBOUNCE_AFTER variable 311

PILOT_DEBOUNCE_MAX variable 311

PILOT_ENABLE_EDS_DEBOUNCE variable 311

PILOT_FILTER_GATEWAY_CLUSTER_CONFIG feature flag 108

pilot_inbound_updates metric 302

pilot_proxy_convergence_time metric 209, 299300

pilot_proxy_queue_time metric 299, 301

pilot_push_triggers metric 302

pilot_services metric 302

pilot_xds metric 303

pilot_xds_push_time metric 299, 301

pilot_xds_pushes metric 302

Pilot, Istio

querying debug endpoints through 427428

troubleshooting 428432

ControlZ interface 431432

debug endpoints 429431

plug-in CA certificates 325326

configuring 328329

external certificate authority integration 326

PodMonitor resource 190192

Pods 36

policies

behavior changes when applying to workload 245246

conditional matching of 249250

denying all requests by default with 246247

evaluating policy rules 250251

order of authorization of evaluated 252

verifying cross-cluster access control using authorization 345346

pool logger 286

port flag 280

power of two choices 148

prefix matching of values 250

presence matching 250

primary cluster 321

primary-primary deployment model 327

principal workload identity 421

principals 244

process_cpu_seconds_total metric 301

Prometheus

querying affected Pods using 292294

scraping metrics with 187193

configuring Prometheus Operator 190193

setting up Prometheus and Grafana 189190

prometheus default provider 107

prometheus namespace 190, 206

provider section 263

proxies

application-aware service 11

configuring to report Envoy statistics 182186

Envoy 12, 6162

querying configurations using istioctl 276282

cluster configuration 281

Envoy cluster configuration 279281

Envoy cluster endpoints 281282

Envoy listener configuration 277278

Envoy Route configuration 278279

interaction of Envoy APIs routing request 277

simplifying sidecar installation 348350

proxy.istio.io/config annotation 183

public key infrastructure (PKI) 414416

push-throttling properties 310314

allocating additional resources to control plane 313314

environment variables defining 311312

increasing batching period 312

latency metrics do not account for debounce period 312

Q

/quitquitquit endpoint 427

R

rate limiting

overview 61

requests with external call-out 387392

RBAC (role-based access control) 260

RDS (route discovery service) 32, 63, 271

readiness probes 353354

real time impacts 8

Red Hat Package Manager (.rpm) 363

REGISTRY_ONLY mode 307

release, deployment vs. 111114

releasing code 112

remote cluster access 333335

replicated control plane deployment model 322

request authentication claims 421

request hedging 166

request identity 421423

metadata collected by RequestAuthentication resource 421422

overview 423

request path

configuring Envoy filter with EnvoyFilter resource 383387

Envoy extension capabilities 379383

customizing Istio data plane 382383

filter chaining 379382

filters intended for extension 382

Lua, extending Istio data plane with 392395

rate-limiting requests with external call-out 387392

WebAssembly, extending Istio data plane with 395400

building new Envoy filter with 396397

building new Envoy filter with meshctl tool 397399

deploying new WebAssembly Envoy filter 399400

overview 395396

reasons for using for Envoy 396

request retries 6970

request routing 59

request_protocol dimension 198199

RequestAuthentication 255259

creating resource 256

denying requests without JWTs 257258

levels of access based on JWT claims 258259

metadata collected by 421422

requests

with tokens from invalid issuers 257

with tokens from valid issuers 256

without tokens are admitted into cluster 257

requestPrincipals property 257258

requests_total metric 198

resilience 4749

building into application 137139

decentralized implementation of resilience 138139

into application libraries 137138

using Istio to solve problems 138

circuit breaking with Istio 166176

connection-pool control 168173

outlier detection 173176

client-side load balancing 139149

algorithms 147149

getting started with 140142

setting up scenario 142144

testing strategies 144147

locality-aware load balancing 149156

in action 149153

with weighted distribution 153156

retries 158164

advanced retries 164166

in terms of timeouts 162

overview 163164

timeouts 156158

resilient package 10

--resolve flag 92

response_code dimension 195

retries 8, 158164

advanced retries 164166

in terms of timeouts 162

overview 163164

retry budgets 8

retryOn configurations 162

retryRemoteLocalities setting 164

reverse proxy 79

Ribbon 9

RLS (rate-limit server) 388

role-based access control (RBAC) 260

roles 323

ROUND_ROBIN load-balancing 142

route discovery service (RDS) 32, 63, 271

route subcommand 276

router filter 381

router logger 286

routes 277

RPC (remote procedure call) resilience patterns 137

S

sample-backend service 165

SAN (ubject Alternative Name) extensions 418

saturation 299, 301302

scale out 313

scale up 313

scaling Istio

multi-cluster service meshes 320326

benefits of 320

common trust between clusters 324326

cross-cluster workload connectivity 324

discovering workloads in multi-cluster deployments 323324

Istio multi-cluster deployment models 321322

multi-cluster, multi-network, multi-control-plane service mesh 326346

choosing multi-cluster deployment model 327

configuring plug-in CA certificates 328329

enabling cross-cluster workload discovery 333335

installing control planes in each cluster 329333

load-balancing across clusters 341346

setting up cloud infrastructure 327328

setting up cross-cluster connectivity 335341

scraping metrics with Prometheus 187193

configuring Prometheus Operator 190193

setting up Prometheus and Grafana 189190

SDS (Secret Discovery Service) 63, 187, 326, 420

secret subcommand 276

secrets 333335

security

application-networking security 230234

authorization 231

comparison of security in monoliths and microservices 231233

end-user authentication 231

how Istio implements SPIFFE 233

Istio security 233234

service-to-service authentication 231

authentication using PKI 414416

authorizing service-to-service traffic 242252

allowing requests from non-authenticated legacy workloads 248

allowing requests from single service account 248249

allowing requests originating from single namespace 247248

authorization in Istio 243244

behavior changes when applying policy to workload 245246

conditional matching of policies 249250

denying all requests by default with catch-all policy 246247

order of authorization policies evaluated 252

setting up workspace 244245

value-match expressions 250251

Auto mTLS 234242

PeerAuthentication resource 236242

setting up environment 235236

end-user authentication and authorization 252259

at ingress gateway 255

JWT (JSON web token) 252254

validating JWTs with RequestAuthentication 255259

external authorization services 260264

configuring Istio for ExtAuthz 262263

setting up 261262

using AuthorizationPolicy resource 263264

gateway traffic 8898

HTTP redirect to HTTPS 9394

HTTP traffic with mutual TLS 9497

HTTP traffic with TLS 8993

serving multiple virtual hosts with TLS 9798

issues with istio-init 413

request identity 421423

metadata collected by RequestAuthentication resource 421422

overview 423

SPIFFE (Secure Production Identity Framework for Everyone) 416420

bootstrapping of workload identity 419420

ID, workload identity 416

implementation of 418

SVIDs (SPIFFE Verifiable Identity Documents) 417418

Workload API 416417

workload endpoints 417

server mode 144

service account tokens 323

service accounts 323

service discovery 7

Envoy proxy 58

Istio 131135

service interactions 78

service meshes

application libraries 811

challenges of going faster 58

cloud infrastructure, unreliabilty of 67

making service interactions resilient 78

real time impacts 8

defined 1315

deploying application in 3438

Istio service mesh 1522

API gateway 1820

distributed architectures 2122

drawbacks to using 22

ESB (enterprise service bus) 1718

non-microservices deployments 2021

multi-cluster service meshes 320326

benefits of 320

common trust between clusters 324326

cross-cluster workload connectivity 324

discovering workloads in multi-cluster deployments 323324

Istio multi-cluster deployment models 321322

multi-cluster, multi-network, multi-control-plane service mesh 326346

choosing multi-cluster deployment model 327

configuring plug-in CA certificates 328329

enabling cross-cluster workload discovery 333335

installing control planes in each cluster 329333

load-balancing across clusters 341346

setting up cloud infrastructure 327328

setting up cross-cluster connectivity 335341

pushing concerns to infrastructure 1112

application-aware service proxy 11

Envoy proxy 12

Service object 127

service proxy, application-aware 11

service-to-service authentication 231

service-to-service traffic 242252

allowing requests

from non-authenticated legacy workloads 248

from single service account 248249

originating from single namespace 247248

authorization in Istio 243244

authorization policy rules 243244

properties of authorization policy 243

behavior changes when applying policy to workload 245246

conditional matching of policies 249250

denying all requests by default with catch-all policy 246247

order of authorization policies evaluated 252

setting up workspace 244245

value-match expressions 250251

serviceAccount property 362

ServiceEntry resource 133134, 351

ServiceMonitor resource 190192, 208

-shadow postfix 131

shadowing capabilities 59

shared control plane deployment model 322

shifting, traffic 122129

sidecar deployment packages 35

sidecar deployment pattern 12

Sidecar resource 108, 303, 313315, 320

sidecar.istio.io/extraStatTags annotation 199

sidecar.istio.io/statsInclusionPrefixes annotation 201

sidecars

defining defaults with mesh-wide sidecar configuration 307309

generating configuration for VM 362363

injection 409412

automatic 411412

manual 410411

reducing configuration size and number of pushes 306

security issues with istio-init 413

Sidecar resource 306307

simplifying installation and configuration in VM 348350

signature part, JWT 252

simple-backend backends 139

simple-backend cluster 173

simple-backend endpoint 142

simple-backend service 141142, 149, 151154, 157, 159, 161, 168, 170, 173

simple-web endpoint 142

simple-web service 139, 142, 152153, 170

single control plane deployment model 322

Site Reliability Engineering 299

sleep service 235, 246248, 263

sleep workload 236, 240, 244

SLOs (service-level objectives) 18, 299

SLOW_POD variable 285

SNI (Server Name Indication) 80, 98

configuring east-west gateways with 336338

routing cross-cluster traffic using 338339

traffic routing with 101104

source_mesh_id dimension 197

source.namespace property 247

spec.template.metadata Pod template 199

SPIFFE (Secure Production Identity Framework For Everyone) 32, 231, 416420

bootstrapping of workload identity 419420

ID, workload identity 416

implementation of 418

Istio implementing 233

SVIDs (SPIFFE Verifiable Identity Documents) 417418

Workload API 416417

workload endpoints 417

split gateway responsibilities 104105

stackdriver default provider 107

STALE workload 271

static configuration 6263

/stats endpoint 69

stats plugin 196, 200203

/stats/prometheus endpoint 69, 427

STRICT authentication mode 236

STRICT mutual authentication 237

STRICT permissive mode 238

subset flag 280

suffix matching 250

SVIDs (SPIFFE Verifiable Identity Documents) 233, 350, 416418

SYN (synchronization) flag 290 – 291

SYNCED workload 271

T

tags 219220

TCP traffic 98104

exposing TCP ports on Istio gateway 99101

traffic routing with SNI passthrough 101104

tcpdump command 240

tcpdump command-line utility 239

telnet command 100

terminal filter 381

termination, automatic TLS 61

TEXT format 283

throttling 298

timeouts 8

overview 156158

retries in terms of 162

TLS (Transport Layer Security)

automatic termination and origination 61

HTTP traffic with 8993

HTTP traffic with mutual 9497

serving multiple virtual hosts with 9798

traffic encryption via 414416

TLS handshake 414

TokenReview API 420

top-level metrics 4144

trace sampling for mesh 218

Traces Workload menu item, Workload view 228

traffic

encryption 414416

four signals 302303

ingress 7880

virtual hosting 7980

virtual IPs 7879

traffic routing 4952

Envoy proxy 59

reducing risk of deploying new code 111114

requests with Istio 114122

cleaning up workspace 114115

deploying v1 of catalog service 115116

deploying v2 of catalog service 116117

routing all traffic to v1 of catalog service 117118

routing deep within call graph 120122

routing specific requests to v2 119

service discovery 131135

to cluster services 366367

to WorkloadEntry 367371

starting forum application in VM 370371

verifying health of forum workload 369370

traffic mirroring 129131

traffic shifting 122129

troubleshooting

application issues 282288

changing Envoy access log format 284285

Envoy access logs 283

increasing logging level for ingress gateway 285288

setting up intermittently slow workload that times out 282283

Istio agent 424428

endpoints to introspec and troubleshoot 426427

querying Istio Pilot debug endpoints through 427428

Istio Pilot 428432

ControlZ interface 431432

debug endpoints 429431

trust-domain variable 233, 416

U

UC flag 285

UH flag 285

unit of work 210

UNSET mode 238

upstream system 57

upstream_operation dimension 203

upstream_proxy_version dimension 197

V

v1 of catalog service

deploying 115116

routing all traffic to 117118

v2 of catalog service

deploying 116117

routing specific requests to 119

value-match expressions 250251

verify-install command 28

version-v1 subset 269, 280281

version-v2 subset 269, 280281, 293

virtual hosting 7980, 9798

virtual IPs 7879

virtual services 8386

VirtualService object 127

VirtualService resource 8286, 88, 9899, 102103, 108, 114, 116, 118119, 121122, 124, 126, 130, 140, 157, 159160, 163, 173, 187, 215, 255, 268270, 278279, 302, 320, 332, 338, 361, 383384, 429

VirtualService retry policy 161162

visualization

distributed tracing 209223

configuring Istio to perform 213216

installing system 212213

overview 210212

trace sampling, force traces, and custom tags 217223

viewing data 216217

Grafana 205209

setting up dashboards 207

viewing control-plane metrics 208209

viewing data-plane metrics 209

Kiali 223229

VMs (virtual machines) 15, 25

customizing agent behavior 375

DNS proxy 372375

aware of hostnames 374375

resolving cluster hostnames 372374

Istio support of 348355

DNS resolution of in-mesh services 354355

high availability 351354

simplifying sidecar proxy installation and configuration in VM 348350

joining mesh 433434

mesh expansion to 359371

enforcing mutual authentication 371

exposing istiod and cluster services to VM 360361

installing and configuring istio-agent in VM 363366

routing traffic to cluster services 366367

routing traffic to WorkloadEntry 367371

WorkloadGroup 361363

removing WorkloadEntry from mesh 375376

setting up infrastructure 355358

provisioning VM 357358

setting up service mesh 356357

W

Wasm (WebAssembly) 61, 197

wasme open source developer tool 396

WasmPlugin resource 399

webasseblyhub.io registry 399

WebAssembly 395400

building new Envoy filter with 396397

building new Envoy filter with meshctl tool 397399

deploying new WebAssembly Envoy filter 399400

for Envoy 396

overview 395396

weighted distribution 153156

west-cluster control plane 334

when property 249, 251

Wireshark 288

Workload API 416417

workload attestation 417

workload auto-registration 351352

workload endpoints 417

workload identity 416

bootstrapping of 419420

managing with Istiod 32

workload-specific PeerAuthentication policies 236

workload-specific sidecar 309

WorkloadEntry 367371

removing 375376

starting forum application in VM 370371

verifying health of forum workload 369370

WorkloadGroup 361363

generating configuration for VM sidecar 362363

transferring generated files to VM 363

workloadSelector property 309

X

x-app-tap tracing header 386

x-b3-flags tracing header 60, 211, 217

x-b3-parentspanid tracing header 211, 217

x-b3-sampled tracing header 211, 217

x-b3-spanid tracing header 211, 217

x-b3-traceid tracing header 211, 217

x-dark-launch header 3031, 5152

x-envoy-force-trace tracing header 219

x-envoy-overloaded header 172

x-ext-authz header 261, 263

x-istio-cohort header 119, 121122

x-loyalty header 389, 392

x-ot-span-context tracing header 211, 217

x-request-id tracing header 211, 217

xDS discovery services 64, 71

Z

zipkin service 212213

Zuul 9

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.133.131.168