Kubernetes 入门 – 第二部分

作者 : 慕源网 本文共1814个字,预计阅读时间需要5分钟 发布时间: 2021-11-8 共405人阅读

介绍

在上一部分Kubernetes 入门第 1 部分中,我们了解了 Kubernetes。在本文中,我们将学习 Kubernetes 的架构。本文将涵盖以下主题:
  • Kubernetes 架构
    • 主节点
      • 接口服务器
      • ETCD服务器
      • Kube 调度器
    • 控制器管理器
      • 节点组件
      • Kubelet
      • Pods
    • Overlay Network

Kubernetes 架构

正如我们现在已经看到了一些好处和历史,现在让我们了解 Kubernetes 的架构。

主节点

主节点称为控制平面,它还有 3 个东西,即 API 服务器、调度程序和控制器管理器。

接口服务器

这将启用所有通信 b/w API,我们将仅与 Kube API Server 对话。它接受请求并将其发送到其他服务。

我们可以使用 Kubectl CLI 来管理 Kubernetes 集群。

Kubectl 将请求发送到 API 服务器,然后 API 服务器响应。

ETCD服务器

Kube API Server 将所有信息存储在 Etcd 中,其他服务也将这些信息读取并存储在 Etcd 存储中

如果我们有多个 Kubernetes master,那么我们可以设置多个 ETCD Server 集群在一起,同步所有数据。

它应该定期备份。

它将集群中所有内容的当前状态存储在 ETCD 服务器上。

Kube 调度器

它拿起容器并根据不同的因素将其放在正确的节点上。

控制器管理器

有不同类型的控制器,它们都是控制器管理器的一部分。

节点控制器负责检查节点的状态

节点组件

有3个节点组件:

Kubelet 是代理,它会听取 master 的请求,并会完成所有繁重的工作。

假设它收到一个需要启动的请求,假设 X 没有 Pod。所以 Kubelet 将获取镜像,从镜像运行容器等。

Kubernetes 可以添加不同的附加组件,例如监控容器资源以在集群级别进行日志记录,或者我们可以使用 Splunk 等第三方工具。

现在让我们再次查看整个图表。

  • Kubectl 将请求发送到 API 服务器。
  • API server 将信息存储在 Etcd 存储中。
  • 调度器将获取此类信息,如果该信息类似于 Create pod/container,它将根据算法找到正确的节点并识别工作节点,然后将信息发送到该节点上的 Kubelet。
  • Kubelet 将接收信息并执行诸如拉取镜像、运行容器、分配端口等操作。

如果我们说我们需要 4 个 pod 或这个容器的复制,那么这个请求会发送到控制器管理器,控制器管理器会监视/管理它,并确保在工作节点内创建 4 个 pod。

Pods

到目前为止,我们是直接运行容器的。在 Kubernetes 中,我们有 Pod,我们不直接运行容器。我们总是创建 Pod 并管理 Pod。这是 Kubernetes 集群中最小的实体。一个 Pod 可以包含 1 个或多个容器。

我们可以让一个 Pod 运行 Web 服务、数据库服务,或者这个 Pod 可以运行多个容器。

我们应该在不同的 pod 中运行假设 web 服务、数据库服务,而不是在同一个 pod 中。但是,我们可以在同一个 Pod 中运行一些辅助服务,例如日志记录服务。每个 pod 都会有一个 IP 地址。

容器运行实际的服务,如果它是一个 Web 服务,它将有一个端口。该端口将属于容器,而 pod 将具有 IP 地址。如果我们在一个 pod 中运行多个容器,它们都将具有相同的 IP 地址。

如果我们附加一个volume,那么所有在 pod 内运行的容器都会访问它。

有时我们在单个 Pod 中运行多个容器,例如 Node 2。
在这里,我们可以看到我们有一个 Init 容器(它可能类似于克隆 git repo),然后我们有实际运行服务的主容器(Web 服务器),我们有一个 sidecar 容器,它可以是一个日志记录或监控服务。
有时人们错误地将多个主进程(容器)放在一个 pod 中,这实际上是可行的但不推荐。

Overlay Network

现在,在我们实际启动或设置 Kubernetes 集群之前,让我们了解一下 Overlay 网络。
在这里,我们有多个 docker 引擎和工作节点协同工作。集群中分布着多个 Pod。
假设我们有一个 3 节点的 Kubernetes 集群。现在让我们看看它们是如何交互的。当我们设置 Kubernetes 时,默认情况下会启用此通信或 Overlay 网络。

在这里,Kubernetes 集群中的每个 Pod 都可以相互通信。

Pod 从 Overlay 网络获取 IP 地址,这一切都是自动发生的。

总结

在本文中,我们详细了解了 Kubernetes 的架构。在下一篇文章中,我们将看到 Kubernetes 的设置。

我希望你觉得这篇文章有帮助。请继续关注更多……

慕源网 » Kubernetes 入门 – 第二部分

常见问题FAQ

程序仅供学习研究,请勿用于非法用途,不得违反国家法律,否则后果自负,一切法律责任与本站无关。
请仔细阅读以上条款再购买,拍下即代表同意条款并遵守约定,谢谢大家支持理解!

发表评论

开通VIP 享更多特权,建议使用QQ登录