K8S深度解析:从入门到精通的全方位指南

目录

  一、Kubernetes简介

二、Kubernetes的核心作用

三、Kubernetes架构图例

四、Kubernetes核心概念

Harbor仓库概述:

Master----管理组件:       

API Server(集群之心):

Scheduler(调度大师):

ControllerManager(集群管家):

Etcd(集群记忆库): 

Node---计算节点

Kubelet(节点守护者):

Kube-proxy(网络调度师):

Runtime(容器铸造师):        

K8S常用核心概念

Cluster(集群)

Container(容器)

Pod(部署单元)

Service(服务)

Label(标签)

Namespace(名称空间)

Deployment(资源对象)


 一、Kubernetes简介

        K8S,全称Kubernetes,是一个开源的容器编排系统,它旨在自动化容器化应用程序的部署、扩展和管理。随着云原生技术的兴起,K8S已成为现代应用开发和运维领域的重要工具之一。

        K8S的出现背景在于,随着云计算和容器技术的快速发展,企业面临着越来越多的挑战,如如何高效地管理大量容器、如何确保应用程序的高可用性和可扩展性、如何简化复杂的部署和运维流程等。K8S通过提供一套强大的容器编排功能,帮助企业解决了这些问题。

二、Kubernetes的核心作用

  • K8S能够自动化地管理容器的生命周期,包括创建、调度、更新和销毁等过程。它通过智能的调度算法,将容器分配到最合适的节点上运行,以最大化资源利用率和提高应用程序的性能。
  • K8S提供了丰富的服务发现和负载均衡功能,使得容器之间可以方便地相互通信,并且能够自动处理容器的故障转移和扩展。这大大简化了应用程序的架构设计和运维管理。
  • K8S还支持滚动更新和回滚机制,可以在不停机的情况下对应用程序进行升级和维护,减少了停机时间和业务风险。
  • K8S还提供了丰富的扩展性和自定义性,通过插件和自定义资源等机制,可以轻松地集成各种云服务和第三方工具,满足企业不同的需求和场景。

三、Kubernetes架构图例

四、Kubernetes核心概念

Harbor仓库概述:

        Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器。它在Docker Distribution的基础上增加了一些企业必需的功能特性,例如安全、标识和管理等,从而满足了企业对于镜像仓库的需求。

        在K8S中使用Harbor仓库不是必须的,但使用它可以带来诸多好处,特别是在安全性、镜像复制和分发、管理便携性以及高级功能支持方面,这些优势使得不管是在项目中还是在企业构建和运行容器化应用时成为重要选择。

Master----管理组件:       

  • API Server(集群之心):
    • 该组件作为管理节点中的核心,主要提供了一系列对外API接口为用户与K8S中组件通信,此外该API还可用于创建、修改、删除和查询各种资源对象。该接口还提供认证与授权功能,为接入集群的提供了安全屏障。
    • 最后,它还有数据存储和同步,使用Etcd作为默认数据存储后端,集群状态信息都在其中,它也掌管控制器的调度,负责接收Replicaiton Controller、Deployment等控制器的指令,并根据需求来创建、更新或删除相应的资源对象。
  • Scheduler(调度大师):
    • 该组件作为K8S中的资源分配大总管,它会根据每个Pod的资源请求(如CPU、内存)以及节点当前的可用资源情况,选择合适的Node来运行Pod,并且考虑Pod的调度约束条件以及服务策略的阶段性执行,来保证Pod的特定运行及服务稳定性。
  • ControllerManager(集群管家):
    • 该组件作为管理节点中的大总管,负责集群内部的管理控制中心,由负责不同资源的多个Controller构成,共同负责集群内的Node、Pod等所有资源的管理,并且如当通过Deployment创建的某个Pod发生异常退出时,RS Controller便会接受并处理该退出事件,并创建新的Pod来维持预期副本数。
  • Etcd(集群记忆库): 
    • 该组件作为K8S中存储集群的配置数据,包括集群状态、配置选项、服务发现信息、网络配置等,并且该存储具有高可用性,当其Etcd集群中Leader节点失效,它会自动进行Leader选举,选出新的Leader节点,确保集群的可用性。

