带有 DNS 的 AKS 中的 Istio
Istio in AKS with DNS
我在具有负载均衡器和自定义域的 AKS 集群中部署了来自 Istio 的图书应用程序。这是 gateway.yaml
:
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: bookinfo-gateway
spec:
selector:
istio: ingressgateway # use istio default controller
servers:
- port:
number: 80
name: http
protocol: HTTP
hosts:
- "x.myaks.domain"
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: bookinfo
spec:
hosts:
- "x.myaks.domain"
gateways:
- bookinfo-gateway
http:
- match:
- uri:
exact: /productpage
- uri:
prefix: /static
- uri:
exact: /login
- uri:
exact: /logout
- uri:
prefix: /api/v1/products
route:
- destination:
host: productpage
port:
number: 9080
问题是,当我在浏览器中导航至 x.myaks.domain/productpage
时,出现 DNS 未解析错误。有谁知道如何在域下的 AKS 集群中使用 Istio 公开服务?
做 curl -H "Host: x.myaks.domain" loadbalancerip/productpage
效果很好
更新
我只知道在定义 Ingress 资源时会在 Azure 中创建一个自动 DNS 条目。
- 是否可以将 istio 与 Ingress 资源一起使用?
- 如果不是,如何保护 istio envoy 代理和 nginx 入口控制器之间的数据?
对于入口对象 ExternalDNS 将根据为入口对象指定的主机创建 DNS 记录。
对于服务 ExternalDNS 将查找服务上的注释 external-dns.alpha.kubernetes.io/hostname
并使用相应的值。
我在具有负载均衡器和自定义域的 AKS 集群中部署了来自 Istio 的图书应用程序。这是 gateway.yaml
:
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: bookinfo-gateway
spec:
selector:
istio: ingressgateway # use istio default controller
servers:
- port:
number: 80
name: http
protocol: HTTP
hosts:
- "x.myaks.domain"
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: bookinfo
spec:
hosts:
- "x.myaks.domain"
gateways:
- bookinfo-gateway
http:
- match:
- uri:
exact: /productpage
- uri:
prefix: /static
- uri:
exact: /login
- uri:
exact: /logout
- uri:
prefix: /api/v1/products
route:
- destination:
host: productpage
port:
number: 9080
问题是,当我在浏览器中导航至 x.myaks.domain/productpage
时,出现 DNS 未解析错误。有谁知道如何在域下的 AKS 集群中使用 Istio 公开服务?
做 curl -H "Host: x.myaks.domain" loadbalancerip/productpage
效果很好
更新
我只知道在定义 Ingress 资源时会在 Azure 中创建一个自动 DNS 条目。
- 是否可以将 istio 与 Ingress 资源一起使用?
- 如果不是,如何保护 istio envoy 代理和 nginx 入口控制器之间的数据?
对于入口对象 ExternalDNS 将根据为入口对象指定的主机创建 DNS 记录。
对于服务 ExternalDNS 将查找服务上的注释 external-dns.alpha.kubernetes.io/hostname
并使用相应的值。