图解Kubernetes

k8s 图解大全 K8s 详细图解大全 阅读详情

最近,我开始了 Kubernetes 之旅,并且希望更好地了解其内部原理。我在这些方面做了一个演讲

容器

在我们尝试了解 Kubernetes 之前,让我们花一点时间来澄清容器是什么,以及它们为什么如此受欢迎。

毕竟,在不知道容器是什么的情况下谈论容器编排器(Kubernetes)是没有意义的!

容器

“容器”是一个用来存放你放入的所有物品的容器。像应用程序代码,依赖库以及它的依赖关系一直到内核。

这里的关键概念是隔离。将所有内容与其余内容隔离开,以便你更好地控制它们。

容器提供三种隔离类型:

  • 工作区隔离(流程,网络)

  • 资源隔离(CPU,内存)

  • 文件系统隔离(联合文件系统)

 

考虑一下像 VM 一样的容器。它们精简,快速(启动)且体积小。而且,所有这些都没有构建起来。

取而代之的是,他们使用 Linux 系统中存在的结构(例如 cgroups,namespaces)在其上构建了一个不错的抽象。

现在我们知道什么是容器了,很容易理解为什么它们很受欢迎。不仅可以分发应用程序的二进制/代码,还可以以实用的方式交付运行应用程序所需的整个环境。

因为可以将容器构建为非常小的单元,解决“在我的机器上工作”问题的完美解决方案。

什么时候使用 Kubernetes?

容器一切都很好,软件开发人员的生活现在要好很多。那么,为什么我们需要另一项技术,如 Kubernetes 这样的容器编排工具呢?

当进入某个状态时,你需要用到它来管理众多容器。

问:我的前端容器在哪里,我要运行几个?

答:很难说,使用容器编排工具。

问:如何使前端容器与新创建的后端容器对话?

答:对 IP 进行硬编码,或者,使用容器编排工具。

问:如何进行滚动升级?

答:在每个步骤中手动握住,或者,使用容器编排工具。

为什么我更喜欢 Kubernetes

有很多容器编排工具,例如 Docker Swarm,Mesos 和 Kubernetes。我的选择是 Kubernetes(因此有了本文),因为 Kubernetes 是……

就像乐高积木一样,它不仅具有大规模运行容器编排所需的组件,而且还具有使用自定义组件交换内部和外部不同组件的灵活性。

想要拥有一个自定义的调度程序,也很方便。需要具有新的资源类型,编写一个 CRD。此外,社区非常活跃,并且工具迅速发展。

Kubernetes 架构

 

每个 Kubernetes 集群都有两种类型的节点,主节点和工作节点。顾名思义,主节点是在工作程序运行有效负载(应用程序)的地方控制和监视群集。

集群可以与单个主节点一起工作,但是最好拥有三个以实现高可用性(称为 HA 群集)。

让我们仔细看一下主节点及其组成:

①etcd:数据库,用于存储有关 Kubernetes 对象,其当前状态,访问信息和其他集群配置信息的所有数据。

②API Server:RESTful API 服务器,公开端点以操作整个集群。主节点和工作节点中的几乎所有组件都与该服务器通信以执行其职责。

③调度程序:负责决定哪个有效负载需要在哪台机器上运行。

④控制管理器:这是一个控制循环,它监视集群的状态(通过调用 API 服务器来获取此数据)并采取措施将其置于预期状态。

⑤kubelet:是工作节点的心脏。它与主节点 API 服务器通信并运行为其节点安排的容器。

⑥kube-proxy:使用 IP 表/IPVS 处理 Pod 的网络需求。

⑦Pod:运行所有容器的 Kubernetes 的功劳。如果没有 Pod 的抽象,就无法在 Kubernetes 中运行容器。Pod 添加了对容器之间的 Kuberenetes 联网方式至关重要的功能。

快乐的 Pod

 

一个 Pod 可以有多个容器,并且在这些容器中运行的所有服务器都可以将彼此视为本地主机。

这使得将应用程序的不同方面分离为单独的容器,并将它们全部作为一个容器加载在一起非常方便。

有多种不同的 Pod 模式,例如 Sidecar,Proxy 和大使,可以满足不同的需求。查看这篇文章[1]可以了解有关它们的更多信息。

Pod 网络接口提供了一种将其与同一节点和其他工作节点中的其他 Pod 通信的机制。

而且,每个 Pod 都将分配有自己的 IP 地址,kube-proxy 将使用该 IP 地址来路由流量,而且此 IP 地址仅在群集中可见。

