当前位置: 首页 > 知识库问答 >
问题:

Kubernetes服务端口映射

王鹏飞
2023-03-14
NAME      TYPE       CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
web       NodePort   10.104.133.249   <none>        8080:31637/TCP   12m
NAME                            TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)    AGE    SELECTOR                                                         
grafana                         ClusterIP   10.109.88.206    <none>        80/TCP     84s    app=grafana,release=grafana

只有80/tcp。这些服务到底有什么不同?端口31637到底做什么?

共有1个答案

彭霄
2023-03-14

将运行在一组吊舱上的应用程序公开为网络服务的服务抽象方法。使用ClusterIP,集群中的Pods/services可以访问服务,但不能从外部网络访问,而NodePort则在30000-32767之间的随机端口上公开服务,该端口基本上映射到集群内的端口。

在您的示例中,Web服务以NodePort类型公开,您可以在端口31637上从外部访问它,而不能访问Grafana服务,因为它不公开给外部网络。

检查这个线程,Kubernetes中的ClusterIP、NodePort和LoadBalancer服务类型有什么区别?这将有助于理解一个概念以及它是如何工作的。

 类似资料:
  • 使用kubernetes时,我很难理解端口是如何工作的。有三个端口有问题 我的应用程序在docker容器内侦听的端口 kubernetes配置文件中提到的端口为 部署公开为服务时的LoadBalancer端口 以上三个端口之间的关系是什么?在我当前的设置中,我在Dockerfile和kubernetes配置文件中分别提到了EXPOSE 8000和containerPort:8000。我的应用程序正

  • https://kubernetes.io/docs/concepts/services-networking/Ingress/中的入口示例显示,为了指定bancked入口,我们必须指定servicePort和serviceName,例如: 我希望创建具有随机端口的服务,并避免在入口定义中指定它们。有没有ServicePort的替代方案?也许使用服务中分配的端口名称或targetPort?

  • 我在pod上部署了SAS Viya编程。这使SASStudio在端口80上运行。我正在尝试通过下面的yaml文件使用nodeport和Inete公开SAS Studio。但在GCP控制台中,后端服务显示不健康,如果我尝试访问Ip,它会遇到默认后端或找不到页面。我可以使用集群IP和节点IP以及端口号访问服务。 如果我使用LoadBalancer服务而不是入口,那么我可以使用LoadBalancer

  • 我有一个LoadBalancer服务,它在群集外公开3300端口。我想打开一个新的端口用于内部通信,以便其他吊舱可以与此服务对话,但此端口不应暴露在集群外部。 基本上,通信如下所示:

  • 具有TLS配置的典型入口如下所示: 发现GLBC正在讨论为GCE入口启用HTTPS后端。文件摘录: 后端HTTPS 对于负载均衡器和Kubernetes服务之间的加密通信,您需要将服务的端口装饰为预期的HTTPS。有一个alpha服务注释用于指定每个服务端口的预期协议。当将协议视为HTTPS时,入口控制器将使用带有HTTPS健康检查的HTTPS后端服务组装GCP L7负载均衡器。“ 不清楚负载均衡

  • 此问题与问题类似,但更多是围绕规则中可以配置的路径。 入口应该能够同时处理内部服务和外部服务。外部服务的URL应该类似于超文本传输协议://host_name: 80/es。当用户点击此url时,应该将其重定向到外部服务。 服务定义和入口规则的配置如下,但会导致404。我哪里做错了? 入口规则 服务和endpoint定义 当我尝试使用URL时,它会起作用http://host_name:80以及以