Azure Kubernetes服务(AKS)-使用CORS访问的Http应用程序路由
我最近签署了一份Azure Kubernetes的免费计划。我的问题涉及在Azure Kubernetes服务(AKS)上使用基于入口主机的http应用程序路由配置CORS。我试图找到一个Azure Kubernetes服务(AKS)论坛。这是与我的问题最接近的论坛 我已经为集群启用了http_应用程序_路由加载项。我最初遵循了http应用程序路由的文档。这将成功为我的每个入口主机端点创建DNS区域条目。但是,我希望在入口主机端点之间配置CORS访问。首先,我添加了下面的注释,并将kubernetes.io/ingres.class注释设置为addon 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
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区域中删除
任何人都可以向我介绍以下资源:
---
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区域项。。。。。将继续监测