【云原生、Kubernetes】Kubernetes核心概念理解

这篇具有很好参考价值的文章主要介绍了【云原生、Kubernetes】Kubernetes核心概念理解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

首先我们要掌握 Kubernete 的一些核心概念。 这些核心可以帮助我们更好的理解 Kubernetes 的特性和工作机制。
【云原生、Kubernetes】Kubernetes核心概念理解,云原生,# 你好 Kubernetes,云原生,kubernetes,容器,Kubernetes核心概念

集群组件

首先,Kubernetes 集群中包含2类节点,分别是:master控制节点和node工作节点。

master 控制节点 负责管理整个集群系统,可以说它是集群的网关和中枢,是Kubernetes 的大脑和心脏。

node 节点是Pod运行的地方,运行用户实际部署的应用。node的数量是很多的,构成了资源池,管理池化的资源就更加得心应手了。

master控制节点的组件

master控制节点中有4个核心组件,分别是kube-apiserver、kube-schedule、kube-controller-manager、ETCD。

  1. kube-apiserver 是Kubernetes Master节点中最核心的组件之一,它提供了RESTful API接口,用于管理和操作集群中的资源和应用程序。所有的Kubernetes操作都必须通过API Server进行,例如创建Pod、Service、Deployment等对象,以及获取集群的状态信息等。
  2. ETCD 是Kubernetes一致性和高可用的保证。它是一个分布式键值存储系统,它是Kubernetes集群中最重要的数据存储组件之一。etcd负责存储集群中的所有配置信息、状态信息和事件日志等数据,从而保证了Kubernetes集群的高可用性和可靠性。
  3. kube-controller-manager是Kubernetes Master节点中的另一个重要组件,它负责管理集群中的控制器对象,例如ReplicationController、Deployment、StatefulSet等。Controller Manager会自动监测集群中的资源状态,并根据预设的规则来执行相应的操作,例如创建新的Pod副本、更新Deployment的版本号等。
  4. kube-scheduler是Kubernetes Master节点中的第三个组件,它负责将新创建的Pod调度到合适的Node上运行。kube-scheduler会根据Pod的需求和Node的资源情况来选择最佳的调度策略,从而保证了Pod的负载均衡和高可用性。

这四个核心组件运行在集群的Pod里,我们可以通过 kubectl 命令查看这几个组件的运行状态,命令如下:

kubectl get pod -n kube-system

node 工作节点中的组件

node工作节点中有3个核心的组件,分别是:kubelet、kuber-proxy 和 容器运行时。下面我们分别看看他们都是干什么的。

  1. kubelet 是Node节点中最核心的组件之一,它负责管理Pod的生命周期,例如创建、启动、停止和删除Pod等操作。kubelet会从API Server获取Pod的配置信息和状态信息,并将这些信息发送给Master节点进行管理和控制。

  2. Kube-proxy 是Node节点中的另一个重要组件,它负责为Pod提供网络代理服务,负责管理容器的网络通信,简单来说就是为 Pod 转发 TCP/UDP 数据包。Kube-proxy会监听Node节点上的网络接口,并根据Pod的需求来选择最佳的网络策略,例如负载均衡、故障转移等。

  3. 容器运行时 是Node节点中的第三个组件,它负责运行容器化应用程序。Kubernetes支持多种容器运行时,例如Docker、CRI-O、containerd等。容器运行时 在kubelet的指挥下与kubelet协同工作,管理Pod的生命周期,确保Pod能够正确地运行和调度。

从Master 和 Node节点看Kubernetes的大致工作流程

  1. 用户提交应用程序:用户可以通过命令行工具、API或者Web界面等方式提交应用程序,例如创建Pod、Service、Deployment等对象。

  2. API Server接收请求:当用户提交应用程序时,API Server会接收到相关的请求,并将这些请求转发给相应的控制器对象进行处理。

  3. Controller Manager处理请求:Controller Manager是Kubernetes中的一个控制器对象,它负责管理集群中的控制器,例如ReplicationController、Deployment、StatefulSet等。当API Server接收到请求时,Controller Manager会自动监测集群中的资源状态,并根据预设的规则来执行相应的操作。

  4. etcd存储数据:Controller Manager会将处理结果存储到etcd中,以便其他组件进行访问和查询。

  5. kubelet管理Pod:当Controller Manager处理完请求后,kubelet会根据请求的内容来创建、启动、停止和删除Pod等操作。

  6. Kube-proxy提供网络代理服务:Kube-proxy会监听Node节点上的网络接口,并根据Pod的需求来选择最佳的网络策略,例如负载均衡、故障转移等。

  7. Container Runtime运行容器化应用程序:当kubelet创建Pod时,Container Runtime会与kubelet协同工作,确保Pod能够正确地运行和调度。

