我正在尝试在Azure Kubernetes Service中重新创建SmartHotel360演示,但是入口控制器似乎无法正常工作。
工作示例如下所示(将酒店服务重定向到/ hotels-api):http://sh360production.2c3abf6edd44497688b2.westus.aksapp.io/hotels-api/
但是,当我部署我的网站时,它会将/ hotels-api重定向到空白网页,这就是我怀疑Ingress Controller中出现问题的方式。 http://23.96.16.121/hotels-api。
从我正在阅读的有关入口控制器的文档中,我使用kubectl apply -f ingress.yaml
部署了该服务。我可以在K8s UI的“入口”页面中看到所有服务都具有相同的外部IP地址,并且入口服务位于“服务”下,但是我什么也看不到。我使用helm部署了所有后端服务,并且它们似乎也显示在UI中。
ingress.yaml文件如下:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
labels:
app: sh360
component: frontend
name: sh360-ingress
annotations:
kubernetes.io/ingress.class: addon-http-application-routing
ingress.kubernetes.io/ssl-redirect: "false"
nginx.ingress.kubernetes.io/ssl-redirect: "false"
spec:
rules:
- host: swsmarthotel360-409bbcc0.hcp.eastus.azmk8s.io
http:
paths:
- path: /hotels-api
backend:
serviceName: helm-test2-hotels-sh360-hotels
servicePort: 80
- path: /bookings-api
backend:
serviceName: bookings
servicePort: 80
- path: /suggestions-api
backend:
serviceName: suggestions
servicePort: 80
由于我是AKS和Kubernetes的新手,所以ingress.yaml文件中缺少某些内容可以重定向到服务吗?
(完整引用:https://github.com/Microsoft/SmartHotel360-AKS-DevSpaces-Demo)
答案 0 :(得分:1)
再次阅读您的问题: -主机:swsmarthotel360-409bbcc0.hcp.eastus.azmk8s.io http: 路径: -路径:/ hotels-api
所以您的入口可能工作正常。我相信您的http://23.96.16.121/hotels-api测试方法是问题所在。
我想您要做的是编辑主机文件,使其具有类似以下内容的条目: swsmarthotel360-409bbcc0.hcp.eastus.azmk8s.io 23.96.16.121
然后,当您转到 swsmarthotel360-409bbcc0.hcp.eastus.azmk8s.io/hotels-api 它将进入您的集群。
只能通过L7地址访问入口。 如果该主机文件黑客有效,那么您只需要修改DNS即可使其不受主机文件t-shoot黑客的攻击。</ p>
=================================
(原始答案)
我还使用AKS(Azure的Kbuernetes即服务) 答案取决于您在部署集群时指定的选项。
有一个标志启用RBAC是或否(我的YAML中看不到RBAC语句) 还有一个[HTTP应用程序路由yes或no]标志。 (默认情况下处于启用状态,但是我们将其关闭,因此我们可以使用自己的DNS和自己的Ingress)
无论如何,我希望这会为您指明正确的方向:
我建议您创建一个测试集群以了解更多有关该测试集群的信息:
1。)指定启用RBAC和关闭HTTP路由
2。)转到此处https://kubernetes.github.io/ingress-nginx/deploy/ 应用强制命令和cloud通用入口控制器命令。
云通用入口控制器将 在Azure中生成L4负载平衡器VM,将其自动映射到nodeports服务,由于上面提到的kubectl apply命令,可将其转发到群集中存在的L7 Nginx LB服务。 L7 Nginx Service的Pod由入口控制器Pod控制,并使用入口对象进行管理/配置。
要进行测试,您可以查找L4 LB的IP地址(kubectl get svc --all-namespaces -o wide)应该显示您的IP。您的入口规则之一可能是mywebsite.com/homepage。 因此,要进行测试,您可以使用以下条目编辑主机文件 mywebsite.com