Я нашел ответ, но не совсем уверен, почему так. Я следовал за документацией с некоторыми изменениями.
Сначала я отредактировал istio-autogenerated-k8s-ingress
с помощью команды kubectl -n istio-system edit gateway
.
Я удалил всю часть HTTPS
и оставил там часть HTTP
.
Затем я создал еще один Gateway
что-то вроде:
cat <<EOF | kubectl apply -f -
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: bookinfo-gateway
spec:
selector:
istio: ingressgateway
servers:
- hosts:
- 'example.com'
port:
name: http
number: 80
protocol: HTTP2
tls:
httpsRedirect: true
- hosts:
- 'example.com'
port:
name: https-default
number: 443
protocol: HTTPS
tls:
credentialName: ingress-cert-staging
mode: SIMPLE
privateKey: sds
serverCertificate: sds
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: bookinfo
spec:
hosts:
- "example.com"
gateways:
- bookinfo-gateway
http:
- match:
- uri:
exact: /productpage
- uri:
exact: /login
- uri:
exact: /logout
- uri:
prefix: /api/v1/products
route:
- destination:
host: productpage
port:
number: 9080
EOF
С помощью этого сертификата-менеджера выдан мой сертификат (я думаю, по istio-autogenerated-k8s-ingress
Шлюз !! не знаю !!), и я могу создать несколько Шлюзов и Виртуальных Сервисов, как в примере выше. Так что все работает хорошо! Это всего лишь моя идея, а делать вслепую - неправильно. Пожалуйста, если у вас есть лучший ответ, и вы знаете, почему все происходит так, как я объяснил, дайте мне знать.
Спасибо!