Kubernetes的工作流程是一个复杂的过程,需要多个组件协同工作才能完成。从Master和Node节点的角度来看,Kubernetes的工作流程主要包括用户提交应用程序、API Server接收请求、Controller Manager处理请求、etcd存储数据、kubelet管理Pod、Kube-proxy提供网络代理服务以及Container Runtime运行容器化应用程序等步骤。

【云原生、Kubernetes】Kubernetes核心概念理解,云原生,# 你好 Kubernetes,云原生,kubernetes,容器,Kubernetes核心概念

操作对象

Pod 的理解

Pod是Kubernetes中最小的可部署单元,它包含了一个或多个紧密关联的容器。Pod可以共享网络和存储资源,并且可以在集群中进行调度和管理

Pod的设计使得应用程序可以在同一个物理主机上运行,从而提高了应用程序的性能和可靠性。在Kubernetes中,Pod是最基本的调度单位,所有的服务都必须被打包成Pod才能被调度到集群中。

Pod的主要特点包括:

  1. 隔离性:每个Pod都是独立的运行环境,它们之间相互隔离,不会互相干扰。这意味着在一个Pod中的容器崩溃或者出现问题时,不会影响到其他Pod中的容器。

  2. 可扩展性:Pod可以通过水平扩展来增加计算资源,从而提高应用程序的性能和可用性。当需要增加计算资源时,只需要创建更多的Pod即可。

  3. 轻量级:Pod比虚拟机更轻量级,因为它们不需要完整的操作系统和内核支持。这意味着Pod可以在更少的硬件资源上运行,从而降低了成本和复杂度。

  4. 可移植性:Pod可以在不同的节点上运行,从而提高了应用程序的可用性和容错性。如果一个节点出现故障,Kubernetes会自动将Pod迁移到其他节点上运行。

Pod的生命周期包括创建、启动、停止和删除等操作。当用户提交应用程序时,Kubernetes会根据应用程序的要求创建一个新的Pod,并将其调度到合适的节点上运行。当应用程序需要更新或者扩容时,Kubernetes会自动调整Pod的数量和配置,以满足应用程序的需求。

Service的理解

Service是Kubernetes中最常用的抽象概念之一,它定义了一个逻辑集合,其中包含了一组Pod。Service提供了一个稳定的IP地址和DNS名称,使得应用程序可以通过这个地址来访问Pod,而不需要关心Pod的具体位置和网络配置

Service的主要特点包括:

  1. 负载均衡:Service可以将请求分发到多个Pod上,从而实现负载均衡。当有多个Pod运行相同的应用程序时,Service可以自动将请求分发到不同的Pod上,从而提高应用程序的可用性和性能。

  2. 高可用性:Service可以提供高可用性,因为它可以在集群中自动检测Pod的状态变化,并将请求路由到健康的Pod上。如果一个Pod出现故障或者不可用,Kubernetes会自动将请求路由到其他健康的Pod上,从而保证了服务的可用性。

  3. 灵活性:Service可以根据应用程序的需求进行配置,例如可以选择使用负载均衡算法、设置超时时间等。这使得Service非常灵活,可以根据应用程序的需求进行定制化。

  4. 可扩展性:Service可以通过水平扩展来增加计算资源,从而提高应用程序的性能和可用性。当需要增加计算资源时,只需要创建更多的Service即可。

Service的生命周期包括创建、更新和删除等操作。当用户提交应用程序时,Kubernetes会根据应用程序的要求创建一个新的Service,并将其绑定到对应的Pod上。当应用程序需要更新或者扩容时,Kubernetes会自动调整Service的数量和配置,以满足应用程序的需求。

Volume 的理解

