k8s架构了解

news2024/11/20 1:41:27

Kubernetes(k8s)是用于自动部署、扩展和管理“容器化应用程序”的开源系统

k8s由control plane以及cluster nodes构成
在这里插入图片描述

control plane

control plane是维护所有k8s对象记录的系统,持续管理着对象状态,并且对集群的变化做出响应,并使状态匹配所期望的

  • kube-apiserver: API Server 为不同类型的应用程序提供了支持生命周期编排(缩放、更新等)的 API。它还充当集群的网关,因此 API 服务器必须能够被集群外部的客户端访问。客户机通过 API 服务器进行身份验证,并将其用作节点和 pods (以及服务)的代理/通道。
  • kube-controller-manager: 负责将资源转变维持到期望状态。期望状态就是描述资源期望的元数据
  • kube-scheduler: 负责编排集群中容器
  • etcd: 一个分布式和容错的开源键值存储数据库,用于存储配置数据和关于集群状态的信息。etcd可以在外部配置,尽管它通常是Kubernetes控制平面的一部分。

Kubernetes control plane

kube-apiserver

在这里插入图片描述

具体负责如下

  • api管理:保留集群API并处理所有API请求
  • 认证与授权
  • 唯一与etcd交流的组件
  • 协调control plane和cluster nodes之间的进程
  • 内置的 bastion apiserver 代理,支持从集群外部访问 ClusterIP 服务

etcd

etcd提供了

  • 储存了所有配置、状态以及k8s对象的元数据
  • 允许客户端(apiserver)跟踪对象状态的变化
  • 通过grpc暴露key-value API

kube-scheduler

在这里插入图片描述

scheduler通过采用筛选和评分选择最好的node,随后应用该调度

controller manager

controller是运行控制流的程序,在观察到对象状态与预期不一致,会进行纠正。

kube controller manager用于管理所有k8s controller的组件

在这里插入图片描述

cluster nodes

cluster nodes是运行容器且被master节点管理的机器

在这里插入图片描述

  • kubelet: 是主要且最重要的控制器,与control plane沟通来驱动容器在pod中运行
  • kube-proxy: 运行在集群中每个节点的网络代理,维持每个节点的网络规则。
  • container runtime: 负责运行容器。支持containerd、CRI-O等

kubelet

kubelet负责向api server注册node,并使用来自api server的pod规格与runtime沟通使容器达到所期望状态

skubelet不以容器的形式运行,而是作为daemon被systemd管理

主要做以下事情

  • 从pod创建、修改、删除容器
  • 通过读取 pod 配置并在主机上创建各自的卷安装目录来负责安装卷。
  • 收集汇报pod状态

kube-proxy

为了理解kube-proxy首先要了解service和endpoint对象

k8s中service指的是一种向内部或外部流量公开一组pod的方法。当创建service对象时,将获得分配的虚拟IP(clusterIP),只能在Kubernetes集群中访问。

Endpoint对象包含Service对象下pod组的所有IP地址和端口。endpoint控制器负责维护pod IP地址(端点)列表。service控制器负责配置service的endpoint。

不能ping通ClusterIP,因为它只用于服务发现,不像pod ip可以ping通。

接着来介绍一下kube-proxy

Kube-proxy是一个守护进程,在每个节点上作为守护进程运行。它是为pod实现Kubernetes Services概念的代理组件。(为一组具有负载平衡的pod提供单个DNS)。它主要代理UDP、TCP和SCTP,不理解HTTP。

当您使用Service (ClusterIP)公开pod时,Kube-proxy将创建网络规则,将流量发送到分组在Service对象下的后端pod(endpoint)。也就是说,所有的负载平衡和服务发现都由Kube代理处理。

在这里插入图片描述

kube-proxy默认采用iptables模型进行处理

container runtime

runtime负责拉取镜像、运行容器、分配和隔离容器资源、管理容器整个生命周期

Container Runtime Interface(CRI):是一组 API,允许 Kubernetes 与不同的容器运行时进行交互。它允许不同的容器运行时与 Kubernetes 交换使用。CRI 定义了用于创建、启动、停止和删除容器以及管理映像和容器网络的 API

