dev #19
@ -1,142 +1,127 @@
|
||||
IDK put some text in there
|
||||
|
||||
|
||||
# Istioctl analyze
|
||||
|
||||
### Start the packet capture process on the istio-proxy from a pod.
|
||||
`istioctl analyze` reviews the current configuration set.
|
||||
|
||||
Can be helpful to spot some improvements on the current configurations set, as well of the possibility of displaying misconfigurations / lack of them that might be causing issues.
|
||||
|
||||
```shell
|
||||
istioctl analyze
|
||||
```
|
||||
```text
|
||||
✔ No validation issues found when analyzing namespace: default.
|
||||
```
|
||||
|
||||
By using the flag -A, it will review from all namespaces
|
||||
|
||||
```shell
|
||||
istioctl analyze -A
|
||||
```
|
||||
```text
|
||||
Info [IST0102] (Namespace istio-operator) The namespace is not enabled for Istio injection. Run 'kubectl label namespace istio-operator istio-injection=enabled' to enable it, or 'kubectl label namespace istio-operator istio-injection=disabled' to explicitly mark it as not needing injection.
|
||||
Info [IST0118] (Service istio-system/grafana) Port name service (port: 3000, targetPort: 3000) doesn't follow the naming convention of Istio port.
|
||||
Info [IST0118] (Service istio-system/jaeger-collector) Port name jaeger-collector-grpc (port: 14250, targetPort: 14250) doesn't follow the naming convention of Istio port.
|
||||
Info [IST0118] (Service istio-system/jaeger-collector) Port name jaeger-collector-http (port: 14268, targetPort: 14268) doesn't follow the naming convention of Istio port.
|
||||
```
|
||||
|
||||
One can specify/target a single namespace by using the flag `-n`
|
||||
|
||||
```shell
|
||||
istioctl analyze -n istio-operator
|
||||
```
|
||||
```text
|
||||
Info [IST0102] (Namespace istio-operator) The namespace is not enabled for Istio injection. Run 'kubectl label namespace istio-operator istio-injection=enabled' to enable it, or 'kubectl label namespace istio-operator istio-injection=disabled' to explicitly mark it as not needing injection.
|
||||
```
|
||||
|
||||
# Start the packet capture process on the istio-proxy container from a pod.
|
||||
|
||||
Target a pod and start a packet capture on the istio-proxy container.
|
||||
|
||||
```shell
|
||||
$ kubectl exec -n default "$(kubectl get pod -n default -l app=helloworld -o jsonpath={.items..metadata.name})" -c istio-proxy -- sudo tcpdump dst port 80 -A
|
||||
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
|
||||
listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
|
||||
...
|
||||
```
|
||||
|
||||
### Logs
|
||||
# Logs
|
||||
|
||||
Istio system logs
|
||||
> **Note:**\
|
||||
> Remember that you can use the command `watch` or `watch -n 5` (where 5 refers every 5 seconds) in case of being interested on execute this commands periodically.
|
||||
|
||||
## Istiod
|
||||
|
||||
```shell
|
||||
kubectl logs -f deployments/istiod -n istio-system
|
||||
kubectl logs -n istio-system -f deployments/istiod
|
||||
```
|
||||
|
||||
## Ingress
|
||||
|
||||
|
||||
## Istioctl proxy-config
|
||||
|
||||
The service targeted, `istio-ingressgateway`, is an Ingress Load Balancer service from Istio.
|
||||
|
||||
```shell
|
||||
istioctl proxy-config all helloworld-nginx-5d99f88767-cwcmd
|
||||
kubectl logs -n istio-system services/istio-ingressgateway
|
||||
```
|
||||
```txt
|
||||
SERVICE FQDN PORT SUBSET DIRECTION TYPE DESTINATION RULE
|
||||
80 - inbound ORIGINAL_DST
|
||||
BlackHoleCluster - - - STATIC
|
||||
InboundPassthroughClusterIpv4 - - - ORIGINAL_DST
|
||||
PassthroughCluster - - - ORIGINAL_DST
|
||||
agent - - - STATIC
|
||||
byeworld.foo.svc.cluster.local 9090 - outbound EDS
|
||||
grafana.istio-system.svc.cluster.local 3000 - outbound EDS
|
||||
helloworld.default.svc.cluster.local 8080 - outbound EDS
|
||||
istio-ingressgateway.istio-system.svc.cluster.local 80 - outbound EDS
|
||||
istio-ingressgateway.istio-system.svc.cluster.local 443 - outbound EDS
|
||||
istio-ingressgateway.istio-system.svc.cluster.local 15021 - outbound EDS
|
||||
istiod.istio-system.svc.cluster.local 443 - outbound EDS
|
||||
istiod.istio-system.svc.cluster.local 15010 - outbound EDS
|
||||
istiod.istio-system.svc.cluster.local 15012 - outbound EDS
|
||||
istiod.istio-system.svc.cluster.local 15014 - outbound EDS
|
||||
jaeger-collector.istio-system.svc.cluster.local 9411 - outbound EDS
|
||||
jaeger-collector.istio-system.svc.cluster.local 14250 - outbound EDS
|
||||
jaeger-collector.istio-system.svc.cluster.local 14268 - outbound EDS
|
||||
kiali.istio-system.svc.cluster.local 9090 - outbound EDS
|
||||
kiali.istio-system.svc.cluster.local 20001 - outbound EDS
|
||||
kube-dns.kube-system.svc.cluster.local 53 - outbound EDS
|
||||
kube-dns.kube-system.svc.cluster.local 9153 - outbound EDS
|
||||
kubernetes.default.svc.cluster.local 443 - outbound EDS
|
||||
myistio-ingressgateway.istio-ingress.svc.cluster.local 80 - outbound EDS
|
||||
myistio-ingressgateway.istio-ingress.svc.cluster.local 443 - outbound EDS
|
||||
myistio-ingressgateway.istio-ingress.svc.cluster.local 15021 - outbound EDS
|
||||
prometheus.istio-system.svc.cluster.local 9090 - outbound EDS
|
||||
prometheus_stats - - - STATIC
|
||||
sds-grpc - - - STATIC
|
||||
tracing.istio-system.svc.cluster.local 80 - outbound EDS
|
||||
tracing.istio-system.svc.cluster.local 16685 - outbound EDS
|
||||
xds-grpc - - - STATIC
|
||||
zipkin - - - STRICT_DNS
|
||||
zipkin.istio-system.svc.cluster.local 9411 - outbound EDS
|
||||
#### Invalid TLS context has neither subject CN nor SAN names
|
||||
|
||||
ADDRESS PORT MATCH DESTINATION
|
||||
10.96.0.10 53 ALL Cluster: outbound|53||kube-dns.kube-system.svc.cluster.local
|
||||
0.0.0.0 80 Trans: raw_buffer; App: http/1.1,h2c Route: 80
|
||||
0.0.0.0 80 ALL PassthroughCluster
|
||||
10.102.38.206 443 ALL Cluster: outbound|443||myistio-ingressgateway.istio-ingress.svc.cluster.local
|
||||
10.109.184.232 443 ALL Cluster: outbound|443||istiod.istio-system.svc.cluster.local
|
||||
10.96.0.1 443 ALL Cluster: outbound|443||kubernetes.default.svc.cluster.local
|
||||
10.96.248.46 443 ALL Cluster: outbound|443||istio-ingressgateway.istio-system.svc.cluster.local
|
||||
10.98.124.246 3000 Trans: raw_buffer; App: http/1.1,h2c Route: grafana.istio-system.svc.cluster.local:3000
|
||||
10.98.124.246 3000 ALL Cluster: outbound|3000||grafana.istio-system.svc.cluster.local
|
||||
0.0.0.0 8080 Trans: raw_buffer; App: http/1.1,h2c Route: 8080
|
||||
0.0.0.0 8080 ALL PassthroughCluster
|
||||
0.0.0.0 9090 Trans: raw_buffer; App: http/1.1,h2c Route: 9090
|
||||
0.0.0.0 9090 ALL PassthroughCluster
|
||||
10.96.0.10 9153 Trans: raw_buffer; App: http/1.1,h2c Route: kube-dns.kube-system.svc.cluster.local:9153
|
||||
10.96.0.10 9153 ALL Cluster: outbound|9153||kube-dns.kube-system.svc.cluster.local
|
||||
0.0.0.0 9411 Trans: raw_buffer; App: http/1.1,h2c Route: 9411
|
||||
0.0.0.0 9411 ALL PassthroughCluster
|
||||
10.100.204.154 14250 Trans: raw_buffer; App: http/1.1,h2c Route: jaeger-collector.istio-system.svc.cluster.local:14250
|
||||
10.100.204.154 14250 ALL Cluster: outbound|14250||jaeger-collector.istio-system.svc.cluster.local
|
||||
10.100.204.154 14268 Trans: raw_buffer; App: http/1.1,h2c Route: jaeger-collector.istio-system.svc.cluster.local:14268
|
||||
10.100.204.154 14268 ALL Cluster: outbound|14268||jaeger-collector.istio-system.svc.cluster.local
|
||||
0.0.0.0 15001 ALL PassthroughCluster
|
||||
0.0.0.0 15001 Addr: *:15001 Non-HTTP/Non-TCP
|
||||
0.0.0.0 15006 Addr: *:15006 Non-HTTP/Non-TCP
|
||||
0.0.0.0 15006 Trans: tls; App: istio-http/1.0,istio-http/1.1,istio-h2; Addr: 0.0.0.0/0 InboundPassthroughClusterIpv4
|
||||
0.0.0.0 15006 Trans: tls; Addr: 0.0.0.0/0 InboundPassthroughClusterIpv4
|
||||
0.0.0.0 15006 Trans: tls; Addr: *:80 Cluster: inbound|80||
|
||||
0.0.0.0 15010 Trans: raw_buffer; App: http/1.1,h2c Route: 15010
|
||||
0.0.0.0 15010 ALL PassthroughCluster
|
||||
10.109.184.232 15012 ALL Cluster: outbound|15012||istiod.istio-system.svc.cluster.local
|
||||
0.0.0.0 15014 Trans: raw_buffer; App: http/1.1,h2c Route: 15014
|
||||
0.0.0.0 15014 ALL PassthroughCluster
|
||||
0.0.0.0 15021 ALL Inline Route: /healthz/ready*
|
||||
10.102.38.206 15021 Trans: raw_buffer; App: http/1.1,h2c Route: myistio-ingressgateway.istio-ingress.svc.cluster.local:15021
|
||||
10.102.38.206 15021 ALL Cluster: outbound|15021||myistio-ingressgateway.istio-ingress.svc.cluster.local
|
||||
10.96.248.46 15021 Trans: raw_buffer; App: http/1.1,h2c Route: istio-ingressgateway.istio-system.svc.cluster.local:15021
|
||||
10.96.248.46 15021 ALL Cluster: outbound|15021||istio-ingressgateway.istio-system.svc.cluster.local
|
||||
0.0.0.0 15090 ALL Inline Route: /stats/prometheus*
|
||||
0.0.0.0 16685 Trans: raw_buffer; App: http/1.1,h2c Route: 16685
|
||||
0.0.0.0 16685 ALL PassthroughCluster
|
||||
0.0.0.0 20001 Trans: raw_buffer; App: http/1.1,h2c Route: 20001
|
||||
0.0.0.0 20001 ALL PassthroughCluster
|
||||
The TLS certificate specified don't have the field CN or the field SAN.
|
||||
|
||||
NAME DOMAINS MATCH VIRTUAL SERVICE
|
||||
myistio-ingressgateway.istio-ingress.svc.cluster.local:15021 * /*
|
||||
8080 helloworld, helloworld.default + 1 more... /*
|
||||
kube-dns.kube-system.svc.cluster.local:9153 * /*
|
||||
80 istio-ingressgateway.istio-system, 10.96.248.46 /*
|
||||
80 myistio-ingressgateway.istio-ingress, 10.102.38.206 /*
|
||||
80 tracing.istio-system, 10.103.51.183 /*
|
||||
jaeger-collector.istio-system.svc.cluster.local:14250 * /*
|
||||
grafana.istio-system.svc.cluster.local:3000 * /*
|
||||
istio-ingressgateway.istio-system.svc.cluster.local:15021 * /*
|
||||
* /stats/prometheus*
|
||||
InboundPassthroughClusterIpv4 * /*
|
||||
* /healthz/ready*
|
||||
inbound|80|| * /*
|
||||
jaeger-collector.istio-system.svc.cluster.local:14268 * /*
|
||||
9090 byeworld.foo, 10.103.187.190 /*
|
||||
9090 kiali.istio-system, 10.104.141.120 /*
|
||||
9090 prometheus.istio-system, 10.107.129.0 /*
|
||||
9411 jaeger-collector.istio-system, 10.100.204.154 /*
|
||||
9411 zipkin.istio-system, 10.104.238.43 /*
|
||||
15010 istiod.istio-system, 10.109.184.232 /*
|
||||
15014 istiod.istio-system, 10.109.184.232 /*
|
||||
16685 tracing.istio-system, 10.103.51.183 /*
|
||||
20001 kiali.istio-system, 10.104.141.120 /*
|
||||
To address this issue, issue a new certificate that has at least one of those fields.
|
||||
|
||||
RESOURCE NAME TYPE STATUS VALID CERT SERIAL NUMBER NOT AFTER NOT BEFORE
|
||||
default Cert Chain ACTIVE true 224526398421470636195992462181330755939 2023-04-23T23:57:50Z 2023-04-22T23:55:50Z
|
||||
ROOTCA CA ACTIVE true 3144612513681150263454419199256531619 2033-04-17T19:15:16Z 2023-04-20T19:15:16Z
|
||||
#### initial fetch timed out for type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.Secretthread
|
||||
|
||||
This is due not being able to retrieve the TLS configuration assigned to the gateway.
|
||||
|
||||
It's Important that the secret is located in the same namespace as the Istio Load Balancer used. In my case is the `istio-system`, but it will vary based on the environment.
|
||||
|
||||
# Istioctl proxy-config
|
||||
|
||||
## Check listeners
|
||||
|
||||
Useful to review which is the configuration assigned to an Istio ingress. / Confirm if the configuration we are intending to deploy is being applied / learned.
|
||||
|
||||
### Get Istio ingress pod name
|
||||
|
||||
> **Note:**\
|
||||
> Depending on the ingress gateway set, and your environment, it could be that the Load Balancer is not located in the namespace `istio-system`.
|
||||
|
||||
```shell
|
||||
kubectl get pods -n istio-system
|
||||
```
|
||||
|
||||
```text
|
||||
NAME READY STATUS RESTARTS AGE
|
||||
grafana-6cb5b7fbb8-2nlp6 1/1 Running 0 2d3h
|
||||
istio-ingressgateway-864db96c47-nvjc7 1/1 Running 0 20h
|
||||
istiod-649d466b9-bwx7j 1/1 Running 0 2d8h
|
||||
jaeger-cc4688b98-h52xt 1/1 Running 0 2d3h
|
||||
kiali-594965b98c-zc67p 1/1 Running 0 2d3h
|
||||
prometheus-67f6764db9-szd5b 2/2 Running 0 2d3h
|
||||
|
||||
```
|
||||
|
||||
### List listeners
|
||||
|
||||
```shell
|
||||
kubectl get pods -n istio-system istio-ingressgateway-864db96c47-nvjc7
|
||||
```
|
||||
|
||||
```text
|
||||
istioctl proxy-config listeners -n istio-system istio-ingressgateway-864db96c47-nvjc7
|
||||
ADDRESS PORT MATCH DESTINATION
|
||||
0.0.0.0 8443 SNI: lb.net Route: https.443.secure-http.helloworld-gateway.default
|
||||
0.0.0.0 15021 ALL Inline Route: /healthz/ready*
|
||||
0.0.0.0 15090 ALL Inline Route: /stats/prometheus*
|
||||
```
|
||||
|
||||
This makes reference to the configuration set in the gateway resources.
|
||||
Here we can notice a route with SNI match "lb.net", which is listening to the port 443 and HTTPS protocol.
|
||||
|
||||
## Check logs verbosity level settings
|
||||
|
||||
`istioctl proxy-config log` will display the verbosity level set from each log type for the specified pod.
|
||||
|
||||
```shell
|
||||
istioctl proxy-config log helloworld-nginx-5d99f88767-cwcmd
|
||||
@ -153,53 +138,22 @@ active loggers:
|
||||
client: warning
|
||||
config: warning
|
||||
connection: warning
|
||||
conn_handler: warning
|
||||
decompression: warning
|
||||
dns: warning
|
||||
dubbo: warning
|
||||
envoy_bug: warning
|
||||
ext_authz: warning
|
||||
ext_proc: warning
|
||||
rocketmq: warning
|
||||
file: warning
|
||||
filter: warning
|
||||
forward_proxy: warning
|
||||
grpc: warning
|
||||
happy_eyeballs: warning
|
||||
hc: warning
|
||||
health_checker: warning
|
||||
http: warning
|
||||
http2: warning
|
||||
hystrix: warning
|
||||
init: warning
|
||||
io: warning
|
||||
jwt: warning
|
||||
kafka: warning
|
||||
key_value_store: warning
|
||||
lua: warning
|
||||
main: warning
|
||||
matcher: warning
|
||||
misc: error
|
||||
mongo: warning
|
||||
multi_connection: warning
|
||||
oauth2: warning
|
||||
quic: warning
|
||||
quic_stream: warning
|
||||
pool: warning
|
||||
rate_limit_quota: warning
|
||||
rbac: warning
|
||||
rds: warning
|
||||
redis: warning
|
||||
router: warning
|
||||
runtime: warning
|
||||
stats: warning
|
||||
secret: warning
|
||||
tap: warning
|
||||
testing: warning
|
||||
thrift: warning
|
||||
tracing: warning
|
||||
upstream: warning
|
||||
udp: warning
|
||||
wasm: warning
|
||||
websocket: warning
|
||||
...
|
||||
```
|
||||
|
||||
## List all
|
||||
|
||||
It displays ALL from the specified pod.
|
||||
|
||||
```shell
|
||||
istioctl proxy-config all helloworld-nginx-5d99f88767-cwcmd
|
||||
```
|
||||
```txt
|
||||
SERVICE FQDN PORT SUBSET DIRECTION TYPE DESTINATION RULE
|
||||
80 - inbound ORIGINAL_DST
|
||||
BlackHoleCluster - - - STATIC
|
||||
InboundPassthroughClusterIpv4 - - - ORIGINAL_DST
|
||||
PassthroughCluster - - - ORIGINAL_DST
|
||||
agent - - - STATIC
|
||||
...
|
||||
```
|
@ -0,0 +1,174 @@
|
||||
# Based on
|
||||
|
||||
- 01-hello_world_1_service_1_deployment
|
||||
|
||||
# Description
|
||||
|
||||
On this example, we generate a TLS configuration, and afterwards we attach such to a `Gateway` resource listening to the port `443` for `HTTPS` traffic.
|
||||
|
||||
> **Note:** \
|
||||
> This was based on the information from the following Istio documentation:
|
||||
> - [Secure Gateways](https://istio.io/latest/docs/tasks/traffic-management/ingress/secure-ingress/)
|
||||
|
||||
# Configuration applied
|
||||
|
||||
```yaml
|
||||
apiVersion: networking.istio.io/v1alpha3
|
||||
kind: Gateway
|
||||
metadata:
|
||||
name: helloworld-gateway
|
||||
spec:
|
||||
selector:
|
||||
istio: ingressgateway
|
||||
servers:
|
||||
- port:
|
||||
number: 443
|
||||
name: secure-http
|
||||
protocol: HTTPS
|
||||
hosts:
|
||||
- "*"
|
||||
tls:
|
||||
mode: SIMPLE
|
||||
credentialName: my-tls-cert-secret
|
||||
```
|
||||
|
||||
- Gateway is listening to the port `443` and `HTTPS` protocol.
|
||||
|
||||
- Allows for all hosts.
|
||||
|
||||
- The TLS configuration is set to simple, and the credentials (the object that contains the certificates/TLS configuration) is set to `my-tls-cert-secret`.
|
||||
|
||||
> **Note:**\
|
||||
> The credentials resource is created further bellow through the [Walkthrough](#Walkthrough) steps.
|
||||
|
||||
> **Note:**\
|
||||
> For more information regarding the TLS mode configuration, refer to the following [Istio documentation regarding the TLS mode field](https://istio.io/latest/docs/reference/config/networking/gateway/#ServerTLSSettings-TLSmode).
|
||||
|
||||
# Walkthrough
|
||||
|
||||
## Generate client and server certificate and key files
|
||||
|
||||
First step will be to generate the certificate and key files to be able to set them to the Gateway resource.
|
||||
|
||||
### Create a folder to store files.
|
||||
|
||||
Create the folder to contain the files that will be generated.
|
||||
|
||||
```shell
|
||||
mkdir certfolder
|
||||
```
|
||||
|
||||
### Create a certificate and a private key.
|
||||
|
||||
```shell
|
||||
openssl req -x509 -sha256 -nodes -days 365 -subj '/O=Internet of things/CN=lb.net' -newkey rsa:2048 -keyout certfolder/istio.cert.key -out certfolder/istio.cert.crt
|
||||
```
|
||||
|
||||
The files generated are the following:
|
||||
|
||||
```yaml
|
||||
private-key: certfolder/istio.cert.key
|
||||
root-certificate: certfolder/istio.cert.crt
|
||||
```
|
||||
|
||||
The information set to the certificate generated is the following:
|
||||
|
||||
```yaml
|
||||
Organization-name: Internet of things
|
||||
CN: lb.net
|
||||
```
|
||||
|
||||
### Create a TLS secret
|
||||
|
||||
At this step we create the tls secret `my-tls-cert-secret` on the namespace `istio-system`.
|
||||
|
||||
```shell
|
||||
kubectl create -n istio-system secret tls my-tls-cert-secret \
|
||||
--key=certfolder/istio.cert.key \
|
||||
--cert=certfolder/istio.cert.crt
|
||||
```
|
||||
```text
|
||||
secret/my-tls-cert-secret created
|
||||
```
|
||||
```text
|
||||
service/helloworld created
|
||||
deployment.apps/helloworld-nginx created
|
||||
gateway.networking.istio.io/helloworld-gateway created
|
||||
virtualservice.networking.istio.io/helloworld-vs created
|
||||
```
|
||||
|
||||
> **Note:**\
|
||||
> It's Important that the secret is located in the same namespace as the Load Balancer used. In my case is the `istio-system`, but it will vary based on the environment.
|
||||
|
||||
|
||||
## Deploy resources
|
||||
|
||||
```shell
|
||||
kubectl apply -f ./
|
||||
```
|
||||
```text
|
||||
service/helloworld created
|
||||
deployment.apps/helloworld-nginx created
|
||||
gateway.networking.istio.io/helloworld-gateway created
|
||||
virtualservice.networking.istio.io/helloworld-vs created
|
||||
```
|
||||
|
||||
## Test the service
|
||||
|
||||
[//]: # (```shell)
|
||||
[//]: # (curl --insecure --resolve lb.net:443:192.168.1.50 https://lb.net/helloworld)
|
||||
[//]: # (```)
|
||||
|
||||
```shell
|
||||
curl --insecure https://192.168.1.50/helloworld -I
|
||||
```
|
||||
|
||||
```text
|
||||
HTTP/2 200
|
||||
server: istio-envoy
|
||||
date: Sun, 23 Apr 2023 05:06:47 GMT
|
||||
content-type: text/html
|
||||
content-length: 615
|
||||
last-modified: Tue, 28 Mar 2023 15:01:54 GMT
|
||||
etag: "64230162-267"
|
||||
accept-ranges: bytes
|
||||
x-envoy-upstream-service-time: 96
|
||||
```
|
||||
|
||||
## Cleanup
|
||||
|
||||
```shell
|
||||
kubectl delete -n istio-system secret my-tls-cert-secret
|
||||
```
|
||||
|
||||
```shell
|
||||
kubectl delete -f ./
|
||||
```
|
||||
|
||||
```shell
|
||||
rm -rv certfolder/
|
||||
```
|
||||
|
||||
# Troubleshooting.
|
||||
|
||||
## curl: (7) Failed to connect to 192.168.1.51 port 443 after 2 ms: Couldn't connect to server
|
||||
|
||||
- Ensure that the gateway is listening to the right port, in this case, the port 443.
|
||||
|
||||
- Refer to the troubleshooting documentation, specifically the `Logs>Ingress`. \
|
||||
Check if it displays any log activity that could facilitate the troubleshooting / investigation.
|
||||
|
||||
## curl: (35) Recv failure: Connection reset by peer
|
||||
|
||||
- Refer to the troubleshooting documentation, specifically the `Logs>Ingress`. \
|
||||
Check if it displays any log activity that could facilitate the troubleshooting / investigation.
|
||||
|
||||
## 404
|
||||
|
||||
Ensure the URL used to thest the connectivity, matches the host and path rules applied, both in the `Gateway` and `VirtualService` resources.
|
||||
|
||||
# Links of Interest
|
||||
|
||||
- https://istio.io/latest/docs/tasks/traffic-management/ingress/secure-ingress
|
||||
|
||||
- https://istio.io/latest/docs/reference/config/networking/gateway/#ServerTLSSettings-TLSmode
|
39
Istio/02-Traffic_management/07-HTTPS-Gateway-Simple-TLS/deployment.yaml
Executable file
39
Istio/02-Traffic_management/07-HTTPS-Gateway-Simple-TLS/deployment.yaml
Executable file
@ -0,0 +1,39 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: helloworld
|
||||
labels:
|
||||
app: helloworld
|
||||
service: helloworld
|
||||
spec:
|
||||
ports:
|
||||
- port: 80
|
||||
name: http
|
||||
selector:
|
||||
app: helloworld
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: helloworld-nginx
|
||||
labels:
|
||||
app: helloworld
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: helloworld
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: helloworld
|
||||
spec:
|
||||
containers:
|
||||
- name: helloworld
|
||||
image: nginx
|
||||
resources:
|
||||
requests:
|
||||
cpu: "100m"
|
||||
imagePullPolicy: IfNotPresent #Always
|
||||
ports:
|
||||
- containerPort: 80
|
38
Istio/02-Traffic_management/07-HTTPS-Gateway-Simple-TLS/gateway.yaml
Executable file
38
Istio/02-Traffic_management/07-HTTPS-Gateway-Simple-TLS/gateway.yaml
Executable file
@ -0,0 +1,38 @@
|
||||
apiVersion: networking.istio.io/v1alpha3
|
||||
kind: Gateway
|
||||
metadata:
|
||||
name: helloworld-gateway
|
||||
spec:
|
||||
selector:
|
||||
istio: ingressgateway
|
||||
servers:
|
||||
- port:
|
||||
number: 443
|
||||
name: secure-http
|
||||
protocol: HTTPS
|
||||
hosts:
|
||||
- "*"
|
||||
tls:
|
||||
mode: SIMPLE
|
||||
credentialName: my-tls-cert-secret
|
||||
---
|
||||
apiVersion: networking.istio.io/v1alpha3
|
||||
kind: VirtualService
|
||||
metadata:
|
||||
name: helloworld-vs
|
||||
spec:
|
||||
hosts:
|
||||
- "*"
|
||||
gateways:
|
||||
- helloworld-gateway
|
||||
http:
|
||||
- match:
|
||||
- uri:
|
||||
exact: /helloworld
|
||||
route:
|
||||
- destination:
|
||||
host: helloworld
|
||||
port:
|
||||
number: 80
|
||||
rewrite:
|
||||
uri: "/"
|
@ -9,21 +9,3 @@ ALL NEEDS DOCUMENTATION
|
||||
- 05a-FaultInjection-delay
|
||||
- 05b-FaultInjection-abort
|
||||
- 06-mTLS (would need some documentation review, mainly go over the differences respective to the template/prior configuration used)
|
||||
|
||||
|
||||
# TODO
|
||||
|
||||
|
||||
|
||||
minimum TLS version:
|
||||
https://istio.io/latest/docs/tasks/security/tls-configuration/workload-min-tls-version/
|
||||
|
||||
|
||||
Should try to do a double Virtual Service chain
|
||||
|
||||
https://academy.tetrate.io/courses/take/istio-fundamentals/lessons/19068816-lab-2-observing-failure-injection
|
||||
|
||||
|
||||
Circuit breaking
|
||||
|
||||
https://istio.io/latest/docs/tasks/traffic-management/circuit-breaking/
|
@ -1,4 +1,9 @@
|
||||
|
||||
|
||||
|
||||
|
||||
# Stuff
|
||||
|
||||
## Glossary
|
||||
|
||||
https://istio.io/latest/docs/reference/glossary/
|
||||
@ -19,33 +24,11 @@ https://istio.io/latest/docs/ops/deployment/vm-architecture/
|
||||
https://kubebyexample.com/learning-paths/istio/intro
|
||||
|
||||
|
||||
# Notes for myself
|
||||
|
||||
|
||||
My current issues:
|
||||
|
||||
- Understanding authentication
|
||||
|
||||
|
||||
https://tetrate.io/blog/istio-how-to-enforce-egress-traffic-using-istios-authorization-policies/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Multiple Ingress
|
||||
|
||||
https://youtu.be/QIkryA8HnQ0
|
||||
|
||||
|
||||
|
||||
https://github.com/redkubes/otomi-core/blob/main/charts/team-ns/templates/istio-gateway.yaml
|
||||
Internal and external authentication should be set together.
|
||||
|
||||
|
||||
https://istio.io/latest/docs/ops/diagnostic-tools/proxy-cmd/
|
||||
|
||||
|
||||
|
||||
Using service accounts
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user