我在 VMWare Workstation 15 上配置了一个私有 2 节点 Kubernetes 集群。我使用的是 MetalLB 和 Calico。入口服务和入口看起来像:
xxx@c1-cp1:~/Desktop$ kubectl get svc -n ingress-controller-2
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
wsnginx-ingress-nginx-controller LoadBalancer 10.109.117.222 192.168.44.136 80:30167/TCP,443:30680/TCP 24h
wsnginx-ingress-nginx-controller-admission ClusterIP 10.105.103.165 <none> 443/TCP 24h
xxx@c1-cp1:~/Desktop$ kubectl get ing apollo-ingress
NAME CLASS HOSTS ADDRESS PORTS AGE
apollo-ingress wsnginx test.xxx.com 192.168.44.136 80 3h17m
我正在使用 Nat 网络适配器和静态 IPS。我的端口转发配置如下
curl -D- http://192.168.44.136 -H 'Host: test.xxx.com'
从 VM,返回 200 状态,但我无法从主机 Win10 上访问它,127.0.0.1:8080
因为我得到一个404 NGINX NotFound
.
你能帮帮我吗?我究竟做错了什么?我怎么能在我的私人网络中公开它?谢谢!
更新 我不确定这是否是正确的方法,但我设法通过更改一点 Ingress 资源从主机连接。我在注释中添加了主机参数,如
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: apollo-ingress
spec:
ingressClassName: wsnginx
rules:
#- host: test.xxx.com
- http:
paths:
- backend:
service:
name: apollo-service
port:
number: 80
path: /
pathType: Prefix
现在我的入口看起来像这样
NAMESPACE NAME CLASS HOSTS ADDRESS PORTS AGE
default ingress.networking.k8s.io/apollo-ingress wsnginx * 192.168.44.136 80 3h31m
看来我现在也可以从我的主机上访问它了。我有一个 Rest API,所以我刚刚从浏览器打开它http://127.0.0.1:8080