【发布时间】:2021-10-21 21:45:23
【问题描述】:
我运行一个裸机 Kubernetes 集群,并希望将服务映射到 URL 而不是端口(目前我使用的是 NodePort)。
为了实现这一点,我尝试安装 IngressController 以便能够部署包含路由的 Ingress 对象。
我通过 helm 安装了IngressController:
helm install my-ingress helm install my-ingress stable/nginx-ingress
到目前为止,部署工作正常。为了只使用节点的域名,我在nginx-ingress-controller 中启用了hostNetwork: true。
然后,我使用以下定义创建了一个 Ingress 部署:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: minimal-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- http:
paths:
- path: /testpath
pathType: Prefix
backend:
service:
name: my-service
port:
number: 80
这也部署得很好。最后,当我尝试访问http://my-url.com/testpath 时,我得到一个登录提示。我没有在任何地方设置登录凭据,也不打算这样做,因为这些服务应该是公开可用的和/或自己处理身份验证。
如何禁用此行为?我想像使用NodePort 解决方案一样访问这些服务。
【问题讨论】:
-
这种行为不是来自入口。可以对入口进行基本身份验证,但您需要明确配置您没有的。
-
你知道它的来源吗?当我卸载 Helm 部署时它不会发生
-
最有可能来自
my-service。 -
这里有更新吗?
-
事实证明,在我部署 Longhorn 期间已经启动了另一个 Ingress,这也强制对另一个 Ingress 进行基本身份验证。我清理了所有部署,它现在可以工作了:)
标签: nginx kubernetes kubernetes-ingress