如何解决发现 Nginx 入口主机 404 ip
我是 Kubernetes 的初学者。我尝试从 helm 部署 Prometheus,现在我需要在内部网络中设置 Ingress。
我在通过主机名解析 Prometheus 时遇到问题。如果我使用 IP 地址,我就可以正常工作,但是当我使用语法“主机”时,它会出现 404 错误。我不知道为什么没有通过主机名解析。我使用 kubespray 来部署 Kubernetes。
你能帮我吗?
入口
---
apiVersion: networking.k8s.io/v1
kind: Ingress
Metadata:
name: prometheus-ingress
namespace: monitoring
annotations:
Nginx.ingress.kubernetes.io/rewrite-target: /
spec:
ingressClassName: Nginx
tls:
- hosts:
- prom.tipsport.it
secretName: foo-tls
rules:
- host: prom.cluster.local
- http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: prometheus-kube-prometheus-prometheus
port:
number: 9090
Describe pod
Name: prometheus-ingress
Namespace: monitoring
Address: 10.10.10.3,10.10.10.4,10.10.10.5
Default backend: default-http-backend:80 (<error: endpoints "default-http-backend" not found>)
TLS:
foo-tls terminates prom.tipsport.it
Rules:
Host Path Backends
---- ---- --------
*
/ prometheus-kube-prometheus-prometheus:9090 (10.233.66.116:9090)
Annotations: Nginx.ingress.kubernetes.io/enable-cors: true
Nginx.ingress.kubernetes.io/rewrite-target: /
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
normal Sync 7m36s (x8 over 61m) nginx-ingress-controller Scheduled for sync
normal Sync 7m35s (x8 over 61m) nginx-ingress-controller Scheduled for sync
normal Sync 7m34s (x8 over 61m) nginx-ingress-controller Scheduled for sync
解决方法
你想要的是这个:
rules:
- host: prom.tipsport.it
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: prometheus-kube-prometheus-prometheus
port:
number: 9090
host:
字段告诉它要将哪个 Host 标头路由到哪里,因此它应该是公共主机名。此外,它应该与 http:
字段位于同一部分,提供进一步的路由说明。您也不需要重写目标注释,因为不需要重写。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。