gpt4 book ai didi

kubernetes - 无法从外部访问入口 Controller NodePort

转载 作者:行者123 更新时间:2023-12-02 11:51:49 25 4
gpt4 key购买 nike

我有一个由 3 个虚拟机组成的集群,我在上面安装了 kubernetes 并部署了一些我希望可以从外部访问的 pod 和服务(例如我的本地电脑)

我遵循了本教程 https://kubernetes.github.io/ingress-nginx/deploy/#bare-metal安装我的入口 Controller 。我创建了一个 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% 数据包丢失。我尝试使用 Web 浏览器访问我的服务可视界面,但它也不起作用。

我该如何进一步调查为什么我无法从集群外部访问我的服务?

最佳答案

您的防火墙可能存在问题。检查防火墙规则是否阻止从外部访问该端口。

此外,您还应该从您在部署入口 Controller 时创建的服务的 NodePort 访问该服务。

同时编辑您的入口并为 my.service.com

添加带有自签名证书的 tls 和 hosts 属性
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: test-ingress
annotations:
ingress.kubernetes.io/rewrite-target: /
kubernetes.io/ingress.class: nginx
spec:
tls:
- hosts:
- my.service.com
secretName: tls-secret-for my service
rules:
- host: my.service.com
http:
paths:
- path: /
backend:
serviceName: myservice
servicePort: 9090

关于kubernetes - 无法从外部访问入口 Controller NodePort,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60316148/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com