Open Container Initiative (OCI) : 一组用于容器规格和运行时的标准

  1. kubelet接收来自api server请求,随后通过CRI与CRI-O对话来启动要求的容器
  2. CRI-O检查并拉取镜像
  3. CRI-O为容器生成OCI runtime规格
  4. CRI-O随后启动OCI兼容runtime(runc)安装规格去启动容器进程

在这里插入图片描述

Ref

  1. https://platform9.com/blog/kubernetes-enterprise-chapter-2-kubernetes-architecture-concepts/
  2. https://kubernetes.io/docs/concepts/overview/components/
  3. https://avinetworks.com/glossary/kubernetes-architecture/
  4. https://devopscube.com/kubernetes-architecture-explained/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/516751.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2022年美国大学生数学建模竞赛B题水和水力发电分配解题全过程文档及程序

2022年美国大学生数学建模竞赛 B题 水和水力发电分配 原题再现: 背景:   几个世纪以来,人们在河流和溪流.上修建水坝来蓄水建造水库,以此作为管理供水的方式。这些水库储存各种用途的水(如农业、工业、住宅),提供休闲和娱乐场…

git可视化管理工具SourceTree安装教程

一、背景 本文主要写给,不熟悉git命令或者不喜欢使用git命令的开发者使用,SourceTree可视化见面可以清晰操作git,管理项目方便,可追溯代码编写者及日期。轻松完成项目的dev、sit、线上环境代码管理与合并。无需使用git命令,彻底释…

北京筑龙参编的《国有企业采购操作规范(2023版)》发布

近日,中国物流与采购联合会发布《国有企业采购操作规范(2023版)》团体标准,北京筑龙作为起草单位之一参与编写。新版团体标准为国有企业编制采购管理制度、规范采购行为提供了参照和依据,有助于进一步提高国企采购的规…

【腾讯云 Finops Crane 集训营】深入了解 Crane 开源项目,集训营实验操作指南,体验过程总结

前言 最近有幸参与了腾讯云举办的Finops Crane的集训营。在这个过程中,老师认真指导,让我受益非浅,也让我真正理解了这一产品所带来的意义。 在听了老师们的介绍和讲解后,我马不停蹄地开始了自己摸索。首先是跟着视频和官方教程…

7.100ASK_V853-PRO开发板支持人形检测和人脸识别

1.前言 ​ V853 芯片内置一颗 NPU核,其处理性能为最大 1 TOPS 并有 128KB 内部高速缓存用于高速数据交换,支持 OpenCL、OpenVX、android NN 与 ONNX 的 API 调用,同时也支持导入大量常用的深度学习模型。本章提供一个例程,展示如…

银医一站式服务终端

01 发卡/充值/挂号业务 ●发卡就诊 ●预约挂号 ●当日挂号 ●自助充值 ●医保关联 ●预约取号 ●现金充值 ●核酸预约 02 打印业务 ●打印检验报告 ●打印检查报告 ●打印费用清单 ●打印病历报告 ●打印住院病历 ●打印检验条码 03 缴费结算业务 ●支付宝支付…

AttributeError: module ‘lib‘ has no attribute ‘X509_V_FLAG_CB_ISSUER_CHECK‘

terminal运行报错AttributeError: module lib has no attribute X509_V_FLAG_CB_ISSUER_CHECK 解决: pip install pyOpenSSL --upgrade

Log4j2远程命令执行(CVE-2021-44228)

漏洞原理 该漏洞是由于,在JNDI客户端的lookup()函数参数外部可控或Reference类构造方法的classFactoryLocation参数外部可控时,会使用户的JNDI客户端访问RMI注册表中绑定的恶意Reference类,从而加载远程服务器上的恶意class文件在客户端本地…

实现微信打开App功能

效果 要求 文档 开发标签文档 android接入指南 android实现 1.接入openSDK dependencies { api ‘com.tencent.mm.opensdk:wechat-sdk-android:6.8.0’ } 2.注册 需要在包名为(applicationId)wxapi的包下加入以上几个类。 类名功能AppRegister是一…

heic如何转换jpg格式?

heic如何转换jpg格式?HEIC是苹果推出的一种新型图片格式,它可以在保证高质量图像的同时减小图像文件的大小。虽然HEIC格式在iOS设备上使用广泛,但在其他操作系统或平台上,特别是Windows系统中,其兼容性和支持程度较差。…

