我是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
我在做什么错? 谢谢
答案 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(/|$)(.*)