Istio с соединением mTLS дает 503, но работает между службой mTLS->HTTP
Итак, у меня есть установка, в которой у меня есть Istio IngressGateway с VirtualService, который направляет запросы от HTTPS на порт 80 обычного модуля Nginx, а этот модуль Nginx затем proxy_pass для других служб.
Я включил mTLS везде.
Когда я попытался получить доступ к сервису, которого нет в сетке istio, nginx смог успешно подключиться, и я получил ответ. (Это будет nginx (mTLS) -> otherService (HTTP) и DestinationRule, отключающие tls для этой службы HTTP)
Но когда я пытаюсь получить доступ к другой службе с включенным mTLS (это будет nginx (mTLS) -> otherService (mTLS)), я получаю 503, когда вижу журналы Nginx. Таким образом, запрос поступил из входа в службу nginx, но затем не удалось подключиться к следующему.
Мой шлюз выглядит следующим образом:
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: ingress-gateway
namespace: istio-system
spec:
selector:
istio: ingressgateway # use istio default ingress gateway
servers:
- port:
number: 80
name: http
protocol: HTTP
hosts:
- test.example.com
tls:
httpsRedirect: true # sends 301 redirect for http requests
- port:
number: 443
name: https
protocol: HTTPS
tls:
mode: SIMPLE
serverCertificate: /etc/istio/ingressgateway-certs/tls.crt
privateKey: /etc/istio/ingressgateway-certs/tls.key
hosts:
- test.example.com
И тогда мой VirtualService, соединяющий шлюз с моей службой nginx:
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: ingress-nginx
namespace: gateway
spec:
hosts:
- test.example.com
gateways:
- ingress-gateway.istio-system
http:
- match:
- uri:
prefix: /
route:
- destination:
port:
number: 80
host: nginx.gateway.svc.cluster.local
Я не понимаю, что еще мне не хватает
Также попытался настроить VirtualService из nginx для этого другого сервиса с тем же результатом
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: otherService
namespace: auth
spec:
hosts:
- nginx.gateway.svc.cluster.local
gateways:
- mesh
http:
- match:
- uri:
prefix: /
route:
- destination:
port:
number: 80
host: otherService.auth.svc.cluster.local
0 ответов
Общие советы по отладке сервисной сети Istio:
- Ознакомьтесь с требованиями к службам и модулям.
- Попробуйте выполнить задачу, аналогичную той, которую вы пытаетесь выполнить, из списка задач Istio. Посмотрите, работает ли эта задача, и найдите отличия от своей задачи.
- Следуйте инструкциям в разделе устранения неполадок Istio.