Kubernetes控制平面,它如何与它的主人通信?[关闭]

fiei3ece  于 2023-05-28  发布在  Kubernetes
关注(0)|答案(1)|浏览(132)

已关闭,此问题需要更focused。目前不接受答复。
**想改善这个问题吗?**更新问题,使其仅通过editing this post关注一个问题。

2天前关闭。
Improve this question
我有几个关于Kubernetes的问题。阅读了一遍之后,我大概明白了它是什么。我会给予一个简短的总结,我认为这是什么。它管理一堆pod,这些pod是微服务/容器,每个pod提供一个服务。pod数据的存储方式与容器相同,因此任何其他pod都可以访问数据,因为它是容器化的。我假设,如果你想有多个数据库网关,你可以。
如果它托管在单个主机上,并且您使用此kubernetes作为管理器来维护每个微服务的健康等,那么这一切都是有意义的。
但我似乎不能理解的是,当你有一个以上的主机时,这是如何工作的。1个Kubernetes如何与另一个Kubernetes通信?我可以在技术上不断扩展我的虚拟机,但多个虚拟机如何组合在一起并具有相同的效果?
感觉你需要另一个更大的Kubernetes来管理它们。
@prasanna kumar给出了详细的解释。谢谢

nlejzf6q

nlejzf6q1#

现在Kubernetes masters通信通过

  1. API服务器
  2. etcd
    1.控制器管理器
    API服务器:API服务器是Kubernetes控制平面的核心组件,它公开Kubernetes API。它接收来自用户、客户端和其他组件的请求,并与etcd存储进行通信,以读取和更新集群的状态。每个主节点上的API服务器连接到etcd集群以访问和更新共享配置数据。
+------------------------+
               |    Kubernetes Master 1  |
               |        API Server       |
               +------------------------+
                    |         ^
                    |         |
                    v         |
               +------------------------+
               |    Kubernetes Master 2  |
               |        API Server       |
               +------------------------+
                    |         ^
                    |         |
                    v         |
               +------------------------+
               |         etcd           |
               +------------------------+

etcd:etcd是Kubernetes用来存储和管理集群的配置数据和状态的分布式键值存储。它充当可由所有主节点访问的可靠数据存储。每个主节点都连接到etcd集群,以读取和写入有关集群状态的信息。

+------------------------+
               |    Kubernetes Master 1  |
               +------------------------+
                    |         ^
                    |         |
                    v         |
               +------------------------+
               |    Kubernetes Master 2  |
               +------------------------+
                    |         ^
                    |         |
                    v         |
               +------------------------+
               |         etcd           |
               +------------------------+

控制器管理器:控制器管理器运行各种控制器,这些控制器监视集群的状态并进行必要的调整以确保维持所需的状态。每个主节点上的控制器管理器与API服务器通信以检索信息并基于期望的状态执行动作。

+------------------------+
           |    Kubernetes Master 1  |
           |    Controller Manager   |
           +------------------------+
                |         ^
                |         |
                v         |
           +------------------------+
           |    Kubernetes Master 2  |
           |    Controller Manager   |
           +------------------------+
                |         ^
                |         |
                v         |
           +------------------------+
           |         etcd           |
           +------------------------+

这些是促进集群中Kubernetes master之间通信和协调的核心组件。etcd存储保存集群的配置和状态,API服务器公开Kubernetes API并与etcd交互,控制器管理器根据所需的状态监视和管理集群。
这些组件共同确保Kubernetes主服务器作为一个有凝聚力的单元一起工作,共享信息,协调行动,以维护集群的健康和功能。
现在在Kubernetes master中共享资源的过程如下:
假设您有一个由多个节点组成的Kubernetes集群,这些节点可以是物理机或虚拟机。每个节点代表一个可以运行容器的主机。在多节点设置中,可能有三个节点,分别标记为节点A、节点B和节点C。

+------------------------+
       |         Node A         |
       +------------------------+
                /       \
               /         \
              /           \
+-------------------+   +-------------------+
|       Node B      |   |       Node C      |
+-------------------+   +-------------------+

在每个节点上,都有一个Kubernetes运行时环境,负责管理容器和执行pod。
现在,假设您有一个Kubernetes集群,其中包含多个pod,每个pod包含一个或多个容器。这些pod代表您的微服务或应用程序。

+------------------------+
       |         Node A         |
       +------------------------+
                /       \
               /         \
              /           \
+-------------------+   +-------------------+
|     Pod 1         |   |    Pod 2          |
|                   |   |                   |
|   Container 1     |   |   Container 1     |
+-------------------+   +-------------------+

Pod基于资源可用性和约束跨节点分布。Kubernetes调度器组件决定将pod放置在哪些节点上。
为了实现运行在不同节点上的pod之间的通信,Kubernetes在集群中建立了一个网络覆盖。该网络覆盖为每个Pod提供其唯一的IP地址,允许它们彼此无缝通信。

+------------------------+
       |         Node A         |
       +------------------------+
                /       \
               /         \
              /           \
+-------------------+   +-------------------+
|     Pod 1         |   |    Pod 2          |
|   IP: 10.0.0.1    |   |   IP: 10.0.0.2    |
|                   |   |                   |
|   Container 1     |   |   Container 1     |
+-------------------+   +-------------------+

因此,即使Pod 1在Node A上运行,Pod 2在Node B上运行,它们也可以使用各自的IP地址相互通信。
Kubernetes的控制平面组件,包括API服务器,调度器和控制器管理器,确保保持集群的所需状态。它们协调跨节点的操作,以实现可伸缩性、高可用性和容错性。
如果你想扩展你的Kubernetes集群本身,你可以设置多个Kubernetes主节点。这些主节点一起工作并相互通信,以管理集群的状态并确保维持所需的状态。

+------------------------+
          |     Kubernetes Master 1 |
          +------------------------+
                      |
                      |
                      v
          +------------------------+
          |     Kubernetes Master 2 |
          +------------------------+

通过拥有多个主节点,可以确保如果一个主节点出现故障,其他节点可以接管并维护集群的操作。
此可视化表示演示了Kubernetes如何管理多节点设置,分发Pod,启用Pod间通信,并确保集群的健康和可扩展性。

相关问题