Kubernetes 服务端口映射

Kubernetes service ports mapping

我注意到,但我无法解释,有些服务有

NAME      TYPE       CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
web       NodePort   10.104.133.249   <none>        8080:31637/TCP   12m

PORT(S) 部分看起来像这样8080:31637/TCP。但是这个服务

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 的具体作用是什么?

Service 将一组 Pods 上的应用程序 运行 公开为网络服务的抽象方法。 使用 ClusterIP,服务可通过集群中的 pods/services 访问,但无法从外部网络访问,而 NodePort 会在 30000-32767 范围内的随机端口上公开服务,该端口基本上映射到集群内的端口。

在您的情况下,web 服务公开为 NodePort 类型,您可以通过端口 31637 从外部访问它,而您无法访问 grafana 服务,因为它未公开给外部网络.

查看此线程, 这将有助于理解概念及其工作原理。