gpt4 book ai didi

containers - 在Kubernetes中映射端口

转载 作者:行者123 更新时间:2023-12-02 11:59:11 26 4
gpt4 key购买 nike

我试图围绕kubernetes(k8s)如何利用端口进行研究。阅读了API文档以及可用的文档后,我不确定端口映射和端口流如何工作。

假设我有三个带有外部托管数据库的容器,我的k8s集群是三个本地CoreOS节点,并且在这三个节点的前面都有一个软件定义的负载均衡器,以将流量转发到端口3306和10082上的所有三个节点。

  • 容器A使用传入端口8080,需要与容器B和C进行通信,但不需要外部访问。它由具有1个副本的Replication Controller A定义。
  • 容器B利用传入的端口8081与容器A和C进行通信,但是需要访问端口3306上的外部数据库。它是由具有2个副本的Replication Controller B定义的。
  • 容器C使用传入端口8082,需要与容器A和B进行通信,但还需要最终用户在端口10082上进行外部访问。它由具有3个副本的Replication Controller C定义。

  • 我有三种服务来抽象复制 Controller 。
  • 服务A选择复制 Controller A,并需要将端口9080上的传入流量转发到端口8080。
  • 服务B选择复制 Controller B,并且需要将端口9081和3306上的传入流量转发到端口8081和3306。
  • 服务C选择复制 Controller C,并且需要将端口9082上的传入流量转发到端口8082。

  • 我有一个用于外部数据库的端点,该端点配置为在端口3306上具有IPv4地址。

    目标:
  • 服务需要抽象Replication Controller端口。
  • 服务B必须能够从端口3306上的外部系统访问
    在所有节点上。
  • 服务C需要能够从端口10082上的外部系统访问
    在所有节点上。

  • 接着就,随即:
  • 什么时候使用每种端口类型?即porttargetPortnodePort等?
  • 最佳答案

    感谢非常详细的设置,但是我仍然有一些疑问。

    1)当您说“容器” {A,B,C}时,您是说Pod吗?还是A,B,C容器在同一个Pod中?

    2)“容器B使用传入端口8081与容器A和C进行通信”-您的意思是它使用传入端口与其他容器进行通信?谁打开连接,与谁建立连接以及在哪个目标端口上?

    3)“需要访问端口3306上的外部数据库”,但后来“需要能够从端口3306上的外部系统访问”-B是否访问外部数据库或它正在3306上为数据库提供服务?

    在此说明中,我对流量传入和传出的位置感到困惑。

    通常,应该避免考虑节点,也应该避免考虑与Pod对话的Pod(或容器与容器的对话)。您有一定数量的服务,每个服务都由一定数量的Pod提供支持。客户 pods (通常)与服务对话。服务在port上接收流量,并将该流量发送到Pods上的相应targetPort。容器在containerPort上接收流量。

    这些都不需要hostPorts或nodePorts。最后一个问题是需要从群集外部访问这些服务中的哪些服务,并且您的环境能够实现负载均衡。

    如果您回答得这么远,那么我可以再进行第二轮:)

    关于containers - 在Kubernetes中映射端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33245498/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com