kubernetes(一)概述与架构

这篇具有很好参考价值的文章主要介绍了kubernetes(一)概述与架构。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

云原生实战 · 语雀
官网 Kubernetes 文档 | Kubernetes
更新:移除 Dockershim 的常见问题 | Kubernetes
B站课程:https://www.bilibili.com/video/BV13Q4y1C7hS/?p=26

1.概述

概述 | Kubernetes

大规模容器编排系统
kubernetes(一)概述与架构,Kubernetes,kubernetes,概述,架构
kubernetes(一)概述与架构,Kubernetes,kubernetes,概述,架构

kubernetes具有以下特性:

  • 服务发现和负载均衡
    Kubernetes 可以使用 DNS 名称或自己的 IP 地址公开容器,如果进入容器的流量很大, Kubernetes 可以负载均衡并分配网络流量,从而使部署稳定。
  • 存储编排
    Kubernetes 允许你自动挂载你选择的存储系统,例如本地存储、公共云提供商等。
  • 自动部署和回滚
    你可以使用 Kubernetes 描述已部署容器的所需状态,它可以以受控的速率将实际状态 更改为期望状态。例如,你可以自动化 Kubernetes 来为你的部署创建新容器, 删除现有容器并将它们的所有资源用于新容器。
  • 自动完成装箱计算
    Kubernetes 允许你指定每个容器所需 CPU 和内存(RAM)。 当容器指定了资源请求时,Kubernetes 可以做出更好的决策来管理容器的资源。
  • 自我修复
    Kubernetes 重新启动失败的容器、替换容器、杀死不响应用户定义的 运行状况检查的容器,并且在准备好服务之前不将其通告给客户端。
  • 密钥与配置管理
    Kubernetes 允许你存储和管理敏感信息,例如密码、OAuth 令牌和 ssh 密钥。 你可以在不重建容器镜像的情况下部署和更新密钥和应用程序配置,也无需在堆栈配置中暴露密钥。

Kubernetes 为你提供了一个可弹性运行分布式系统的框架。 Kubernetes 会满足你的扩展要求、故障转移、部署模式等。 例如,Kubernetes 可以轻松管理系统的 Canary 部署。

2.架构

2.1 工作方式

Kubernetes Cluster = N Master Node + N Worker Node

N主节点 + N工作节点, N>=1

2.2 组件架构

Kubernetes 组件 | Kubernetes

一组工作机器,称为节点, 会运行容器化应用程序。每个集群至少有一个工作节点。

工作节点会托管 Pod,而 Pod 就是作为应用负载的组件。 控制平面管理集群中的工作节点和 Pod。 在生产环境中,控制平面通常跨多台计算机运行, 一个集群通常运行多个节点,提供容错性和高可用性。

通常一个pod内只放一个容器,但是也可以放多个,多个容器的话共享该pod的存储和网络等,比如容器间可以通过localhost访问

kubernetes(一)概述与架构,Kubernetes,kubernetes,概述,架构kubernetes(一)概述与架构,Kubernetes,kubernetes,概述,架构

2.3 控制平面组件(Control Plane Components)

控制平面组件会为集群做出全局决策,比如资源的调度。 以及检测和响应集群事件,例如当不满足部署的 replicas 字段时, 要启动新的 pod)。

控制平面组件可以在集群中的任何节点上运行。 而为了简单起见,设置脚本通常会在同一个计算机上启动所有控制平面组件, 并且不会在此计算机上运行用户容器。 请参阅使用 kubeadm 构建高可用性集群 中关于跨多机器控制平面设置的示例。

kube-apiserver

API 服务器, 该组件负责公开 Kubernetes API,处理接受请求的工作。 API 服务器是 Kubernetes 控制平面的前端。

Kubernetes API 服务器的主要实现是 kube-apiserver。 kube-apiserver 设计上考虑了水平扩缩,即:它可通过部署多个实例来进行扩缩。 可以运行 kube-apiserver 的多个实例,并在这些实例之间平衡流量。

etcd

一致且高可用的键值存储,用作 Kubernetes 所有集群数据的后台数据库。

