Kubernetes 服务发现与自我感知机制详解(上)
1. 集群外部的服务发现
在 Kubernetes 中,之前讨论的服务发现机制大多使用虚拟 IP 地址指向 Pod 或外部端点,且该虚拟 IP 仅在集群内部可访问。然而,Kubernetes 集群并非与外界隔绝,除了 Pod 连接外部资源,外部应用也常需访问 Pod 提供的端点。下面介绍几种让集群外客户端访问 Pod 的方法。
1.1 NodePort 类型服务
创建并将服务暴露到集群外部的第一种方法是使用 type: NodePort 。以下是一个示例:
apiVersion: v1
kind: Service
metadata:
name: random-generator
spec:
type: NodePort
selector:
app: random-generator
ports:
- port: 80
targetPort: 8080
nodePort: 30036
protocol: TCP
此定义创建了一个服务,匹配选择器 app: random-generator 的 Pod,在虚拟 IP 地址的 80 端口接受连接,并将其路由到所选 Pod 的 8080 端口。同时,该定义会在所有节点上预留 30036 端口,并将传入连接转发到服务。这使得服务既可以通过虚拟 IP 地址在内部访问,也可以通过每个节点上的专用端口从外部访问。
超级会员免费看
订阅专栏 解锁全文
7515

被折叠的 条评论
为什么被折叠?



