kubernetes集群架构和组件
前言
环境:centos7.9
kubernetes集群架构图
kubernetes集群组件介绍
k8s集群包括2种角色:master管理节点和node工作节点,至少要有一个node工作节点。
kubectl 是一个客户端的管理工具,直接管理API server,提供一个请求到一个api server,中间有一个auth认证(判断是否有权限访问)。
Master 节点包含4大组件,分别是:kube-api server 、kube-controller-manager、kube-scheduler、etcd
,备注:etcd可以单独部署集群,不必在master节点上。
组件名称 | 功能作用 |
---|---|
kube-apiserver | master核心组件,k8s集群的统一访问入口,各组件的协调者,以RESTful API提供接口方式,所有的对象资源的增删改查和监听操作都交给APIServer处理后再提交给etcd数据库做持久化存储 |
kube-controller-manager | 处理集群中常规后台任务,一个资源对应一个控制器,而controller-Manager就是负责处理这些控制器的,例如 deployment-controller、endpoint-controller(负责维护集群的状态,比如程序部署安排,故障检测,自动扩展,滚动更新等) |
kube-scheduler | scheduler根据调度算法为新创建的pod选择一个node节点(负责集群资源调度,按照调度策略将pod绑定到某个node节点上,即给pod分配一个家) |
etcd | 分布式键值存储数据库,用于保存集群状态数据,比如Pod,Service等对象信息,etcd可以有多个(etcd数据库集群),也可以不与master节点在一起,只要master能通过网络连接etcd数据库即可 |
Node节点包含2大组件,分别是:kubelet、kube-proxy
。
组件名称 | 功能作用 |
---|---|
kubelet | kubelet 是Master在Node节点上的Agent,管理node节点主机运行容器的生命周期,比如创建容器,Pod挂载数据卷,下载secret,获取容器和节点状态等工作,kubelet 将每个Pod转换成一组容器(负责维护容器的生命周期,即通过控制docker来创建、更新、销毁容器) |
kube-proxy | 在Node节点上实现Pod网络代理,维护网络规则和四层负载均衡工作,实现让Pod节点(一个或者多个容器)对外提供服务(负责提供集群内部的服务发现和负载均衡) |
下面以部署一个nginx的服务来说明k8s各组件的调用关系:
1、首先要明确,一旦k8s环境启动之后,master和node都会将自身的信息存储到etcd数据库中;
2、一个nginx pod的创建请求,首先会被发送到master节点的api-server组件;
3、apiServer组件会调用scheduler,让scheduler组件来决定应该把这个pod调度到哪个node节点上;
4、确定好节点之后,api-server调用controller-manager去调度node节点安装nginx pod;
5、kubelet 收到指令后会去通知docker,然后由docker来启动一个nginx的pod;
6、这样一个nginx的服务就启动运行了,想要外部能访问nginx服务,还需要通过kube-proxy来对pod产生访问的代理,这样外界用户就能访问集群中的nginx服务了。
k8s集群结构类型
kubernetes集群架构的类型大致分为2中:一主多从、多主多从
1、一主多从:一台master节点,多台node节点,搭建简单,但有单机故障风险,适用于测试环境;
2、多主多从:多台master、多台node节点,搭建麻烦,安全性高,适用于生成环境;
相关文章
- kubernetes创建pod
- Kubernetes 时代的安全软件供应链
- Kubernetes 弹性伸缩全场景解析 (一):概念延伸与组件布局
- Kubernetes详解(三)——Kubernetes集群组件
- 【云原生 | Kubernetes 系列】--Envoy故障注入和请求重试
- 【K3s】第8篇 详解 Kubernetes 组件
- 通过kubeadm安装kubernetes 1.13.2
- Kubernetes(k8s)安装dns附件组件以及使用
- kubernetes的组件和概念介绍
- kubernetes 组件之 kube-proxy
- kubernetes 组件之 kubelet
- 【云原生之kubernetes实战】使用yum方式部署kubernetes集群
- Kubernetes集群Coredns组件的妙处(四十五)
- Kubernetes集群Pod控制器之ReplicaSet控制器(二十二)
- 二进制方式搭建Kubernetes高可用集群(超丰富的组件概念理论总结)
- 【云原生 • Kubernetes】kubernetes 核心技术 - Label 和 Selector
- 【ML on Kubernetes】第 2 章:理解 MLOps
- Kubernetes 平面组件 etcd
- Kubernetes 核心组件:API Server 概念/功能
- Kubernetes 运行一次性任务Job
- Kubernetes ELK日志采集思路
- Kubernetes组件_Service_Service暴露的两种方式
- kubernetes组件_Service_普通Service和无头Service