Am încercat să implementez un exemplu de aplicație nginx și funcționează.
Deci, am înlocuit același lucru cu un alt nodejs, deoarece acesta conține mai multe subpagini. Deci, pot testa rutarea.
Aici, cu tipul prestabilit de serviciu LoadBalancer, pagina se încarcă ca mai jos.
Dar, cu gateway-ul istio, arată doar o pagină goală.
Vă rugăm să sugerați cum să remediați asta?
Poarta mea de acces:
apiVersion: networking.istio.io/v1alpha3
fel: Gateway
metadate:
nume: sampleserver-gateway
specificație:
selector:
istio: ingressgateway # folosește controlerul implicit istio
servere:
- port:
număr: 80
nume: http
protocol: HTTP
gazde:
- "*"
Serviciul meu virtual:
apiVersion: networking.istio.io/v1alpha3
fel: VirtualService
metadate:
nume: nginxserver
specificație:
gazde:
- "*"
gateway-uri:
- sampleserver-gateway
http:
- Meci:
-uri:
exact: /
traseu:
- destinatie:
gazdă: nginx-service
port:
număr: 8080
Fișierul meu de implementare și service:
apiVersion: v1
fel: Serviciu
metadate:
nume: nginx-service
etichete:
aplicație: nginx
serviciu: nginx
specificație:
selector:
aplicație: nginx
porturi:
- nume: http
port: 8080
targetPort: 3000 #80
---
apiVersion: v1
fel: ServiceAccount
metadate:
nume: nginx-details
etichete:
cont: nginx
---
apiVersion: apps/v1
fel: Desfăşurare
metadate:
nume: nginx-deployment
etichete:
aplicație: nginx
versiunea: v1
specificație:
replici: 1
selector:
matchLabels:
aplicație: nginx
versiunea: v1
șablon:
metadate:
etichete:
aplicație: nginx
versiunea: v1
specificație:
serviceAccountName: detalii nginx
containere:
- nume: nginx
imagine: uday1kiran/getting-started:1.0 #nginx
imagePullPolicy: IfNotPresent
porturi:
- containerPort: 3000 #80
nume: nginx-port
#securityContext:
#runAsUser: 1000
Pentru gateway, am setat serviciul kubernetes implicit ca ClusterIP.
Dar, așa cum nu se arată, în scopul testării, l-am schimbat în LoadBalancer pentru a verifica orice problemă cu aplicația, dar prin serviciul normal LoadBalancer se încarcă, dar nu cu gateway-ul de intrare istio.
Exemplul de aplicație este o imagine publică, puteți testa direct
The sursă codul aplicației se află în folderul aplicației din repo