kubernetes集群架构解读
1. kubernetes总架构图
2. kubernetes 各组件介绍
2.1 Master 节点
Master是kubernetes的大脑,运行的Deamon 服务包括kube-apiserver、kube-scheduler、kube-contronller-
manager、etcd和pod网络
2.1.1 各组件介绍
- API Server(kube-apiserver)
API Server提供HTTP/HTTPS RESTful API,即Kubernetes API。API Server是Kubernetes Cluster的前端接
口,各种客户端工具(CLI或UI)以及Kubernetes其他组件可以通过它管理Cluster的各种资源。
- Scheduler(kube-scheduler)
Scheduler负责决定将Pod放在哪个Node上运行。Scheduler在调度时会充分考虑Cluster的拓扑结构,当前各个
节点的负载,以及应用对高可用、性能、数据亲和性的需求。
- Controller Manager(kube-controller-manager)
Controller Manager负责管理Cluster各种资源,保证资源处于预期的状态。Controller Manager由多种Controller
组成,包括replication controller、endpoint controller、namespace controller、serviceaccounts controller等。
不同的controller管理不同的资源。例如,replication controller管理Deployment、StatefulSet、DaemonSet的生
命周期,namespace controller管理Namespace资源。
- etcd
etcd负责保存Kubernetes Cluster的配置信息和各种资源的状态信息。当数据发生变化时,etcd会快速通知
Kubernetes相关组件。
- Pod网络
Pod要能够相同通信,Kubernetes Cluster必须部署Pod网络,flannel是其中一个可选方案。
2.1.2 master工作流程图
- Kubecfg将特定的请求,比如创建Pod,发送给Kubernetes Client。
- Kubernetes Client将请求发送给API server。
- API Server根据请求的类型,比如创建Pod时storage类型是pods,然后依此选择何种REST Storage API对请求作出处理。
- REST Storage API对的请求作相应的处理。
- 将处理的结果存入高可用键值存储系统Etcd中。
- 在API Server响应Kubecfg的请求后,Scheduler会根据Kubernetes Client获取集群中运行Pod及Minion/Node信息。
- 依据从Kubernetes Client获取的信息,Scheduler将未分发的Pod分发到可用的Minion/Node节点上。
2.2 Node节点
Node节点属于工作节点,是pod运行的地方。
2.2.1 各组件介绍
- kubelet
node的agent,当scheduler去确定在某个node上运行pod后,会将pod的具体配置信息发送给该节点的
kubelet, kubelet会根据遮羞信息创建和运行容器,并向master报告运行状态。
-
kube-proxy
每个node都会运行kube-proxy服务,外界通过service访问pod,kube-proxy负责将降访问service的TCP/UDP数
据流转发到后端的容器。如果有多个副本,kube-proxy会实现负载均衡。
- pod网络
pod能能够互相通信,k8s集群必须部署pod网络,flannel是其中一个可以选择的方案
- pod网络
2.2.2 kubectl 架构解读
Kubelet[节点上的Pod管家]
负责Node节点上pod的创建、修改、监控、删除等全生命周期的管理
定时上报本Node的状态信息给API Server。
kubelet是Master API Server和Minion/Node之间的桥梁,接收Master API Server分配给它的commands和work,
通过kube-apiserver间接与Etcd集群交互,读取配置信息。
具体的工作如下:
- 设置容器的环境变量、给容器绑定Volume、给容器绑定Port、根据指定的Pod运行一个单一容器、给指定的Pod创建network 容器。
- 同步Pod的状态、同步Pod的状态、从cAdvisor获取container info、 pod info、 root info、 machine info。
- 在容器中运行命令、杀死容器、删除Pod的所有容器。
查看集群节点信息
kubectl get nodes -o wide
参考链接:https://yq.aliyun.com/articles/47308?spm=5176.100240.searchblog.19.jF7FFa

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
阿里云服务器ECS 实例操作(系统选择说明)
操作系统选择建议Windows内含正版已激活系统,默认不提供 CD-ROM 配置。适合于运行 Windows 下开发的程序,如 .NET 等。支持 SQL Server 等数据库(需自行安装)。支持使用远程桌面方式登录进行管理。类 Unix/Linux最流行的服务器端操作系统,强大的安全性和稳定性。免费且开源,轻松建立和编译源代码。通过 SSH 方式远程访问您的 ECS 实例。一般用于高性能 web 等服务器应用,支持常见的 PHP/Python 等编程语言,支持 MySQL 等数据库(需自行安装)。阿里云提供以下类 Unix/Linux 操作系统:CentOS (推荐) 请使用 yum 方式在线安装软件。Ubuntu 请使用 apt-get 方式在线安装软件。Debian 请使用 aptitude 方式在线安装软件。Aliyun Linux 请使用 yum 方式在线安装软件。CoreOSFreeBSDOpenSUSESUSE LinuxAliyun Linux 简介Aliyun Linux OS 是依托阿里巴巴技术团队多年的 Linux 实践经验,专为用户定制的安全的、高性能的、稳定...
- 下一篇
短视频app开发丨教新手三分钟分清楚什么是API和SDK
之前我写过一篇文章,名为《短视频app软件开发时,这些不能被人代做的工作》,在那篇文章中,我详细叙述了短视频app开发中所需用到的API和SDK,不料,有热心读者在下面评论问:“谁能通俗解释一下SDK是什么?”我顿时意识到了自己的疏忽,因为我在上篇文章中直接选择了较为技术的语言解释了API和SDK,没有考虑到我的语言过于生涩难懂了,本篇文章就来跟大家解释一下,用通俗的话说,短视频app中常用的API与SDK是什么? 一、先说作用在说API和SDK是什么之前,我们先来说说SDK的作用,毕竟可能有朋友没看过我上一篇文章,这样我直接说API和SDK是什么,他们就会很混乱。不只是短视频app开发,很多软件开发过程中都会用到SDK,因为它很省事。SDK的中文名叫“软件开发工具包”(本文中将之简称为软件包或软件开发包),它被开发出来是为了减少程序员工作量的,有公司开发出某种软件的某一功能,把它封装成SDK(比如美颜SDK就是能够实现美颜功能的SDK),出售给其他公司做开发用,其他公司如果想要给软件开发出某种功能,但又不想从头开始搞开发,可以付钱省事。 二、 拼命解释说到API和SDK,很多朋友容易...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- Hadoop3单机部署,实现最简伪集群
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS7设置SWAP分区,小内存服务器的救世主
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7,CentOS8安装Elasticsearch6.8.6
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作