蓝牙单连接和多连接知识

蓝牙单连接和多连接知识 生活中蓝牙连接多路蓝牙的情况越来越多&#xff0c;下面介绍下单连接和多连接的知识&#xff0c;供大家参考 一&#xff1a;蓝牙单连接 蓝牙单连接也称为Point-to-Point 点对点连接&#xff0c;是最常见的蓝牙连接场景,如手机<–>车载蓝牙。&…

〖Web全栈开发①〗—网络编程基础(上)

网络编程基础 网络编程网络编程概述TCP/IP协议IP地址什么是IPIP组成IP 地址使用过程查看IPIp地址分类&#xff1a;子网掩码 端口 socketSocket原理&#xff11;.什么是Socket2.创建一个tcp socket&#xff08;tcp套接字&#xff09; tcp 介绍 &#x1f3d8;️&#x1f3d8;️个…

安卓卡死,卡屏,死机,黑屏

(662条消息) 黑屏定屏那些事 - 系统机制&#xff0c;分析套路和实战&#xff08;系统篇&#xff09;_android黑屏问题分析_内核工匠的博客-CSDN博客

Java 是如何实现双亲委托加载机制的

Java 是一种面向对象的编程语言&#xff0c;它有一套独特的类加载机制。其中&#xff0c;双亲委托加载机制是 Java 类加载机制中的一个重要概念。本文将介绍 Java 的双亲委托加载机制是如何实现的&#xff0c;并解释其作用和优点。 Java 类加载机制 在 Java 中&#xff0c;类的…

树脂可以吸收水里的硝酸盐吗,饮用水矿泉水除硝酸盐,食品级树脂

使用常规的离子交换树脂处理含硫酸盐水中的硝酸盐是困难的。因为树脂几乎交换了水中的所有的硫酸盐后&#xff0c;才与水中的硝酸盐交换。也就是说&#xff0c;硫酸盐的存在会降低树脂对硝酸盐的去除能力。采用Tulsimer A-62MP除硝酸盐树脂优先交换硝酸盐&#xff0c;对硝酸盐的…

形态学运算与仿真:图像处理中形态学操作的简单解释

形态学是图像处理领域的一个分支&#xff0c;主要用于描述和处理图像中的形状和结构。形态学可以用于提取图像中的特征、消除噪声、改变图像的形状等。其中形态学的核心操作是形态学运算。 形态学运算是一种基于形状的图像处理技术&#xff0c;它是通过结构元素与图像进行特定运…

Redis自学之路—安装与配置(一)

目录 简介 安装与配置Redis 下载 上传至linux 安装Redis 解压redis 安装gcc编译环境 注意 停止redis服务 附&#xff1a;Redis的命令行客户端 简介 本文章主要说一下Redis的安装与配置&#xff0c;学一门技术肯定是要从基础学起&#xff0c;其实所有的技术都很简单&…

关于Python爬虫使用代理的问题

当我们使用爬虫程序进行数据采集时&#xff0c;经常会遇到一些网站对爬虫的限制&#xff0c;例如IP封禁、访问频率限制等。为了解决这些问题&#xff0c;我们可以使用代理服务器来进行爬虫操作。本文将介绍爬虫代理的相关知识。 一、什么是爬虫代理&#xff1f; 爬虫代理是指…

IntelliJ IDEA 统一设置编码为utf-8编码 及 jar包运行指定UTF-8

文章目录 一、背景二、解决方法1.修改项目编码格式统一为UTF-82.将项目中的.idea文件夹中的encodings.xml文件中的编码格式改为uft-83.File->Settings->Build,Execution,Deployment -> Compiler -> Java Compiler5. java -jar xxx 命令里面添加UTF-8 编码 一、背景…

笔记-编程语言实现模式(Language Implementation Patterns)

第1章 语言应用初探 Lanugage Applications Cracked Open 1.1 大局观 The Big Picture 主要思想&#xff1a;文件读取部分对输入内容进行“识别”&#xff0c;并输出数据结构作为中间表示&#xff08;intermediate representation&#xff0c;IR&#xff09;&#xff0c;供其…