Node---计算节点

  • Kubelet(节点守护者):
    • 它是运行在每个节点上的主要组件,它负责管理和维护该节点上的PodS以及提供Kubernetes运行时环境,它会定期与API Server通信,接受来自Master组件的指令,根据这些指令来管理节点上的Pods。Kubelet负责监视分配该节点的Pods,确保它们正常运行,挂载Pods所需的Volumes;Kubelet会负责从API Server获取分配给该节点的Pods所需的Secrets,并将其下载到节点的本地文件系统中。
    • Kubernetes不直接管理容器,而是依赖于容器运行时来执行容器的生命周期操作,当需要创建或启动一个容器时,kubelet会发送指令给容器运行时,容器运行时随后会负责拉取容器镜像、创建容器并启动它。Kubelet会根据负责的Pod发送Liveness探针来检查容器的健康状态,如果在规定时间内,容器不再响应探针,则它可能已经被“挂起”或“崩溃”,并且不再提供正常的服务,然后Kubelet会根据Pod的重启策略来决定是否重启该容器。
  • Kube-proxy(网络调度师):
    •         它作为K8S中网络的通信枢纽,负责K8S中服务发现、流量转发、负载均衡等主要功能。它通过监听API Server中Service等服务对象的变化,来记录该服务的地址信息。它根据Service服务对象的定义信息,可以将到达服务的流量通过简单的负载均衡算法来转发到不同的Pod实例上。
  • Runtime(容器铸造师):        
    •         它在K8S作为重要组件,负责K8S中的资源隔离,确保每个容器拥有独立的网络、文件系统、进程空间等,从而避免容器之间的资源竞争和干扰。它也提供容器运行时所需的运行环境和依赖项,确保人容器中的应用程序可以正启动运行。最后,K8S中容器都具有生命周期,容器生命周期到期自动销毁,出现问题暂停等操作,这也是由Runtime来负责。

K8S常用核心概念

  • Cluster(集群)

    • 集群,通常指的是多台计算机或服务器的组合,它们共同工作以提供更高的可用性、可靠性和可伸缩性。通过将资源汇集到一起,并使它们在某些方面作为一个整体来操作,集群技术能够提供比单一计算机更强大的处理能力和更高的数据冗余。

  • Container(容器)

    • 容器是一种轻量级的、可移植的、自包含的软件打包技术,用于将应用程序及其所有依赖项打包在一起,以确保应用程序在任何环境中都能以相同的方式运行。

  • Pod(部署单元)

    • Pod是K8s中最小的部署单元,它包含一个或多个容器,这些容器共享存储、网络、以及容器的运行配置。Pod中的容器运行在同一个主机上,可以相互通信。

  • Service(服务)

    • Service定义了一种策略,将访问Pod的请求转发到后端集群中的某个Pod实例上。Service与Pod Endpoint建立关联关系,对外提供服务。

  • Label(标签)

    • Label是附加到K8s对象(如Pod)上的键值对,用于组织和选择对象子集。

  • Namespace(名称空间)

    • Namespace为K8s集群提供虚拟的隔离作用,不同的Namespace的资源是完全隔离的。

  • Deployment(资源对象)

    • Deployment是K8s中的一种资源对象,它用来确保Pod副本的数量始终与预期的数量相同。当Pod的副本数量少于预期时,Deployment会自动创建新的Pod。

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

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

相关文章

基于Transformer深度学习的翻译模型(英->中)源码系统

第一步:Transformer介绍 Transformer是一种基于注意力机制的序列到序列模型,它在机器翻译任务中表现出色并逐渐成为自然语言处理领域的主流模型。Transformer模型的核心思想是使用自注意力机制(self-attention)来捕捉输入序列中各…

Redis系列:内存淘汰策略

1 前言 通过前面的一些文章我们知道,Redis的各项能力是基于内存实现的,相对其他的持久化存储(如MySQL、File等,数据持久化在磁盘上),性能会高很多,这也是高速缓存的一个优势。 但是问题来了&am…

如果通过Glide 设置图片圆角

要给图片设置一个圆角,通常方法是在ImageView 标签外添加一个CardView 标签,然后设置圆角值,但是今天遇到一个问题就是 RecyclerView Item 中这样操作的话会遇到这样的一个报错: Cannot call this method while RecyclerView is computing a layout or scrolling androidx.rec…

RLC防孤岛负载测试,你了解多少?

RLC防孤岛负载测试是一种用于检测并防止电力系统中出现孤岛现象的测试方法。孤岛现象是指在电网故障或停电的情况下,部分电网与主电网断开连接,形成一个独立的、不受控制的电力系统。这种情况下,如果不及时切断与孤岛的连接,可能会…

HarmonyOS 应用开发——入门

首先当然是华为的官方文档了,要认真学习: https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V2/start-overview-0000001478061421-V2 不想花时间看,可以看我下面总结的干货,哈哈 第一个问题:stage架构和fa架构的区…

GPU服务器和普通服务器有何区别?

众所周知,服务器是网络中的重要设备,要接受少至几十人、多至成千上万人的访问,因此对服务器具有大数据量的快速吞吐、超强的稳定性、长时间运行等严格要求。 GPU服务器和普通服务器的主要区别在于硬件配置和适用场景,特别是处理器…

应急行业的智能安全帽(高端)

前面介绍了低端、中端安全帽,接着再讲讲高端安全帽。做高端安全帽的企业非常少,估计一只手都数的出来。确实也和智能安全帽这个领域体量有关系,并且他有一个新的“劲敌”——智能眼镜从其他领域瓜分原属于他的市场,这些都是题外话…

Cadence OrCAD学习笔记(1)OrCAD入门介绍

