Kubernetes 概念与组件

发布于 2024-03-20 16:18:15 字数 1968 浏览 22 评论 0

一. Kubernetes 中的概念

  • Master:集群控制节点,每个集群至少需要一个 Master 节点负责集群管控
  • Node:工作负载节点,由 Master 分配容器到这些 Node 工作节点上,然后 Node 节点上的 Docker 负责容器的运行
  • Pod:Kubernetes 的最小控制单元,容器都是运行在 Pod 中的,一个 Pod 可以有一个或多个容器
  • Controller:控制器,通过它来实现对 Pod 的管理,比如启动 Pod、停止 Pod、伸缩 Pod 的数量等
  • Service:Pod 对外服务的统一入口,下面可以维护着同一类的多个 Pod
  • Label:标签,用于对 Pod 进行分类,同一类 Pod 会拥有相同的标签
  • Namespace:命名空间,用来隔离 Pod 的运行环境

二. Kubernetes 组件

一个 Kubernetes 集群主要是由控制节点(master)、工作节点(node)构成,每个节点都会安装不同的组件。

master:集群的控制平面,负责集群的决策

  • ApiServer:资源操作的唯一入口,接收用户输入的命令,提供认证、授权、API 注册和发现等机制
  • Scheduler:负责集群的资源调度,按照预定的调度策略将 Pod 调度到相应的 node 节点上
  • ControllerManager:负责维护集群的状态,比如程序部署安排、故障检测、自动扩展、滚动更新等
  • Etcd:负责存储集群中各种资源对象的信息

node:集群的数据平面,负责给容器提供运行环境

  • Kubelet:负责维护容器的声明周期,即通过控制 Docker 来创建、更新、销毁容器
  • KubeProxy:负责提供容器内部的服务发现和负载均衡
  • Docker:负责节点上容器的各种操作

下面,以部署一个 Nginx 服务来说明 Kubernetes 系统各个组件调用关系:

  1. 首先要明确,一旦 Kubernetes 环境启动之后,master 和 node 都会将自身的信息存储到 etcd 数据库中
  2. 一个 Nginx 服务的安装请求首先会被发送到 master 节点的 ApiServe 组件
  3. ApiServer 组件会调用 Scheduler 组件来决定到底应该把这个服务安装到拿个 node 节点上
  4. ApiServer 调用 ControllerManager 去调度 Node 节点安装 Nginx 服务
  5. Kubelet 接收到指令后,会通知 Docker,然后 Docker 来启动一个 Nginx 的 Pod
  6. 至此一个 Nginx 服务就启动成功了,如果需要访问 Nginx,就需要通过 KubeProxy 来对 Pod 产生访问的代理,这样外界用户就可以访问集群中的 Nginx 服务了。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

秉烛思

暂无简介

0 文章
0 评论
619 人气
更多

推荐作者

小瓶盖

文章 0 评论 0

wxsp_Ukbq8xGR

文章 0 评论 0

1638627670

文章 0 评论 0

仅一夜美梦

文章 0 评论 0

夜访吸血鬼

文章 0 评论 0

近卫軍团

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文