使用DNS的AKS中的Istio

时间:2019-07-02 15:20:17

标签: kubernetes istio

我将Istio的book应用程序部署在具有Loadbalancer和自定义域的AKS集群中。这是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条目的信息。

  1. 是否可以将istio与Ingress资源一起使用?
  2. 如果没有,如何在istio envoy代理和nginx入口控制器之间保护数据?

1 个答案:

答案 0 :(得分:1)

对于入口对象 ExternalDNS 将基于为入口对象指定的主机创建DNS记录。

对于服务 ExternalDNS ,它将在服务上查找注释external-dns.alpha.kubernetes.io/hostname,并使用相应的值。