Volume是Kubernetes中的一种抽象概念,它用于管理存储资源。在Kubernetes中,Volume可以分为多种类型,例如Persistent Volume(PV)、Persistent Volume Claim(PVC)和EmptyDir等

  • Persistent Volume(PV)是一种持久化的存储资源,它可以在集群中被多个Pod共享。当一个Pod需要使用存储资源时,它可以通过PVC来请求PV。一旦PVC被创建,Kubernetes会自动创建一个PV,并将其挂载到Pod上。PV通常由管理员手动创建和管理,但也可以使用动态存储卷(Dynamic Provisioning)功能来自动创建和管理PV。
  • Persistent Volume Claim(PVC)是一种请求存储资源的抽象概念,它允许用户向集群中的PV发出请求。当一个Pod需要使用存储资源时,它可以通过PVC来请求PV。一旦PVC被创建,Kubernetes会自动创建一个PV,并将其挂载到Pod上。PVC通常由用户手动创建和管理,但也可以使用动态存储卷(Dynamic Provisioning)功能来自动创建和管理PVC。
  • EmptyDir是一种临时性的存储资源,它可以在Pod之间共享。当一个Pod需要使用存储资源时,它可以通过EmptyDir来请求存储资源。一旦请求被接受,Kubernetes会自动创建一个EmptyDir实例,并将其挂载到Pod上。EmptyDir通常用于短暂的存储需求,例如缓存数据或者临时文件等。

Namespace的理解

Namespace是Kubernetes中的一种抽象概念,它用于将集群中的资源隔离开来。在Kubernetes中,每个Namespace都拥有自己的一组资源,例如Pod、Service、ConfigMap等。这些资源只能在所属的Namespace中被访问和操作,而不能跨Namespace进行访问和操作

Namespace的主要特点包括:

  1. 隔离性:Namespace可以将集群中的资源隔离开来,使得不同的应用程序可以在同一集群中运行,而不会相互干扰。这有助于提高集群的安全性和管理效率。

  2. 可扩展性:Namespace可以方便地进行扩展和收缩,从而满足不同应用程序的需求。当需要增加计算资源时,只需要创建更多的Namespace即可;当不需要更多的计算资源时,只需要删除多余的Namespace即可。

  3. 灵活性:Namespace可以根据应用程序的需求进行配置,例如可以选择使用不同的命名规则、设置标签等。这使得Namespace非常灵活,可以根据应用程序的需求进行定制化。

  4. 可重用性:Namespace可以被多个应用程序共享,从而提高了资源的利用率和可重用性。当一个应用程序需要使用相同的资源时,它可以通过共享同一个Namespace来实现。

在实际应用中,Namespace通常用于以下场景:

  1. 多租户环境:在多租户环境中,不同的租户可能需要使用相同的资源,但是又需要保持隔离。这时可以使用Namespace来实现资源的隔离和共享。

  2. 微服务架构:在微服务架构中,不同的服务可能需要使用相同的资源,但是又需要保持隔离。这时可以使用Namespace来实现资源的隔离和共享。

  3. 容器编排:在容器编排中,不同的容器可能需要使用相同的资源,但是又需要保持隔离。这时可以使用Namespace来实现资源的隔离和共享。

其他抽象

ReplicaSet的理解

ReplicaSet是Kubernetes中的一种控制器,它用于确保指定数量的Pod副本在集群中运行。ReplicaSet提供了自动扩展和收缩高可用性可配置性可重用性等特点,是Kubernetes中最基本和最重要的控制器之一。在实际应用中,ReplicaSet通常用于确保应用程序的高可用性和可靠性,例如Web服务器、数据库服务器等。

当一个Pod被创建时,ReplicaSet会自动创建一个或多个Pod副本,并监控它们的状态。如果有任何一个Pod副本失败或者不可用,ReplicaSet会自动重启该Pod副本,以确保指定数量的Pod副本始终处于运行状态。

ReplicaSet的主要特点包括:

  1. 自动扩展和收缩:ReplicaSet可以根据需要自动扩展或收缩Pod副本的数量,从而满足应用程序的需求。当需要增加计算资源时,只需要创建更多的ReplicaSet即可;当不需要更多的计算资源时,只需要删除多余的ReplicaSet即可。

  2. 高可用性:ReplicaSet可以确保指定数量的Pod副本始终处于运行状态,从而提高了应用程序的可用性和可靠性。如果有任何一个Pod副本失败或者不可用,ReplicaSet会自动重启该Pod副本,从而保证了服务的可用性。

  3. 可配置性:ReplicaSet可以根据应用程序的需求进行配置,例如可以选择使用不同的标签、选择不同的调度器等。这使得ReplicaSet非常灵活,可以根据应用程序的需求进行定制化。

  4. 可重用性:ReplicaSet可以被多个Pod共享,从而提高了资源的利用率和可重用性。当一个Pod需要使用相同的资源时,它可以通过共享同一个ReplicaSet来实现。