最近换份工作主要用到Cadence,之前都是用AD居多,所以现在也开始记录下Cadence学习过程,方便后面复习。 参考教程: OrCAD视频教程第1期:OrCAD入门介绍_哔哩哔哩_bilibili 本期主要介绍OrCAD的主要部件 其中用的较多的…

【软件开发规范篇】Git分支使用规范

作者介绍:本人笔名姑苏老陈,从事JAVA开发工作十多年了,带过刚毕业的实习生,也带过技术团队。最近有个朋友的表弟,马上要大学毕业了,想从事JAVA开发工作,但不知道从何处入手。于是,产…

软考之零碎片段记录(二十七)+复习巩固(十三、十四)

学习 1. 案例题 涉及到更新的。肯能会是数据流的终点E, P, D 数据流转。可能是 P->EP->D(数据更新)P->P(信息处理)D->P(提取数据信息) 2. 案例2 补充关系图时会提示不增加新的实体。则增加关联关系 3. 案例3 用例图 extend用于拓展,当一个用例…

磁盘未格式化,数据恢复大揭秘

一、磁盘未格式化现象概述 在日常使用电脑的过程中,我们有时会遇到磁盘未格式化的提示,这意味着我们的磁盘突然间变得不可识别,所有的数据和文件都似乎消失了。这种情况常常发生在外接硬盘、U盘等存储设备上,给我们的工作和生活带…

【Python】爬虫-基础入门

目录 一、什么是爬虫 二、爬虫的主要用途 三、学会爬虫需要掌握的技能 四、爬虫使用的语言 五、编写爬虫需要的库,以python为例 六、爬虫示例-python 示例一 示例二 示例三 一、什么是爬虫 爬虫,又称网络爬虫或网页爬虫,是一种用来自…

RAG 的是与非、Rewrite 和 Rerank

有时候,我觉得人类还真是种擅长画地为牢的动物,因为突然发现,当人们以文化/理念的名义形成团体/圈子的时候,其结局都不可避免地走向了筛选和区分的道路。或许,大家都不约而同地笃信,在成年人的世界里,那条不成文的社交潜规则——“只筛选不教育,只选择不改变”。与千百…

16.Blender 基础渲染工作流程及安装ACES

安装插件和菜单栏设置 在菜单栏的编辑里打开偏好设置 里面的插件界面 搜索node 给第三个打勾 点击安装,导入cat插件 安装完后,一定要打勾,选择上cat插件 这样N窗口才会显示MMD选项 导入场景 点击打开 把输出模式的帧率改为30fps 按…

Java学习1:java入门

java入门 1.介绍Java java——sun公司——被甲骨文收购 一开始叫Oak,后期改名为java; java之父詹姆斯高斯林 企业级应用开发 JavaSE JavaEE JavaME 高级编程语言 2.搭建开发环境 JDK8,JDK11,JDK17————>LTS长期支持版 ps:在…

效率工具RunFlow完全手册之局域网传输篇

本篇将向您介绍如何使用RunFlow在局域网(又称内网)内传输文件,同步剪贴板,无论是家庭局域网还是办公室局域网,都能轻松搞定文件传输以及剪贴板同步,如果您还没有安装RunFlow,可点这里去下载。 为…

有效三角形的个数 ---- 双指针

题目链接 题目: 分析: 这道题的意思就是将数组的元素, 拿出三个数, 能构成三角形就是有效的判断是否能构成三角形的条件: 两边之和大于第三边, 我们只需找到三个数中最小的两个数之和是否大于第三边, 大于则可以构成三角形解法一: 暴力解法, 即找到所有的三元组, 并挨个判断,…

X86与FPGA相结合,基于PIB的AI开发——人体姿态识别

人体姿态估计是计算机视觉领域中用于理解和分析人类行为的一个关键技术。它主要涉及到检测和识别图像或视频中人体的各个关键点,并预测这些关键点之间的空间关系,从而构建出人体的骨架模型。 本文将介绍基于PIB板的人体姿态估计案例。这是一个交互式的实…

Kotlin语法入门-数据类、伴生类、枚举类(9)

Kotlin语法入门-数据类、伴生类、枚举类(9) 文章目录 Kotlin语法入门-数据类、伴生类、枚举类(9)九、数据类、伴生类、枚举类1、数据类2、伴生类2.1、定义伴生类2.2、JvmStatic注解2.3、const关键字 3、枚举类3.1、定义3.2、传参3.3、继承与实现 九、数据类、伴生类、枚举类 1…

适用于Windows和Mac的十大误删除数据恢复软件

数据恢复是从辅助存储或可移动文件中找回丢失、删除或损坏的数据的过程。数据丢失的原因有很多。因此,有必要恢复已删除的数据。有各种可用的软件工具,使用户能够恢复任何类型的已删除数据。但是,任何数据恢复都有四个主要阶段。他们正在修复…