kubernetes 从入门到放弃

K8S架构解读

2019-05-12  本文已影响0人  朗月清风hyj

1. kubernetes总架构图

image

2. kubernetes 各组件介绍

2.1 Master 节点

Master是kubernetes的大脑,运行的Deamon 服务包括kube-apiserver、kube-scheduler、kube-contronller-

manager、etcd和pod网络

image
2.1.1 各组件介绍
2.1.2 master工作流程图
image
  1. Kubecfg将特定的请求,比如创建Pod,发送给Kubernetes Client。

  2. Kubernetes Client将请求发送给API server。

  3. API Server根据请求的类型,比如创建Pod时storage类型是pods,然后依此选择何种REST Storage API对请求作出处理。

  4. REST Storage API对的请求作相应的处理。

  5. 将处理的结果存入高可用键值存储系统Etcd中。

  6. 在API Server响应Kubecfg的请求后,Scheduler会根据Kubernetes Client获取集群中运行Pod及Minion/Node信息。

  7. 依据从Kubernetes Client获取的信息,Scheduler将未分发的Pod分发到可用的Minion/Node节点上。

2.2 Node节点

Node节点属于工作节点,是pod运行的地方。

image
2.2.1 各组件介绍
  1. kubelet 

    node的agent,当scheduler去确定在某个node上运行pod后,会将pod的具体配置信息发送给该节点的

    kubelet, kubelet会根据遮羞信息创建和运行容器,并向master报告运行状态。

  2. kube-proxy

    每个node都会运行kube-proxy服务,外界通过service访问pod,kube-proxy负责将降访问service的TCP/UDP数

    据流转发到后端的容器。如果有多个副本,kube-proxy会实现负载均衡。

  3. pod网络

    pod能能够互相通信,k8s集群必须部署pod网络,flannel是其中一个可以选择的方案

2.2.2 kubectl 架构解读
image
Kubelet[节点上的Pod管家]

负责Node节点上pod的创建、修改、监控、删除等全生命周期的管理
定时上报本Node的状态信息给API Server。

kubelet是Master API Server和Minion/Node之间的桥梁,接收Master API Server分配给它的commands和work,

通过kube-apiserver间接与Etcd集群交互,读取配置信息。
具体的工作如下:

  1. 设置容器的环境变量、给容器绑定Volume、给容器绑定Port、根据指定的Pod运行一个单一容器、给指定的Pod创建network 容器。

  2. 同步Pod的状态、同步Pod的状态、从cAdvisor获取container info、 pod info、 root info、 machine info。

  3. 在容器中运行命令、杀死容器、删除Pod的所有容器。

查看集群节点信息

kubectl get nodes -o wide
在这里插入图片描述
参考链接:https://yq.aliyun.com/articles/47308?spm=5176.100240.searchblog.19.jF7FFa
上一篇下一篇

猜你喜欢

热点阅读