Thi*_*ova 15 kubernetes kubernetes-ingress
因此,我有一个入口控制器将流量路由到三个不同的服务,但只有一个正在工作,所有其他服务都返回 503。INGRESS YAML
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: test-ingress
namespace: dev
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/backend-protocol: "HTTP"
spec:
rules:
- host: localhost
http:
paths:
- path: /equip
backend:
serviceName: web-equip-svc-2
servicePort: 18001
- path: /hello
backend:
serviceName: hello-service
servicePort: 80
- path: /equip-ws
backend:
serviceName: web-equip-svc-2
servicePort: 18000
Run Code Online (Sandbox Code Playgroud)
工作 SVC YAML
apiVersion: v1
kind: Service
metadata:
name: hello-service
namespace: linkerd-test
labels:
app: hello
spec:
type: ClusterIP
selector:
app: hello
ports:
- port: 80
targetPort: 8080
protocol: TCP
Run Code Online (Sandbox Code Playgroud)
无法使用 SVC YAML
---
apiVersion: v1
kind: Service
metadata:
name: web-equip-svc-2
namespace: dev
labels:
app: equipment-service
spec:
type: ClusterIP
selector:
app: equipment-service
ports:
- name: "http"
port: 18001
targetPort: 8080
protocol: TCP
- name: "websocket"
port: 18000
targetPort: 8080
protocol: TCP
Run Code Online (Sandbox Code Playgroud)
所以,我已经尝试更改入口的注释,将 svc 从 clusterIP 更改为 loadBalancer...但没有任何效果,欢迎任何帮助
Sho*_*gan 10
如果可以的话,您应该将服务保留为 ClusterIP。入口控制器的目的是为集群提供一个集中入口。
首先要尝试的事情
首先独立测试您的服务。(两个不工作)。执行到另一个正在运行的 pod,然后执行以下操作:
curl http://web-equip-svc-2:18001
看看您是否收到直接返回到服务的响应,而不是通过您的入口。如果工作正常,那么您就知道您的入口规则配置和/或控制器存在问题。
如果它不起作用,那么您就知道它只是您的实际容器/pod 正在运行这两个服务,您可以先关注那里并解决问题。
第二件事要尝试
简化您的入口规则。删除 的路径作为/equip-ws
开始,只保留/hello
和 的路径/equip
。
- path: /equip-ws
backend:
serviceName: web-equip-svc-2
servicePort: 18000
Run Code Online (Sandbox Code Playgroud)
然后使用更改的简化入口规则再次http://localhost/hello
进行测试。http://localhost/equip
如果这有效,那么您就知道入口规则中的两个装备路径导致了问题,您可以在那里解决冲突/问题。
use*_*596 10
对我来说,我在另一个命名空间中对同一主机有另一个入口(我忘记了)
kubectl get ingress --all-namespaces | grep <HOST>
Run Code Online (Sandbox Code Playgroud)
帮我找到了它。
归档时间: |
|
查看次数: |
37353 次 |
最近记录: |