所有容器也都可以看到安装在容器内的卷,有时可以使用这些卷在容器之间进行异步通信。

例如,假设你的应用是照片上传应用(例如 Instagram),它可以将这些文件保存在一个卷中,而同一 Pod 中的另一个容器可以监视该卷中的新文件,并开始对其进行处理以创建多种尺寸,将它们上传到云存储。

控制器

在 Kubernetes 中,有很多控制器,例如 ReplicaSet,Replication Controllers,Deployments,StatefulSets 和 Service。

这些是以一种或另一种方式控制 Pod 的对象。让我们看一些重要的。

ReplicaSet

ReplicaSet 做自己擅长的事情,复制 Pod

该控制器的主要职责是创建给定 Pod 的副本,如果 Pod 因某种原因死亡,则会通知该控制器,并立即跳入操作以创建新的 Pod。

Deployment

试图控制 ReplicaSet 的部署(头发凌乱)

部署是一个高阶对象,它使用 ReplicaSet 来管理副本。它通过放大新的 ReplicaSet 和缩小(最终删除)现有的 ReplicaSet 来提供滚动升级。

Service

表示为无人机的服务,将数据包传递到相应的 Pod

服务是一个控制器对象,其主要职责是在将“数据包”分发到相应节点时充当负载平衡器。

基本上,它是一种控制器构造,用于在工作节点之间对相似的 Pod(通常由 Pod 标签标识)进行分组。

假设你的“前端”应用程序想与“后端”应用程序通信,则每个应用程序可能有许多正在运行的实例。

你不必担心对每个后端 Pod 的 IP 进行硬编码,而是将数据包发送到后端服务,然后由后端服务决定如何进行负载平衡并相应地转发。

PS:请注意,服务更像是一个虚拟实体,因为所有数据包路由均由 IP 表/IPVS/CNI 插件处理。

它只是使它更容易被视为一个真正的实体,让它们脱颖而出以了解其在 Kubernetes 生态系统中的作用。

Ingress

 

进入一个浮动平台,所有数据包都通过该平台流入集群

入口控制器是与外界联系的单点,可以与集群中运行的所有服务进行对话。这使我们可以轻松地在单个位置设置安全策略,监视甚至记录日志。

 

LVGL高效加载外部Flash图片资源的实现与优化 本文深入探讨了在嵌入式UI开发中,如何为LVGL高效加载外部Flash中的图片资源。针对内部Flash容量不足的痛点,详细解析了LVGL的图片处理原理,并对比了内存映射与流式解码两种主流实现方案。文章重点提供了性能优化技巧与实战避坑指南,旨在帮助开发者实现流畅的图片加载体验,解决SPI Flash读取慢、内存占用高等核心挑战。 阅读详情

相关推荐

PTA 7-8 暴力小学(二年级篇)-求出4个数字 (10分)java

PTA 7-8 暴力小学(二年级篇)-求出4个数字 (10分)java 小博是新城小学二年级学生,这孩子人很老实,数学、语文成绩都是中等。不过一旦坐在电脑前,写起代码来,则有些霸气侧漏,尤其擅长各种暴力方法。本题就是数学莫老师的题目之一,请你和小博一起暴力求解吧。 输入格式: 第一行给出这个和N(图中例子的和N为2000)。 输出格式: 第一行输出所有解的数目K,随后K行按照DCBA 4位数字从...

qryzhfj的博客 2187

图解 Kubernetes(k8s)

1. 前言 Kubernetes是Google开源的容器集群管理系统,提供应用部署、维护、扩展机制等功能,利用Kubernetes能方便地管理跨机器运行容器化得应用。真实的生产环境应用会包含多个容器,而这些容器还很可能会跨越多个服务器主机部署。Kubernetes 提供了为那些工作负载大规模部署容器的编排与管理能力。Kubernetes 编排让你能够构建多容器的应用服务,在集群上调度或伸缩这些容器,以及管理它们随时间变化的健康状态。 2. 容器 在了解 Kubernetes 之前,让我们先了解一个容器。因为

不见其长,日有所长 1694

LED单元板驱动(HUB75接口)

开始之前先吐槽一下,搜这个的资料。要么都是Arduino,要么单片机的收费。小小的一个LED单元板,凭什么? 用Arduino是你速度快还是我ST,树莓派不好用?收费更离谱,这点东西还藏私?给你个中指凸。把原理都写出来看你怎么收费。 一、接口定义及原理 如图,有两个RGB通道,共占用6个IO。剩下的ABCDE为地址通道,LAT为行数据锁存通道,CLK为数据时钟,OE为低电平使能LED显示。图片这里没有E,证明它是16扫的,有E就会把B上面的地改为E。这样就是5位,2的5次方32扫。1.

