kubernetes的组件和概念介绍
1.控制平面组件(也被称为master节点组件)
控制平面的组件我们会找一台单独的机器来部署,我们习惯上把部署控制平面组件的机器称为master节点,以下都会用master节点来代替控制平面这个概念,master节点的组件能够对k8s的集群做出全局决策(例如,调度),以及检测和响应集群事件(例如,当部署的副本字段不满足时启动一个新的POD)。Master节点组件可以在k8s集群中的任何机器上运行。 然而,为了简单起见,通常会在同一台机器上启动所有控制平面组件,这台机器上最好不运行其他的容器化程序,所以我们就把专门部署控制平面组件的集群称为master节点。
1)kube-apiserver -- 所有服务访问的唯一入口
kube-apiserver是Kubernetes master节点的组件,它公开了Kubernetes API。 API服务是Kubernetes master节点的前端。Kubernetes API服务是通过kube-apiserver组件实现的,kube-apiserver被设计成可以进行自动扩缩容,你可以运行多个kube-apiserver组件,通过keepalive+lvs或者其他负载均衡策略在这些组件之间平衡流量。kube-apiserver提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制,负责接收、解析、处理请求。
2)kube-scheduler --负责介绍任务,选择合适的节点进行分配任务
kube-scheduler是kubernetes master节点的组件,用来监视已经被创建但是没有调度到node节点的pod,然后选择一个node节点用来运行它,kube-scheduler主要是负责pod的调度,按照预定的调度策略(如亲和性,反亲和性等)将Pod调度到相应的机器上。
3)kube-controller-manager --维持副本期望数量
控制器管理器,用来检测控制器健康状态的,控制器是负责维护集群的状态,检查pod的健康状态,比如故障检测、自动扩展、滚动更新等一些操作。
- Node控制器
- ReplicationController控制器
- ReplicaSet控制器
- Deployment控制器
- StatefulSet控制器
- DaemonSet控制器
- Job控制器
- CronJob控制器
- Endpoint控制器
- ServiceAccount及Token控制器
4)etcd --键值对数据库,负责存储k8s集群的重要信息(持久化)
etcd是一个key/value形式的键值存储,保存了整个kubernetes集群的状态,在kubernetes中使用etcd时,需要对etcd做备份,保证高可用。整个kubernetes系统中一共有两个服务需要用到etcd,用etcd来协同和存储配置,分别是:
(1)网络插件calico、对于其它网络插件也需要用到etcd存储网络的配置信息
(2)kubernetes本身,包括各种对象的状态和元信息配置
注意:网络插件操作etcd使用的是v2的API,而kubernetes操作etcd使用的v3的API,所以在下面我们执行etcdctl的时候需要设置ETCDCTL_API环境变量,该变量默认值为2,表示使用v2版本的etcd api,v3表示使用v3版本的etcd api
5)docker
是一个容器引擎,用于运行容器
6)kube-proxy -- 通过写入规则至iptables, IPVS,实现服务的调度
k8s代理,是在集群中的每个节点上运行的网络代理,kube-proxy负责请求转发,一旦发现了某一个Service关联的Pod信息发生了改变(如IP、Port等),由Kube-Proxy就会把变化后的service转换成IPVS或IPtables规则中,完成对后端pod的负载均衡
7)calico
Calico是一个纯三层的网络插件,calico的bgp模式类似于flannel的host-gw,calico在kubernetes中可提供网络功能和网络策略
8)cordns
k8s1.11之前使用的是kube dns,1.11之后才有coredns,coredns是一个DNS服务器,能够为Kubernetes services提供DNS记录
9)kubelet --跟容器引擎交互,实现容器的生命周期管理
负责与master节点的apiserver进行通信的,接收到客户的请求,进行创建Pod,管理Pod,启动pod等相关操作
2. 工作节点组件(也被称为node节点组件)
节点组件在k8s集群的每一个节点上都需要运行,工作节点用来运行业务pod,
1)kubelet
kubelet在k8s集群的每一个节点上都需要运行,属于节点组件,负责与master节点的apiserver进行通信的,接收到客户的请求,进行创建Pod,管理Pod,启动pod等相关操作
2)kube-proxy
k8s代理,是在群集中的每个节点上运行的网络代理,kube-proxy负责请求转发,一旦发现了某一个Service关联的Pod信息发生了改变(如IP、Port等),由Kube-Proxy就会把变化后的service转换成IPVS或IPtables规则中,完成对后端pod的负载均衡
3)docker
是一个容器引擎,用于运行容器
4)calico
Calico是一个纯三层的网络插件,calico的bgp模式类似于flannel的host-gw,calico在kubernetes中可提供网络功能和网络策略
3.附加组件
附件组件使用kubernetes的资源(如daemonset,deployment,statefulset等)实现集群功能,因为它们提供的是集群级别的属性,所以这些附件组件都需要部署到kube-system这个名称空间下。
1)coredns
k8s1.11之前使用的是kubedns,1.11之后才有coredns,coredns是一个DNS服务器,能够为 Kubernetes services提供 DNS记录。
2)Web UI(Dashboard)
Dashboard是k8s集群的一个web ui界面,通过这个界面可以对k8s资源进行操作,如创建pod,创建存储,创建网络等,也可以监控pod和节点资源使用情况。
3)Ingress Controller
七层负载均衡控制器,可以通过创建nginx或者traefik这种七层负载组件,实现域名和https访问。
4)prometheus+alertmanager+Grafana
监控系统,可以对kubernetes集群本身的组件监控,也可对物理节点,容器做监控,对监控到的超过报警阀值的数据进行报警,这个报警会发送到指定的目标,如钉钉,微信,qq,slack等。
5)efk-(全称elasticsearch、fluentd、kibana)
日志管理系统,可以对物理节点和容器的日志进行统一收集,把收集到的数据在kibana界面展示,kibana提供按指定条件搜索和过滤日志。
6)metrics
用于收集资源指标,hpa需要基于metrics实现自动扩缩容
7)Federation
跨集群中心多k8s管理统一管理功能
4.概念
1) HPA (Horizontal Pod Autoscaling)
根据CPU利用率进行扩容
2)Deployment和ReplicaSets
是为无状态服务而设计
3)Statefulset
是为了解决有状态服务的问题
4) Daemonset
确保每个node中运行一个pod副本,例如集群存储,日志收集,监控等
5)Job
负责批处理任务
5)cron job
定期执行
kubernetes的组件和概念介绍的更多相关文章
- SpringCloud组件和概念介绍
一:什么是微服务(Microservice) 微服务英文名称Microservice,Microservice架构模式就是将整个Web应用组织为一系列小的Web服务.这些小的Web服务可以独立地编译及 ...
- SpringCloud组件和概念介绍1
一:什么是微服务(Microservice) 微服务英文名称Microservice,Microservice架构模式就是将整个Web应用组织为一系列小的Web服务.这些小的Web服务可以独立地编译及 ...
- 【微服务架构】SpringCloud组件和概念介绍(一)
一:什么是微服务(Microservice) 微服务英文名称Microservice,Microservice架构模式就是将整个Web应用组织为一系列小的Web服务.这些小的Web服务可以独立地编译及 ...
- SpringCloud组件和概念介绍(一)
一:什么是微服务(Microservice) 微服务英文名称Microservice,Microservice架构模式就是将整个Web应用组织为一系列小的Web服务.这些小的Web服务可以独立地编译及 ...
- Kubernetes笔记(二):了解k8s的基本组件与概念
前文 Kubernetes笔记(一):十分钟部署一套K8s环境 介绍了如何快速搭建一个k8s系统.为了继续使用k8s来部署我们的应用,需要先对k8s中的一些基本组件与概念有个了解. Kubernete ...
- K8s - Kubernetes重要概念介绍(Cluster、Master、Node、Pod、Controller、Service、Namespace)
K8s - Kubernetes重要概念介绍(Cluster.Master.Node.Pod.Controller.Service.Namespace) Kubernetes 是目前发展最 ...
- 【Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之集群概念介绍(一)
集群概念介绍(一)) 白宁超 2015年7月16日 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习 ...
- Java SE/ME/EE的概念介绍
转自 Java SE/ME/EE的概念介绍 多数编程语言都有预选编译好的类库以支持各种特定的功能,在Java中,类库以包(package)的形式提供,不同版本的Java提供不同的包,以面向特定的应用. ...
- rocketMq概念介绍
rocketMq官网 http://rocketmq.apache.org/ rocketMq逻辑概念介绍 rocketMq逻辑图 备注: 改图片分享自李占卫的网上家园 说明: 在rocketM ...
随机推荐
- Java后台防止客户端重复请求、提交表单
前言 在Web / App项目中,有一些请求或操作会对数据产生影响(比如新增.删除.修改),针对这类请求一般都需要做一些保护,以防止用户有意或无意的重复发起这样的请求导致的数据错乱. 常见处理方案 1 ...
- pwn篇:攻防世界进阶welpwn,LibcSearcher使用
攻防世界welpwn (搬运一篇自己在CSDN写的帖子) 链接:https://blog.csdn.net/weixin_44644249/article/details/113781356 这题主要 ...
- oracle 查看 FK constraint referenced_table及columns
select uc.table_name, uc.r_constraint_name, ucc.table_name, listagg(ucc.column_name, ',') within gro ...
- .NET并发编程-数据并行
本系列学习在.NET中的并发并行编程模式,实战技巧 内容目录 数据并行Fork/Join模式PLINQ 本小节开始学习数据并行的概念模式,以及在.NET中数据并行的实现方式.本系列保证最少代码呈现量, ...
- vue3中的通过proxy实现双向数据绑定的原理
1.什么是Proxy?它的作用是? 据阮一峰文章介绍:Proxy可以理解成,在目标对象之前架设一层 "拦截",当外界对该对象访问的时候,都必须经过这层拦截,而Proxy就充当了这种 ...
- 漏洞复现-ActiveMq反序列化漏洞(CVE-2015-5254)
0x00 实验环境 攻击机:Win 10 靶机也可作为攻击机:Ubuntu18 (docker搭建的vulhub靶场) 0x01 影响版本 Apache ActiveMQ 5.13.0之前 ...
- 文件包含-phpinfo()
我也是听朋友说有这个姿势的,github有集成好的环境 先讲一下利用phpinfo上传文件,然后在文件包含的原理: 在给PHP发送POST数据包时,如果数据包里包含文件区块,无论访问的代码中是否有处理 ...
- Linux下查看文件内容的几种常用命令
[常用] 1,cat 由第一行开始显示内容,并将所有内容输出 cat的功能是将文件从第一行开始连续的将内容输出在屏幕上.但是cat并不常用,原因是当文件大,行数比较多时,屏幕无法全部容下时,只 ...
- C# 应用 - 封装类访问 Postgresql 数据库
引入库类 连接数据库 访问数据库 1)增删改数据库 2)查数据库 数据转换 事务 1. 引入库类 引入 Npgsql.dll using Npgsql; using NpgsqlTypes; 2. 连 ...
- Django 使用 pycharm 创建新的app(可以理解为模块)
创建工程的时候,注意选择Existing interpreter 选择对应的 python 解释器,电脑如果安装有多个版本的 Python 的话,注意python版本的问题, 以上即是创建的项目目录, ...