k8s-架构原理

k8s是google公司使用go语言开发,借鉴borg系统开发出来的。

k8s架构介绍

k8s集群服务器主要分为两类角色,分别为master和node。

master节点包含如下组件:

api server: k8s网关,所有指令请求都必须经过apiserver。
scheduler: 调度器 根据调度算法,将请求资源调度到某一个node节点。
controller: 控制器,维护k8s资源对象。
etcd: 分布式存储组件,用于存储资源对象。

node节点包含如下组件:

docker: 运行容器的基础环境,容器引擎。
kubelet: 每个node节点都存在一份,在node节点上的资源操作指令均由kubelet执行,从etcd扫描相关请求,在节点上执行请求。

调度过程:scheduler不直接对node节点进行资源操作,而是将相关操作通过apiserver将信息指令数据存储到etcd,kubelet扫描etcd,获取相关数据信息执行指令。

kube-proxy: 代理服务,负载均衡
fluentd: 日志收集服务
pod: 是k8s管理的基本单位(最小单元),pod 内部是容器

k8s核心组件原理:

k8s是用来管理容器的,但是不直接操作容器,最小操作单元为pod
特点:

  • 1个master有一群node节点与之对应
  • master节点不存储容器,只负责调度、网关、控制器、资源对象存储 容器是存储在node节点
  • pod内部可以有一个或者多个容器
  • kubelet负责本地的pod维护
  • kube-proxy负责负载均衡,在多个pod之间做负载均衡

关于pod

pod是一个虚拟化的分组(有自己的ip地址、主机名),pod相当于独立主机,可以封装一个或多个容器。通常情况下,一个pod中要么部署一个服务,要么部署多个相关的服务
1、pod底层网络和数据存储:
pod底层网络和存储主要依赖pause容器,该容器作用如下:

  • 共享网络
  • 共享存储

2、pod内部容器使用localhost相互访问
3、pod内部容器创建之前必须先创建pause

Kubernetes(简称K8s)是一个开源的容器编排和管理工具,用于自动化部署、扩展和操作容器化应用程序。K8s架构原理可以通过以下几个核心组件来详解。 1. Master节点:Master节点是K8s集群的控制中心,负责管理和控制整个集群的运行。其中包括以下几个组件: - API Server:作为控制和管理的入口,接收和处理用户和其他组件的请求。 - Scheduler:负责调度任务到合适的Node节点上运行。 - Controller Manager:监控集群状态,根据需求对集群进行自动化的维护和管理。 - etcd:分布式键值存储系统,用于保存集群中的元数据信息。 2. Node节点:Node节点是集群中的工作节点,负责运行应用程序容器。每个Node节点上包含以下几个组件: - Docker或其他容器运行时:用于管理和运行容器。 - Kubelet:与Master节点通信,接收和执行Master节点下发的指令,管理容器的生命周期。 - Kube-proxy负责实现集群中的网络代理和负载均衡。 3. PodPodK8s的最小调度和部署单元,包含一个或多个紧密相关的容器。Pod中的容器共享同一个网络命名空和存储卷,可以通过本地的localhost互相通信。 4. Service:Service是一种抽象,定义了一组Pod的访问规则。通过Service,可以提供稳定的访问入口,使得集群内的其他组件不需要关心具体的Pod的位置和IP地址。 除了这些核心组件,K8s还有其他一些重要的特性和功能,如命名空、标签、配置管理、水平扩展、滚动更新等,这些功能进一步增强了K8s的弹性、可靠性和可管理性。 总结起来,K8s架构原理可以归纳为Master-Node架构,通过Master节点对整个集群进行控制和管理,Node节点负责运行容器化应用程序,Pod作为最小的调度和部署单元,Service提供访问入口。这种设计使得K8s具备自动化、弹性、可伸缩和可靠的特点,广泛应用于云原生应用的部署和管理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值