【发布时间】:2021-07-07 03:48:33
【问题描述】:
我正试图了解 Kubernetes (k8s) 如何利用端口。阅读了 API 文档以及可用的文档后,我不确定端口映射和端口流是如何工作的。
假设我有三个带有外部托管数据库的容器,我的 k8s 集群是三个本地 CoreOS 节点,所有三个节点前面都有一个软件定义的负载均衡器,用于将流量转发到端口上的所有三个节点3306 和 10082。
- 容器 A 使用传入端口 8080,需要与容器 B 和 C 通信,但不需要外部访问。它是使用具有 1 个副本的复制控制器 A 定义的。
- 容器 B 使用传入端口 8081 与容器 A 和 C 通信,但需要访问端口 3306 上的外部数据库。它由具有 2 个副本的复制控制器 B 定义。
- 容器 C 使用传入端口 8082,需要与容器 A 和 B 通信,但最终用户还需要在端口 10082 上进行外部访问。它是使用具有 3 个副本的复制控制器 C 定义的。
我有三个服务来抽象复制控制器。
- 服务 A 选择复制控制器 A,需要将端口 9080 上的传入流量转发到端口 8080。
- 服务 B 选择 Replication Controller B,需要将端口 9081 和 3306 上的传入流量转发到端口 8081 和 3306。
- 服务 C 选择复制控制器 C,需要将端口 9082 上的传入流量转发到端口 8082。
我有一个用于外部数据库的端点,配置为使用 IPv4 地址在端口 3306 上。
目标:
- 服务需要抽象复制控制器端口。
- 需要能够从端口 3306 上的外部系统访问服务 B 在所有节点上。
- 需要能够从端口 10082 上的外部系统访问服务 C 在所有节点上。
这样:
- 何时使用每种类型的端口?即
port、targetPort、nodePort等?
【问题讨论】:
标签: kubernetes port