Mam wdrożenie Istio jest wstrzykiwany z dostępem do interfejsu API Google Maps Distance Matrix. Jeśli uruchomię istioctl kube-inject z --includeIPRanges 10.0.0.0/8
wydaje się, że działa. Jeśli usunę tę flagę i zastosuję regułę wyjścia, nie będzie działać:
apiVersion: config.istio.io/v1alpha2
kind: EgressRule
metadata:
name: google-egress-rule
namespace: microservices
spec:
destination:
service: "maps.googleapis.com"
ports:
- port: 443
protocol: https
- port: 80
protocol: http
Zarówno wdrożenie, jak i reguła Egress znajdują się w tej samej przestrzeni nazw (mikrousług).
Masz pojęcie, gdzie jest moja wina?
Odpowiedzi:
2 dla odpowiedzi № 1Z tego, co widzę, biegając curl maps.googleapis.com
, przekierowuje do https://developers.google.com/maps/.
Dwa problemy tutaj:
- Podano dodatkową regułę EgressRule dla
developers.google.com
- Obecnie musisz uzyskać dostęp do zewnętrznych stron https, wysyłając żądania HTTP do portu 443, np
curl http://developers.google.com/maps:443
. Serwer proxy Istio otworzy połączenie https zdevelopers.google.com
dla Ciebie. Niestety, obecnie nie ma innego sposobu, z wyjątkiem użycia--includeIPRanges
.