a3748622的博客 3万+

10 张图解 K8S CNI Calico 网络模型原理与功能实战

Calico` 是一个联网和网络策略供应商。Calico 支持一套灵活的网络选项,因此你可以[根据自己的情况选择最有效的选项,包括非覆盖和覆盖网络,带或不带 BGP。

2201_75362610的博客 2776

benders分解算法 逻辑思路整理(加星)

一般我们经常可以看到的是经典的benders,此处我也结合经典的benders梳理下思路。

sinat_41348401的博客 7980

告别第三方插件:官方Fused Library如何重塑Android库的合并与发布流程

本文详细介绍了Android官方推出的Fused Library如何替代第三方fat-aar插件,优化Android库的合并与发布流程。通过原生支持、智能依赖管理等优势,Fused Library解决了版本兼容性、依赖传递等核心痛点,提供了更稳定高效的开发体验。文章还提供了迁移实操指南和工程实践建议,帮助开发者顺利过渡到官方方案。

weixin_42561040的博客 252

Kubernetes (k8s) 图解入门

Kubernetes是什么 功能 特点 容器集群管理系统 对计算资源进行了更高层次的抽象,减轻应用程序在云上运行的负担 快速部署应用 快速扩展应用 无缝对接新的应用功能 ...

Fannie_Peng的博客 2176

保姆级避坑指南:用Keil和J-Flash搞定凌思微LE5010蓝牙芯片的首次程序下载

本文提供了一份详细的保姆级避坑指南,帮助开发者使用Keil和J-Flash工具完成凌思微LE5010蓝牙芯片的首次程序下载。文章重点解决了算法文件混淆、协议栈漏烧和仿真器连接异常等常见问题,并详细介绍了开发环境配置、协议栈烧录和下载接口的物理层奥秘,助力开发者高效完成蓝牙开发任务。

weixin_28739079的博客 466

玩转K8s网络:16张图带你从小白到专家

来源:云原生百宝箱本文将探讨 Kubernetes 中的网络模型,以及对各种网络模型进行分析。Underlay Network Model什么是 Underlay Network底层网络 Underlay Network 顾名思义是指网络设备基础设施,如交换机,路由器, DWDM 使用网络介质将其链接成的物理网络拓扑,负责网络之间的数据包传输。Underlay Networkunderlay ne...

关注微信公众号【开源Linux】,后台回复『10T』,领取10T学习资源大放送,涵盖Linux、虚拟化、容器、云计算、网络、Python、Go等书籍和视频 672

数据架构师必看:大数据时代的架构演进与实践

数据架构是企业数据资产的“骨架”——它决定了数据能多快被处理、多准被分析、多安全被存储。本文将聚焦从传统架构到大数据架构的关键转折点,覆盖技术选型、典型场景、落地挑战三大核心命题,帮助读者建立“演进思维”而非“固定思维”。本文将按“历史演进→核心概念→技术原理→实战案例→趋势展望”的逻辑展开,用“超市仓库升级”贯穿始终,让抽象的技术概念具象化。传统数据仓库:精但小,适合结构化、批量分析。大数据架构:大但乱,适合全类型、海量数据存储。流批一体:解决实时+批量的效率问题。湖仓一体。

AI Agent Harness Engineering 913

《Zephyr OS 入门与实战》第15章:LoRaWAN 集成

【代码】《Zephyr OS 入门与实战》第15章:LoRaWAN 集成。

2301_79143213的博客 604

K8S核心图解

作者张乘辉,擅长消息中间件技能,负责公司百万 TPS 级别 Kafka 集群的维护,作者维护的公号「后端进阶」不定期分享 Kafka、RocketMQ 系列不讲概念直接真刀真枪的实战总结以及细节上的源码分析;同时作者也是阿里开源分布式事务框架 Seata Contributor,因此也会分享关于 Seata 的相关知识;当然公号也会分享 WEB 相关知识比如 Spring 全家桶等。内容不一定面面俱到,但一定让你感受到作者对于技术的追求是认真的!公众号:后端进阶。

m0_61570062的博客 934

RTT Studio和Cubemx联合开发

1. RTT studio创建工程 创建工程 ## 创建完成以后的目录结构 2. 配置CubuMx 双击cubumx的图标打开CubeMx 配置时钟 生成代码 构建后的代码结构 编译代码满屏错误:不要慌 3. 新增脚本 新建scons脚本文件 SConscript 脚本内容如下 import os from building import * cwd = GetCurrentDir() src = Glob('*.c') # add cubemx drivers src = Split('''

Car12 1561

图解 K8s 核心概念和术语

图解 K8s 核心概念和术语

qq_41490913的博客 266

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

二、Kubernetes (k8s) 内网集群的搭建详细图解

一、环境准备 由于k8s 集群比较吃配置, 建议使用 “按量计费” 来进行学习与测试,三台 4核8G 的费用大概再 1.6元 /小时, 还是比较便宜的(具体操作请看:云服务器购买按量付费实例,并搭建私有网络图解)。如果想购买服务器,可以看下这个, 一年也就168,配置很高,更划算!!【腾讯云】云产品限时秒杀,爆款2核4G云服务器,首年168元 三台云服务器、配置:4核8G 三台服务器内网互通(内网可以互相访问 VPC) 系统:CentOS 8.0 每台机器都设置成不同的hostname .....

胖太乙 6293

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

三、公网环境搭建Kubernetes (k8s) 集群的详细图解

上一节介绍了 Kubernetes (k8s) 内网集群的搭建详细图解 ,也介绍了云服务器按量付费的租赁方式,但是这种方式有点不好之处就是,每次停机重启之后 , IP地址就变了,导致XShell 连接工具每次要改IP, 很是麻烦, 好在我这个人比较能薅羊毛,于是在腾讯云, 百度云, 阿里云上面都薅了一波羊毛。【想薅羊毛看这里:“羊毛”】。所以趁着休息,将手头的几台云服务器搭建成 k8s 集群,由于这几台云服务属于不同的云服务厂商,无法搭建局域网环境的 k8s 集群,故笔者搭建的是公网环境的 k8s 集群。我

胖太乙 5596

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

k8s简单的指令以及图解

docker 和 k8s的简单指令

软件Java开发工程师 408

K8s 集群网络结构图解

Ingress则进一步扩展能力,基于七层规则(如域名、路径)将外部流量路由至不同Service,配合控制器(如Nginx Ingress)实现金丝雀发布和流量镜像。跨节点通信依赖CNI插件(如Calico、Flannel)构建的Overlay网络,数据包经过VXLAN或IPIP隧道封装,穿透物理网络实现互通。本文将通过图解形式,拆解K8s集群网络的底层逻辑,帮助开发者掌握跨节点、跨服务的流量流转奥秘。通过以上维度的解析可见,K8s网络模型通过分层抽象,将复杂的物理网络转化为开发者友好的逻辑视图。

mftzyc_977的博客 274

图解Kubernetes Service

在 Kubernetes 中 Service 主要有4种不同的类型,其中的 ClusterIP 是最基础的,如下图所示: 当我们创建一个 NodePort 的 Service 时,它也会创建一个 ClusterIP,而如果你创建一个 LoadBalancer,它就会创建一个 NodePort,然后创建一个 ClusterIP 此外我们还需要明白 Service 是指向 pods 的,Service 不是直接指向 Deployments 或 ReplicaSets,而是直接使用 labels 标签指向

weixin_44692256的博客 171

KUBERNETES NODEPORT、TARGETPORT、PORT、CONTAINERPORT图解

https://www.cnblogs.com/faithH/p/12103713.html

qq_25705173的博客 259

k8s删除deployment_图解kubernetes控制器Deployment核心机制

Deployment是k8s中部署更新的关键实现,今天我们一起初探下其关键机制包括: 暂停、回滚、扩缩容、更新策略的核心实现1. 基础概念Deployment本质上其实只是一种部署策略,在了解其实现之前,先简单介绍一下部署系统里面常见的概念,Deployment里面的各种参数和设计其实也都是围绕着这些展开的1.1 ReplicaSetDeployment本身并不直接操作Pod,每当其更新...

weixin_39548787的博客 416

k8s Service的类型和实现流程图解

学亮编程手记 943

图解k8s

为了加深对k8s的概念理解,博主整理了k8s的架构图,相关的概念,可以参考之前写的博客《k8s教程(03)-基本概念和术语》。

阿甘兄 791
上一篇: 动画讲解平衡二叉树AVL
下一篇: 深度:一文看懂Linux内核!Linux内核架构和工作原理详解
土豆西瓜大芝麻
博客等级 码龄18年 1189粉丝 238原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值