首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >kubernetes - nginx入口-如何访问

kubernetes - nginx入口-如何访问
EN

Stack Overflow用户
提问于 2020-07-27 22:31:24
回答 1查看 1.3K关注 0票数 0

我无法从k8s集群访问应用程序。有了nodePort,一切都能正常工作。如果我使用入口控制器,我可以看到它是成功创建的。我可以平IP。如果我试着上网,上面说连接被拒绝了。我也无法访问应用程序。我错过了什么?在入口舱里我没有看到任何例外。

代码语言:javascript
运行
复制
kubectl get ing -n test   
                 
NAME          CLASS    HOSTS   ADDRESS         PORTS   AGE
web-ingress   <none>   *       192.168.0.102   80      44m


ping 192.168.0.102

PING 192.168.0.102 (192.168.0.102) 56(84) bytes of data.
64 bytes from 192.168.0.102: icmp_seq=1 ttl=64 time=0.795 ms
64 bytes from 192.168.0.102: icmp_seq=2 ttl=64 time=0.860 ms
64 bytes from 192.168.0.102: icmp_seq=3 ttl=64 time=0.631 ms
^C
--- 192.168.0.102 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2038ms
rtt min/avg/max/mdev = 0.631/0.762/0.860/0.096 ms

telnet 192.168.0.102 80

Trying 192.168.0.102...
telnet: Unable to connect to remote host: Connection refused

代码语言:javascript
运行
复制
kubectl get all -n ingress-nginx

显示如下

代码语言:javascript
运行
复制
NAME                                            READY   STATUS      RESTARTS   AGE
pod/ingress-nginx-admission-create-htvkh        0/1     Completed   0          99m
pod/ingress-nginx-admission-patch-cf8gj         0/1     Completed   0          99m
pod/ingress-nginx-controller-7fd7d8df56-kll4v   1/1     Running     0          99m

NAME                                         TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                      AGE
service/ingress-nginx-controller             NodePort    10.102.220.87    <none>        80:31692/TCP,443:32736/TCP   99m
service/ingress-nginx-controller-admission   ClusterIP   10.106.159.230   <none>        443/TCP                      99m

NAME                                       READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/ingress-nginx-controller   1/1     1            1           99m

NAME                                                  DESIRED   CURRENT   READY   AGE
replicaset.apps/ingress-nginx-controller-7fd7d8df56   1         1         1       99m

NAME                                       COMPLETIONS   DURATION   AGE
job.batch/ingress-nginx-admission-create   1/1           7s         99m
job.batch/ingress-nginx-admission-patch    1/1           8s         99m
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-27 23:39:40

回答

来自kubectl get ing -n test的IP不是您应该使用的外部访问地址。

您的NGINX it部署在它旁边部署了一个服务。您可以使用此服务的外部IP (如果有此IP)来攻击您的“侵入控制器”。

因为您的服务是NodePort类型的(并且没有显示外部IP),所以您必须通过集群的节点IP来处理。您需要跟踪哪个节点的Pod,然后找到节点的IP。下面是一个这样做的例子:

代码语言:javascript
运行
复制
NODE=$(kubectl get pods -o wide | grep "ingress-nginx-controller" | awk {'print $8'})
NODE_IP=$(kubectl get nodes "$NODE" -o wide | grep Ready | awk {'print $7'})

更多信息

如果您的集群是被管理的(即GKE/Azure/AWS),您可以使用LoadBalancer服务来提供外部IP来命中侵入控制器。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63124560

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档