若你的 Kubernetes 集群使用 etcd 作为其后台数据库, 请确保有备份计划。

你可以在官方文档中找到有关 etcd 的深入知识。

kube-scheduler

负责监视新创建的、未指定运行节点(node)的 Pods, 并选择节点来让 Pod 在上面运行。

调度决策考虑的因素包括单个 Pod 及 Pods 集合的资源需求、软硬件及策略约束、 亲和性及反亲和性规范、数据位置、工作负载间的干扰及最后时限。

kube-controller-manager

负责运行控制器进程。

从逻辑上讲, 每个控制器都是一个单独的进程, 但为了降低复杂性,它们都被编译到同一个可执行文件,并在同一个进程中运行。

有许多不同类型的控制器。以下是一些例子(非全部):

  • 节点控制器(Node Controller):负责在节点出现故障时进行通知和响应
  • 任务控制器(Job Controller):监测代表一次性任务的 Job 对象,然后创建 Pods 来运行这些任务直至完成
  • 端点分片控制器(EndpointSlice controller):填充端点分片(EndpointSlice)对象(以提供 Service 和 Pod 之间的链接)。
  • 服务账号控制器(ServiceAccount controller):为新的命名空间创建默认的服务账号(ServiceAccount)。

cloud-controller-manager

一个 Kubernetes 控制平面组件, 嵌入了特定于云平台的控制逻辑。 云控制器管理器(Cloud Controller Manager) 允许你将你的集群连接到云提供商的 API 之上, 并将与该云平台交互的组件同与你的集群交互的组件分离开来。

cloud-controller-manager 仅运行特定于云平台的控制器。 因此如果你在自己的环境中运行 Kubernetes,或者在本地计算机中运行学习环境, 所部署的集群不需要有云控制器管理器。

kube-controller-manager 类似,cloud-controller-manager 将若干逻辑上独立的控制回路组合到同一个可执行文件中, 供你以同一进程的方式运行。 你可以对其执行水平扩容(运行不止一个副本)以提升性能或者增强容错能力。

下面的控制器都包含对云平台驱动的依赖:

  • 节点控制器(Node Controller):用于在节点终止响应后检查云提供商以确定节点是否已被删除
  • 路由控制器(Route Controller):用于在底层云基础架构中设置路由
  • 服务控制器(Service Controller):用于创建、更新和删除云提供商负载均衡器

2.4 Node 组件

节点组件会在每个节点上运行,负责维护运行的 Pod 并提供 Kubernetes 运行环境。

kubelet

kubelet 会在集群中每个节点(node)上运行。 它保证容器(containers)都运行在 Pod 中。

kubelet 接收一组通过各类机制提供给它的 PodSpec,确保这些 PodSpec 中描述的容器处于运行状态且健康。 kubelet 只管理由 Kubernetes 创建的容器。

kube-proxy

kube-proxy 是集群中每个节点(node)上所运行的网络代理, 实现 Kubernetes 服务(Service) 概念的一部分。

kube-proxy 维护节点上的一些网络规则, 这些网络规则会允许从集群内部或外部的网络会话与 Pod 进行网络通信。

如果操作系统提供了可用的数据包过滤层,则 kube-proxy 会通过它来实现网络规则。 否则,kube-proxy 仅做流量转发。

2.5 容器运行时(Container Runtime)

这个基础组件使 Kubernetes 能够有效运行容器。它负责管理 Kubernetes 环境中容器的执行和生命周期。

Kubernetes 支持许多容器运行环境,例如 containerd、 CRI-O 以及 Kubernetes CRI (容器运行环境接口) 的其他任何实现。文章来源地址https://www.toymoban.com/news/detail-782127.html

