【发布时间】:2020-02-20 18:03:33
【问题描述】:
我有一个 3 个 vm 的集群,我在上面安装了 kubernetes 并部署了一些我希望从外部访问的 pod 和服务(例如我的本地电脑)
我按照本教程https://kubernetes.github.io/ingress-nginx/deploy/#bare-metal 安装了我的入口控制器。 我创建了一个 NodePort 类型的服务。 我创建了一个如下所示的入口:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: test-ingress
annotations:
kubernetes.io/ingress.class: nginx
spec:
rules:
- host: my.service.com
http:
paths:
- path: /
backend:
serviceName: myservice
servicePort: 9090
kubectl get svc myservice 给我:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
myservice NodePort xxx.xxx.xxx.xxx <none> 9090:31220/TCP 47m
kubectl get ingress test-ingress给我
NAME HOSTS ADDRESS PORTS AGE
test-ingress my.service.com xx.xxx.xxx.xxx 80 49m
在我的本地计算机上,我已添加到 /etc/hosts 我已将入口的 IP 地址映射到名称 my.service.com 当我尝试 ping my.service.com 或直接 ip 我去请求超时 100% 丢包。 我尝试使用网络浏览器访问我的服务可视化界面,但它也不起作用。
如何进一步调查为什么我无法从集群外部访问我的服务?
【问题讨论】:
-
你能打
NodeIP:NodePort吗? -
是的,我可以点击 NodeIP:NodePort,但不能使用我在入口文件中提供的名称。
-
我猜它很可能是防火墙问题。检查您的防火墙设置
标签: kubernetes kubernetes-ingress