🎉 如果喜欢这篇文章,点赞👍 收藏关注 ✅ 哦,创作不易,感谢!😀

【云原生、Kubernetes】Kubernetes核心概念理解,云原生,# 你好 Kubernetes,云原生,kubernetes,容器,Kubernetes核心概念文章来源地址https://www.toymoban.com/news/detail-541116.html

到了这里,关于【云原生、Kubernetes】Kubernetes核心概念理解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 本文将从云原生的概念、背景知识、Kubernetes架构及核心组件、应用场景、案例研究等方面深入剖析云原生课程的相关知识点

    作者:禅与计算机程序设计艺术 2020年,技术快速发展,云计算火爆。云原生领域也随之蓬勃发展。云原生已经成为大势所趋,大量企业都在逐渐转型云原生应用架构。国内外云服务厂商也纷纷推出基于Kubernetes的服务平台,而Kubernetes又是云原生开源技术体系的一部分。为了帮

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

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

    2024年02月11日
    浏览(29)
  • 【云原生 • Kubernetes】kubernetes 核心技术 - Service

    1. Service 的定义 Service 是 Kubernetes 的核心概念之一,创建一个 Service 可以为一组具有相同功能的容器应用提供一个统一的入口地址,并且将请求负载分发到后端的各个容器应用上。 完整 yaml 格式的 Service 定义文件如下: 2. Service 的基本用法 一般情况下,对外部提供服务的应用

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

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

    2024年02月10日
    浏览(32)
  • 【云原生】Kubernetes核心技术(下)

    博主昵称:跳楼梯企鹅 博主主页面链接: 博主主页传送门 博主专栏页面连接: 专栏传送门--网路安全技术 创作初心:本博客的初心为与技术朋友们相互交流,每个人的技术都存在短板,博主也是一样,虚心求教,希望各位技术友给予指导。 博主座右铭:发现光,追随光,

    2024年01月17日
    浏览(28)
  • kubernetes核心概念 controller

    controller用于控制pod 参考: https://kubernetes.io/zh/docs/concepts/workloads/controllers/ 控制器主要分为: Deployments 部署无状态应用,控制pod升级,回退 ReplicaSet 副本集,控制pod扩容,裁减 ReplicationController(相当于ReplicaSet的老版本,现在建议使用Deployments加ReplicaSet替代RC) StatefulSets 部署有状态应用

    2024年02月11日
    浏览(34)
  • Kubernetes:云原生时代的核心引擎

    在云计算飞速发展的今天,Kubernetes(简称K8s)凭借其强大的容器编排能力,迅速成为云原生时代的核心引擎。K8s不仅简化了容器化应用的部署与管理,还为企业提供了高效、可扩展的云原生应用架构。 K8s的核心特性在于其自动化和智能化的容器编排能力。它可以自动部署、

    2024年04月27日
    浏览(20)
  • 【云原生】Kubernetes临时容器

    特性状态: Kubernetes v1.25 [stable] 本页面概述了临时容器:一种特殊的容器,该容器在现有 Pod 中临时运行,以便完成用户发起的操作,例如故障排查。 你会使用临时容器来检查服务,而不是用它来构建应用程序 Pod 是 Kubernetes 应用程序的基本构建块。 由于 Pod 是一次性且可替

    2024年02月15日
    浏览(26)
  • 【云原生】Kubernetes容器编排工具

    目录 1. K8S介绍 1.1 k8s的由来 下载地址 1.2 docker编排与k8s编排相比 1.3 传统后端部署与k8s 的对比 传统部署 k8s部署  ​2. k8s的集群架构与组件 (1) Kube-apiserver (2)Kube-controller-manager  (3)Kube-scheduler   2.2 k8s的配置存储中心 2.3  k8s的Node 组件   (1)Kubelet   (2)Kube-Proxy 

    2024年02月10日
    浏览(28)
  • 【云原生】容器编排工具Kubernetes

    目录 一、 K8S介绍 官网地址: 1.1docker编排与k8s编排相比 1.2特性 1.3功能 二、K8S重要组件 2.1核心组件 (1)Kube-apiserver (2)Kube-controller-manager (3)Kube-scheduler (4)Node ①kubelet ②kube-proxy ③docker (5)etcd 2.2Kubernetes工作原理 三、Pod 3.1 Pod控制器 (1)Deployment (2)ReplicaSet (3)

    2024年02月09日
    浏览(32)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包