容器化应用迁移到 Kubernetes:从基础到实践
1. NodePort 服务实现外部访问
在相关实践中,我们创建了 NodePort 服务,使得外部用户无需进入集群就能访问内部 Pod。这背后涉及多层流量转换:
1. 第一层 :外部用户通过自动生成的随机端口(3XXXX)访问机器 IP。
2. 第二层 :从随机端口(3XXXX)到端口 80 的服务 IP(10.X.X.X)。
3. 第三层 :最终从服务 IP(10.X.X.X)到端口 8080 的 Pod IP。
以下是这些交互的示意图:
graph LR
A[外部用户] -->|3XXXX端口| B[机器IP]
B -->|端口80| C[服务IP 10.X.X.X]
C -->|端口8080| D[Pod IP]
2. 服务与 Pod 的标签匹配机制
服务通过标签( spec 部分的 selector 字段)来匹配 Pod,而非使用固定的 Pod 名称。从 Pod 的角度看,它无需知道是哪个服务将流量引入。甚至在某些罕见情况下,一个 Pod 可以映射到多个服务。
这种基于标签的匹配机制在 Kubernetes 中广泛应用,它使 API 对象在运行时实现松耦合。例如,指定 tier: frontend 作为
超级会员免费看
订阅专栏 解锁全文
927

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



