k8s基本组件

k8s基本组件及作用

k8s主要由master节点和node节点构成

master节点负责管理集群(管理者),node几点是容器应用真正运行的地方(工作者)

master节点组件:

1.kube-api-server:集群管理的统一访问入口;是其他组件之间的数据交互和通信枢纽,其他组件之间不会直接通信,其他组件的对资源对象的曾删改查和监听操作都是交由api-server处理后,api-server再交给etcd数据库做持久化存储,只有api-server才能直接操作etcd数据库,其他组件都是通过api-server间接的读取和写入到etcd。

2.kube-controller-manage:k8s中各种控制器的管理者,是集群内部的管理控制中心,也是k8s自动化的核心;controller-manage内部包含replication controller、node controller、deployment controller和endpoint controller等各种资源对象的控制器,每种控制器都负责一种特定的资源控制流程,而controller-manage是这些controller的核心管理者。

3.kube-scheduler:负责集群资源调度,将待调度的pod通过一系列复杂的调度算法计算出最合适的node节点,然后将pod绑定到目标节点上。shcheduler会根据pod的信息,全部节点信息列表,过滤掉不符合要求的节点,过滤出一批候选节点,然后给候选节点打分,选出分最高的就是最佳节点,scheduler就会把目标pod安置到该节点。

4.Etcd:分布式键值对存储数据库,主要用于保存k8s集群状态数据;etcd可以是单个也可以是多个,多个就是etcd数据库集群,etcd通常部署奇数个实例;etcd本质上可以不与master节点部署在一起,只要master节点能通过网络连接etcd数据库即可。

node节点组件:

1.kubelet:连接master和各node之间的桥梁,负责维护pod和容器的生命周期,当监听到master下发到本节点的任务时,比如创建、更新、终止pod等任务,kubelet即通过控制docker来创建、更新和销毁容器;每个kubelet都会在api-server上注册本节点自身的信息,用于定期向master汇报本几点资源的使用情况。

2.kube-porxy:在node节点上实现pod网络代理,维护网络规则和四层负载均衡,kube-proxy会监听api-server而从中获取service和endpoin的变化情况,创建并维护路由规则以提供服务IP和负载均衡功能。简单理解此进程是service的透明代理兼负载均衡器,核心功能是将到某个service的访问请求转发到后端的多个pod实例上。

3.container-runtime:容器运行时环境,即运行容器所需要的一系列程序。

Pod

pod是什么:

pod是k8s中可以创建和管理的最小单元,也是基本单元,是资源对象模型中由用户创建或部署的最小资源对象模型,其他资源对象都是用来支撑pod对象功能的。

pod的原理:

pod的特点:

pod的重启策略:

pod的重启策略是针对pod内所有容器的重启策略,不是重启pod,可通过restartPolicy字段配置pod重启容器的策略。

· Always:容器终止推出后,总是重启容器

· OnFailure:容器异常退出,重启容器

· Never:容器终止退出,从不重启容器

pod的镜像拉取策略:

pod的镜像拉去策略可通过imagePullPolicy字段配置

· ifNotPresent:镜像在node节点宿主机上不存在时拉取

·  Always:每次创建pod都会在镜像仓库拉取一次镜像

· Never:永远不会主动拉取镜像,仅使用本地镜像,需要你手动拉取镜像到node节点,如果node节点不存在镜像则pod启动失败

pod的生命周期(状态):

· Pending(挂起):API server已经创建pod,但是pod中还有一个或多个容器的镜像没有创建,包括正在下载镜像的过程

· Running(运行中):pod中所有容器都已经创建,且至少有一个容器处于运行状态、正在启动(包括正在重启)状态

· Succeed(成功):pod中所有容器均已退出,且不会再重启

· Failed(失败):pod内所有容器均已退出,且至少有一个容器为推出失败状态

· Unknown(未知):由于某种原因apiserver无法获取该pod的状态,可能由于网络同行问题导致

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Kubernetes(简称为K8s)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。Kubernetes基本概念和架构如下: 1. 节点(Node):Kubernetes集群中的每台机器都被称为一个节点,它可以是物理机或虚拟机。 2. Pod:Pod是Kubernetes调度的最小单元,它是一个或多个容器的集合,这些容器共享网络和存储资源。 3. 控制器(Controller):控制器是Kubernetes的核心组件之一,用于管理Pod的创建、更新和删除。常用的控制器有ReplicaSet、Deployment、StatefulSet等。 4. 服务(Service):Service是Kubernetes中的网络抽象,用于将一组Pod暴露成一个单一的访问点。Service可以通过标签选择器选择一组Pod。 5. 存储(Storage):Kubernetes支持多种存储方式,包括本地存储、网络存储和云存储等。 6. API服务器(API Server):API服务器是Kubernetes的控制中心,所有的资源对象都通过API服务器进行创建、更新和删除。 7. etcd:etcd是Kubernetes的数据存储后端,用于存储所有的集群配置信息、状态信息和元数据。它是一个高可用的分布式键值存储系统。 8. 调度器(Scheduler):调度器是Kubernetes的另一个核心组件,用于将Pod调度到合适的节点上运行。 9. 容器运行时(Container Runtime):容器运行时是Kubernetes中用于运行容器的组件,常用的容器运行时有Docker、Containerd、CRI-O等。 10. 插件(Plugins):Kubernetes支持各种插件,用于扩展其功能,常用的插件有网络插件、存储插件、日志插件等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值