找到 Nginx 入口主机 404 ip
Nginx ingress host 404 ip found
我是 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:
字段告诉它要路由哪个主机 header,因此它应该是 public 主机名。此外,它应该与提供进一步路由说明的 http:
字段位于同一部分。您也不需要重写目标注释,因为不需要重写。
我是 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:
字段告诉它要路由哪个主机 header,因此它应该是 public 主机名。此外,它应该与提供进一步路由说明的 http:
字段位于同一部分。您也不需要重写目标注释,因为不需要重写。