您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
   
 
     
   
 订阅
  捐助
K8S架构解读
 
作者: 朗月清风hyj
   次浏览      
 2019-12-11
 
编辑推荐:
本文介绍kubernetes总架构图,kubernetes 各组件,查看集群节点信息,希望对您有所帮助
本文来自于简书,由火龙果软件Delores编辑、推荐。

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是其中一个可以选择的方案

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

   
次浏览       
相关文章

云计算的架构
对云计算服务模型
云计算核心技术剖析
了解云计算的漏洞
相关文档

云计算简介
云计算简介与云安全
下一代网络计算--云计算
软浅析云计算
相关课程

云计算原理与应用
云计算应用与开发
CMMI体系与实践
基于CMMI标准的软件质量保证