Kubernetes NGINX入口返回404

时间:2020-11-05 08:07:32

标签: nginx kubernetes

我是k8s新手,我正尝试将端口从群集公开到本地网络。 我已经尝试使用metallb config layer2 +负载平衡器控制器来做到这一点,并且运行正常。

我已经使用kubespray设置了一个3节点环境。 ((192.168.0.1 [5,6,7]))

但是,我正在尝试使用NodePort和NGINX-Ingress公开一个api。 nodeport api服务运行正常(我可以通过NODE_IP:NODE_nodeport发出成功请求)。但是,如果我尝试这种入口配置,它将不断告诉我“连接被拒绝”:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress-api
  annotations:
    nginx.ingress.kubernetes.io/ssl-redirect: "false"
spec:
  rules:
  - host: "k8s.customhostname.com" # solves to 192.168.0.17 which has a running pod with the api.
    http:
      paths:
      - path: /test
        pathType: Prefix
        backend:
          service:
            name: svc-api
            port:
              number: 8080

然后我检查服务:

Name:              svc-smouapimapes
Namespace:         smouapi
Labels:            app=apimapes
Annotations:       <none>
Selector:          app=apimapes
Type:              ClusterIP
IP:                10.233.26.225
Port:              springboot  8080/TCP
TargetPort:        8080/TCP
Endpoints:         10.233.90.4:8080,10.233.92.8:8080
Session Affinity:  None
Events:            <none>

然后检查入口:

Name:             ingress-smouapimapes
Namespace:        smouapi
Address:          192.168.0.17
Default backend:  default-http-backend:80 (<error: endpoints "default-http-backend" not found>)
Rules:
  Host                     Path  Backends
  ----                     ----  --------
  k8s.nexusgeografics.com
                           /test   svc-smouapimapes:8080   10.233.90.4:8080,10.233.92.8:8080)
Annotations:               nginx.ingress.kubernetes.io/ssl-redirect: false
Events:                    <none>

每当我打电话给我

curl -I http://k8s.nexusgeografics.com/test
# CONNECTION REFUSED

我在做什么错? 谢谢

2 个答案:

答案 0 :(得分:0)

Enin,您应该将域k8s.nexusgeografics.com配置为要解析为提供nginx-ingress服务的IP,因此,您可以通过nginx-ingress访问您的服务。

答案 1 :(得分:0)

尝试在Nginx配置ingress-smouapimapes中添加以下内容。 添加注释:

nginx.ingress.kubernetes.io/rewrite-target: /$2

并添加path: /test代替此path: /test(/|$)(.*)