入口主机名不会改变
Ingress hostname wont change
我有一个 Ingress 设置,最初我使用了一个占位符名称,“thesis.info”。现在我想更改此主机名,但每当我更改它时,我最终都会收到 404 错误。
- 将 yaml 中的 spec.tls.rules.host 值更改为新的主机名
- 更改 openssl 用于为 TLS 生成的 crt 和密钥的 CN 值
- 在我的本地机器上编辑值 /etc/hosts 值
我是否遗漏了可能导致问题的步骤。我很困惑为什么它适用于一个值而不适用于另一个值。
下面是入口yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: frontend-ingress
namespace: thesis
annotations:
kubernetes.io/ingress.class: "nginx"
nginx.ingress.kubernetes.io/add-base-url: "true"
nginx.ingress.kubernetes.io/service-upstream: "true"
nginx.ingress.kubernetes.io/ssl-redirect: "false"
spec:
tls:
- hosts:
- thesis
secretName: ingress-tls
rules:
- host: pod1out.ie
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: frontend
port:
number: 3000
---
很可能,您可以在 nginx 日志中找到有关正在发生的事情的提示。如果您有访问权限,您可以使用如下方式访问日志:
kubectl -n <ingress-namespace> get pods
# should be one or more nginx pods
kubectl -n <ingress-namespace> logs <nginx-pod>
不确定这是否是唯一的问题,但根据文档,'tls' 中的主机必须明确匹配规则中的主机:
spec:
tls:
- hosts:
- pod1out.ie
secretName: ingress-tls
rules:
- host: pod1out.ie
在使用 tls 之前,我建议让 http 路由本身工作(例如,通过创建另一个入口资源),如果这适用于您想要的主机,请使用 tls。
我有一个 Ingress 设置,最初我使用了一个占位符名称,“thesis.info”。现在我想更改此主机名,但每当我更改它时,我最终都会收到 404 错误。
- 将 yaml 中的 spec.tls.rules.host 值更改为新的主机名
- 更改 openssl 用于为 TLS 生成的 crt 和密钥的 CN 值
- 在我的本地机器上编辑值 /etc/hosts 值
我是否遗漏了可能导致问题的步骤。我很困惑为什么它适用于一个值而不适用于另一个值。
下面是入口yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: frontend-ingress
namespace: thesis
annotations:
kubernetes.io/ingress.class: "nginx"
nginx.ingress.kubernetes.io/add-base-url: "true"
nginx.ingress.kubernetes.io/service-upstream: "true"
nginx.ingress.kubernetes.io/ssl-redirect: "false"
spec:
tls:
- hosts:
- thesis
secretName: ingress-tls
rules:
- host: pod1out.ie
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: frontend
port:
number: 3000
---
很可能,您可以在 nginx 日志中找到有关正在发生的事情的提示。如果您有访问权限,您可以使用如下方式访问日志:
kubectl -n <ingress-namespace> get pods
# should be one or more nginx pods
kubectl -n <ingress-namespace> logs <nginx-pod>
不确定这是否是唯一的问题,但根据文档,'tls' 中的主机必须明确匹配规则中的主机:
spec:
tls:
- hosts:
- pod1out.ie
secretName: ingress-tls
rules:
- host: pod1out.ie
在使用 tls 之前,我建议让 http 路由本身工作(例如,通过创建另一个入口资源),如果这适用于您想要的主机,请使用 tls。