【发布时间】:2020-10-24 08:57:34
【问题描述】:
我有一个正常工作的 Nexus 3 pod,可通过端口 30080(使用 NodePort)访问:http://nexus.mydomain:30080/ 在所有主机(来自集群或外部)上都能完美运行。
现在我试图让它在端口 80 上可以访问(原因很明显)。
按照文档,我已经实现了它(微不足道):
[...]
---
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: nexus-ingress
namespace: nexus-ns
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
rules:
- host: nexus.mydomain
http:
paths:
- path: /
pathType: Prefix
backend:
serviceName: nexus-service
servicePort: 80
应用它没有错误。但是当我尝试联系http://nexus.mydomain 时,我得到:
服务不可用
不显示日志(未点击 web 应用)。
我错过了什么?
【问题讨论】:
-
它的本地环境还是云环境?你是如何部署 K3s 的? K3s 的默认入口控制器是
Traefik。您是否使用--no-deploy-traefik部署了 K3s?你是如何部署 Nginx 入口控制器的?由于您使用的是特定于 nginx 入口的注释并且入口控制器多于一个,因此您应该在 Ingress 中指定应该使用哪个入口控制器。 -
“nexus-service”应用在哪个命名空间中?你可以通过 nginx pod 访问nexus-service.<namespace>.svc.cluster.local 吗?或部署在该命名空间中的其他 pod?
-
@PjoterS 感谢您的评论。我不知道 Traefik 是 K3s 上的默认 LB(顺便说一句,是的,它已被部署,因为我没有指定
--no-deploy-traefik)。考虑到这一点,我会努力自己进步。
标签: kubernetes kubernetes-ingress k3s