apiVersion: v1 kind: Pod metadata: name: client namespace: istio-vt-t03 labels: app: client annotations: sidecar.istio.io/inject: "true" spec: containers: - name: curl image: curlimages/curl:8.14.1 command: ["sleep", "infinity"] --- apiVersion: apps/v1 kind: Deployment metadata: name: echo namespace: istio-vt-t03 labels: app: echo spec: replicas: 1 selector: matchLabels: app: echo template: metadata: labels: app: echo annotations: sidecar.istio.io/inject: "true" spec: containers: - name: echo image: mendhak/http-https-echo:37 env: - name: HTTP_PORT value: "8080" - name: HTTPS_PORT value: "8443" ports: - containerPort: 8080 - containerPort: 8443 --- apiVersion: v1 kind: Service metadata: name: echo namespace: istio-vt-t03 spec: selector: app: echo ports: - name: http port: 80 targetPort: 8080 - name: https port: 443 targetPort: 8443 --- apiVersion: apps/v1 kind: Deployment metadata: name: egw-a namespace: istio-vt-t03 labels: istio: egw-a-dgbr spec: replicas: 1 selector: matchLabels: istio: egw-a-dgbr template: metadata: labels: istio: egw-a-dgbr annotations: sidecar.istio.io/inject: "true" inject.istio.io/templates: gateway spec: containers: - name: istio-proxy image: auto --- apiVersion: v1 kind: Service metadata: name: egw-a namespace: istio-vt-t03 spec: selector: istio: egw-a-dgbr ports: - name: tls port: 8443 targetPort: 8443 --- apiVersion: networking.istio.io/v1 kind: Gateway metadata: name: egw-a-gw namespace: istio-vt-t03 spec: selector: istio: egw-a-dgbr servers: - port: number: 8443 name: tls-a protocol: TLS tls: mode: PASSTHROUGH hosts: - mock.istio-verify-ext.svc.homelab.local --- apiVersion: networking.istio.io/v1 kind: VirtualService metadata: name: egw-a-route namespace: istio-vt-t03 spec: hosts: - mock.istio-verify-ext.svc.homelab.local gateways: - egw-a-gw tls: - match: - port: 8443 sniHosts: - mock.istio-verify-ext.svc.homelab.local route: - destination: host: mock.istio-verify-ext.svc.homelab.local port: number: 443 --- apiVersion: apps/v1 kind: Deployment metadata: name: egw-b namespace: istio-vt-t03 labels: istio: egw-b-dgbr spec: replicas: 1 selector: matchLabels: istio: egw-b-dgbr template: metadata: labels: istio: egw-b-dgbr annotations: sidecar.istio.io/inject: "true" inject.istio.io/templates: gateway spec: containers: - name: istio-proxy image: auto --- apiVersion: v1 kind: Service metadata: name: egw-b namespace: istio-vt-t03 spec: selector: istio: egw-b-dgbr ports: - name: tls port: 8444 targetPort: 8444 --- apiVersion: networking.istio.io/v1 kind: Gateway metadata: name: egw-b-gw namespace: istio-vt-t03 spec: selector: istio: egw-b-dgbr servers: - port: number: 8444 name: tls-b protocol: TLS tls: mode: PASSTHROUGH hosts: - mock.istio-verify-ext.svc.homelab.local --- apiVersion: networking.istio.io/v1 kind: VirtualService metadata: name: egw-b-route namespace: istio-vt-t03 spec: hosts: - mock.istio-verify-ext.svc.homelab.local gateways: - egw-b-gw tls: - match: - port: 8444 sniHosts: - mock.istio-verify-ext.svc.homelab.local route: - destination: host: mock.istio-verify-ext.svc.homelab.local port: number: 443 --- apiVersion: apps/v1 kind: Deployment metadata: name: multi-ip-backend namespace: istio-vt-t03 spec: replicas: 2 selector: matchLabels: app: multi-ip-backend template: metadata: labels: app: multi-ip-backend annotations: sidecar.istio.io/inject: "false" spec: containers: - name: nginx image: nginx:1.27-alpine ports: - containerPort: 80 --- apiVersion: v1 kind: Service metadata: name: multi-ip-target namespace: istio-vt-t03 spec: clusterIP: None selector: app: multi-ip-backend ports: - port: 80 name: http --- apiVersion: networking.istio.io/v1 kind: ServiceEntry metadata: name: leaky-nack-demo namespace: istio-vt-t03 spec: hosts: - multi-ip-target.istio-vt-t03.svc.homelab.local location: MESH_EXTERNAL ports: - number: 80 name: http protocol: HTTP resolution: DNS_ROUND_ROBIN # exportTo 의도적으로 생략 -> 기본값 '*'(전역 노출)