mki*_*kim 6 kubernetes kubernetes-ingress
我已经设置了两个简单的 kubernetes 服务和部署 - 前端和 api。前端从 api 获取数据,所以我也公开了 api,这样我就可以在前端数据获取调用中对后端入口 URL 进行硬编码(如果有人知道在集群内部执行此操作的更好方法,请告诉我)。
我正在尝试为不同的服务设置不同的主机名,但由于某种原因,只有一个主机名在工作。
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: test-webapp-ingress
annotations:
ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: test-webapp-frontend.com
http:
paths:
- path: /
backend:
serviceName: test-webapp-frontend-lb
servicePort: 8002
- host: test-webapp-api.com
http:
paths:
- path: /get
backend:
serviceName: test-webapp-api-lb
servicePort: 8001
Run Code Online (Sandbox Code Playgroud)
这就是我跑步后得到的 kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 2d
test-webapp-api-lb LoadBalancer 10.107.60.163 <pending> 8001:30886/TCP 1h
test-webapp-frontend-lb LoadBalancer 10.104.100.108 <pending> 8002:31431/TCP 1h
Run Code Online (Sandbox Code Playgroud)
我在本地使用 minikube 来运行这个集群。我可以通过运行minikube service test-webapp-frontend-lb和访问前端和api minikube service test-webapp-api-lb。
当我去时test-webapp-frontend.com,我可以看到前端页面,但我无法访问test-webapp-api.com. 甚至没有默认的未找到错误,我只是无法访问它,就好像 URL 不存在一样。
奇怪的是,如果我这样做,
spec:
rules:
- host: test-webapp-frontend.com
http:
paths:
- path: /
backend:
serviceName: test-webapp-frontend-lb
servicePort: 8002
- host: test-another-frontend.com
http:
paths:
- path: /
backend:
serviceName: test-webapp-frontend-lb
servicePort: 8002
Run Code Online (Sandbox Code Playgroud)
我仍然可以访问test-webapp-frontend.com但test-another-frontend.com有同样的问题,根本无法访问它。
我究竟做错了什么??
| 归档时间: |
|
| 查看次数: |
22023 次 |
| 最近记录: |