我是一个k8s新手,我正在尝试将集群中的一个端口暴露到本地网络中。我试着用metallb config layer2 +负载均衡器控制器来做这件事,结果运行正常。
我已经设置了一个3节点的环境,使用的是kubespray。((192.168.0.15,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我做错了什么?谢谢
发布于 2020-11-05 20:49:47
尝试在Nginx配置ingress smouapimapes中添加以下内容。添加注释:
nginx.ingress.kubernetes.io/rewrite-target: /$2添加path: /test(/|$)(.*)而不是这个path: /test
发布于 2020-11-05 16:42:50
在这里,您需要将域名k8s.nexusgeografics.com配置为提供nginx-ingress服务的ip,这样您就可以通过nginx-ingress访问您的服务了。
https://stackoverflow.com/questions/64693323
复制相似问题