Azure Kubernetes服务(AKS)-使用CORS访问的Http应用程序路由

Azure Kubernetes服务(AKS)-使用CORS访问的Http应用程序路由,cors,kubernetes-ingress,azure-aks,Cors,Kubernetes Ingress,Azure Aks,我最近签署了一份Azure Kubernetes的免费计划。我的问题涉及在Azure Kubernetes服务(AKS)上使用基于入口主机的http应用程序路由配置CORS。我试图找到一个Azure Kubernetes服务(AKS)论坛。这是与我的问题最接近的论坛 我已经为集群启用了http_应用程序_路由加载项。我最初遵循了http应用程序路由的文档。这将成功为我的每个入口主机端点创建DNS区域条目。但是,我希望在入口主机端点之间配置CORS访问。首先,我添加了下面的注释,并将kuberne

我最近签署了一份Azure Kubernetes的免费计划。我的问题涉及在Azure Kubernetes服务(AKS)上使用基于入口主机的http应用程序路由配置CORS。我试图找到一个Azure Kubernetes服务(AKS)论坛。这是与我的问题最接近的论坛

我已经为集群启用了http_应用程序_路由加载项。我最初遵循了http应用程序路由的文档。这将成功为我的每个入口主机端点创建DNS区域条目。但是,我希望在入口主机端点之间配置CORS访问。首先,我添加了下面的注释,并将kubernetes.io/ingres.class注释设置为addon http应用程序路由

nginx.ingress.kubernetes.io/enable-cors:               "true"
nginx.ingress.kubernetes.io/secure-backends:        "true"
nginx.ingress.kubernetes.io/cors-allow-origin:        "https://www.f7e7bb4d71aa4ac3b098.westeurope.aksapp.io"
nginx.ingress.kubernetes.io/cors-allow-credentials: "true"
nginx.ingress.kubernetes.io/cors-allow-headers:     "Authorization, Origin, X-Requested-With, Content-Type, Accept"
nginx.ingress.kubernetes.io/cors-allow-methods:     "DELETE, GET, POST, PUT, OPTIONS, HEAD"
但是,我无法再访问入口端点,也无法创建DNS区域条目。随后,我将nginx入口控制器安装到集群上,并将kubernetes.io/ingres.class注释设置为nginx。然后,我将kubernetes DNS区域配置为具有nginx入口端点的A和TXT记录(请参见下面的清单),以镜像http应用程序路由加载项的行为。然而,这些只持续了很短的时间,然后自动从Kubernetes群集DNS区域中删除

任何人都可以向我介绍以下资源:

  • 使用ingress类加载项http应用程序路由时,为ingress控制器配置CORS
  • 为每个nginx入口主机终结点正确配置DNS区域,以便添加的记录集不会自动删除 问候

    dcs3spp

    ---
    apiVersion:                 extensions/v1beta1
    kind:                       Ingress
    metadata:
      name:                     ingress
          annotations:
          kubernetes.io/ingress.class:                               "nginx"
          nginx.ingress.kubernetes.io/enable-cors:            "true"
          nginx.ingress.kubernetes.io/secure-backends:        "true"
          nginx.ingress.kubernetes.io/cors-allow-origin:     "https://www.f7e7bb4d71aa4ac3b098.westeurope.aksapp.io"
          nginx.ingress.kubernetes.io/cors-allow-credentials: "true"
          nginx.ingress.kubernetes.io/cors-allow-headers:     "Authorization, Origin, X-Requested-With, Content-Type, Accept"
          nginx.ingress.kubernetes.io/cors-allow-methods:     "DELETE, GET, POST, PUT, OPTIONS, HEAD"
    
    spec:
       rules:
       - host:                   www.f7e7bb4d71aa4ac3b098.westeurope.aksapp.io
            http:
               paths:
               - backend:
                    serviceName:      angular-service
                    servicePort:      8080
                 path:               /
       - host:                   auth.f7e7bb4d71aa4ac3b098.westeurope.aksapp.io
             http:
                paths:
                    - backend:
                        serviceName:      auth-server-service
                        servicePort:      4433
                    path:               /
      - host:                   api.f7e7bb4d71aa4ac3b098.westeurope.aksapp.io
            http:
              paths:
              - backend:
                  serviceName:      rest-api-service
                  servicePort:      4444
                path:               /
      - host:                   notify.f7e7bb4d71aa4ac3b098.westeurope.aksapp.io
        http:
            paths:
            - backend:
               serviceName:      file-upload-notification-service
               servicePort:      4446
            path:               /
      tls:
          - secretName:             ingress-tls
          hosts:
          -                     www.f7e7bb4d71aa4ac3b098.westeurope.aksapp.io
          -                     auth.f7e7bb4d71aa4ac3b098.westeurope.aksapp.io
          -                     api.f7e7bb4d71aa4ac3b098.westeurope.aksapp.io
          -                     notify.f7e7bb4d71aa4ac3b098.westeurope.aksapp.io
    
    编辑1:进一步信息 通过进一步阅读,我了解到HTTP应用程序路由加载项使用ExternalDNS+Nginx入口控制器。这就解释了为什么我添加到该区域中用于我自己的Nginx入口控制器的所有记录都被删除了。ExternalDNS从非由其创建的区域中删除记录

    我已成功遵循for one host条目

    经过进一步研究,当从入口规则yaml文件中删除CORS注释时,所有记录都添加到DNS区域

    我创建了一个包含两个yaml规则文件的项目。一个有CORS注释,一个没有

    今天,我将Azure Kubernetes群集的位置从西欧切换到了uksouth,该群集最近已可用

    在第一次部署时,13分钟后,DNS区域中没有创建任何记录。删除入口规则部署并使用CORS注释重新应用后,将在DNS区域中创建所有主机的记录。也许,ExternalDNS配置CORS需要时间,西欧的位置相对于我在英国的位置要慢一些?不确定为什么在首次部署后13分钟后未创建DNS区域项。。。。。将继续监测