到了这里,关于kubernetes(一)概述与架构的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Kubernetes网络模型概述

    Kubernetes网络模型设计的一个基础原则是:每个Pod都拥有一个独立的IP地址,并假定所有Pod都在一个可以直接连通的、扁平的网络空间中。所以不管这些Pod是否运行在同一个Node中,都要求它们可以直接通过对方的IP进行访问。由于Kubernetes的网络模型假设Pod之间访问时使用的是对

    2024年01月18日
    浏览(38)
  • Kubernetes (K8S)概述

    1、K8S 是什么? K8S 的全称为 Kubernetes (K12345678S),PS:“嘛,写全称也太累了吧,不如整个缩写”。 1.1 作用 用于自动部署、扩展和管理“容器化(containerized)应用程序”的开源系统。 可以理解成 K8S 是负责自动化运维管理多个容器化程序(比如 Docker)的集群,是一个生态极

    2024年02月08日
    浏览(46)
  • 云原生Kubernetes:K8S概述

    目录 一、理论 1.云原生 2.K8S 3.k8s集群架构与组件 4.K8S网络 二、总结 (1)概念 云原生是一种基于容器、微服务和自动化运维的软件开发和部署方法。它可以使应用程序更加高效、可靠和可扩展,适用于各种不同的云平台。 如果要更直接通俗的来解释下上面的概念,云原生更

    2024年02月10日
    浏览(55)
  • Kubernetes核心概念汇总—Kubernetes 架构

    目录 ​编辑 一、概述 1、时光回溯 2、为什么需要 Kubernetes,它能做什么? 3、Kubernetes 不是什么  二、Kubernetes 架构  1、节点 2、管理 节点名称唯一性 节点自注册 手动节点管理 3、节点状态 地址 状况 容量(Capacity)与可分配(Allocatable) 信息(Info) 4、心跳 5、节点控制器

    2024年02月11日
    浏览(47)
  • Kubernetes技术--Kubernetes架构组件以及核心概念

    1. Kubernetes集群架构组件   搭建一个 Kubernetes环境集群,其架构如下所示: 内容详解: Master : 控制节点,指派任务、决策 Node : 工作节点,实际干活的。 Master组件内容:

    2024年02月10日
    浏览(51)
  • 四、Kubernetes(K8S):kubectl概述、安装、设置

    目录 概述 安装与配置kubectl 语法 命令 对象 规则结构 命令选项 资源类型 输出选项 格式化输出 自定义列 排序列表对象 常用操作示例 kubectl 是Kubernetes命令行工具。它允许用户与Kubernetes集群进行交互,并管理Kubernetes对象,如Pod、Service、Deployment等。kubectl可以在命令行界面中

    2024年02月12日
    浏览(65)
  • 【解读Kubernetes架构】全面指南,带你掌握Kubernetes的设计原理与构成!

    本文关于 Kubernetes 架构的综合指南旨在通过插图详细解释每个 Kubernetes 组件。 了解 Kubernetes 的架构。 掌握 Kubernetes 的基本概念。 了解 Kubernetes 架构组件。 探索连接这些组件的工作流。 以下 Kubernetes 架构图显示了 Kubernetes 集群的所有组件以及外部系统如何连接到 Kubernetes 集

    2024年04月12日
    浏览(40)
  • Kubernetes 整体架构介绍

    Kubernetes 主要由以下几个核心组件组成: etcd 保存了整个集群的状态; kube-apiserver 提供了资源操作的唯一入口,并提供认证、授权、访问控制、API 注册和发现等机制; kube-controller-manager 负责维护集群的状态,比如故障检测、自动扩展、滚动更新等; kube-scheduler 负责资源的调

    2024年02月14日
    浏览(37)
  • Kubernetes架构设计与组件

    简介: 一套容器集群管理系统 一个开源平台 实现容器集群的自动化部署、自动扩缩容、维护等功能 两个核心角色: Master:Master管理Node Node:Node管理容器 主要负责整个集群的管理控制。 通常Master会占用一台独立的服务器,基于高可用原因,也有可能是多台。 组成: kube-

    2024年02月08日
    浏览(52)
  • Kubernetes架构与组件详解

    Kubernetes是由Google开源的容器编排系统,用于自动化部署、扩展和管理容器化应用程序的平台。Kubernetes充分利用了云计算和容器化技术,可以大幅简化应用程序的开发、部署和运行过程。 Kubernetes的优势主要包括以下几点: 高可用性 :Kubernetes可以在多个地理位置和云平台上运

    2024年02月05日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包