播放记录

k8s整体架构的知识整理

博客术业专攻云计算kubernetesk8s整体架构的知识整理 2019年08月29日 11:24:48

1,master节点。

Master是Kubernetes Cluster的大脑,运行着的Daemon服务有一下几个:

  • kube-apiserver
  • kube-scheduler
  • kube-controller-manager
  • etcd
  • Pod 网络(例如 flannel)

如图所示:

接下来就一个一个介绍如上组件的功能。

1,API Server(kube-apiserver)

2,Scheduler(kube-scheduler)

3,Controller Manager(kube-controller-manager)

4,etcd

5,Pod 网络

2,Node节点。

Node 是 Pod 运行的地方,Kubernetes 支持 Docker、rkt 等容器 Runtime。 Node上运行的 Kubernetes 组件有:

  • kubelet
  • kube-proxy
  • Pod 网络(例如 flannel)

如图所示:

1,kubelet

2,kube-proxy

3,Pod 网络

3,集群架构。

将如上讲解的架构汇总起来,组成一个集群,就是k8s集群了,我们先看一张集群完整架构图:

这里在k8s-master 上也加有 kubelet 和 kube-proxy ,是因为在k8s集群中,master既可以作为管理节点,也能够担任work节点。

有时部署的时候也可能将Scheduler等控制组件部署在node节点,这是为了高可用着想,如此一来,集群每个节点都是master,同时也都是node,任意一个节点出了问题,都能够被一些高可用的方案,所避免服务的宕机。

4,通过实例理解架构工作流程

现在来通过构建一个实例,来理解整个集群工作的流程。

执行如下命令:

kubectl run nginx-ds --image=nginx --replicas=2

等待一段时间,可以查看一下部署成功:

$kubectl get pod -o wide
NAME                                READY     STATUS    RESTARTS   AGE       IP            NODE
nginx-ds-fbx76                      1/1       Running   0          2d        172.30.84.2   kube-node1
nginx-ds-jbjzg                      1/1       Running   0          2d        172.30.8.2    kube-node2

Kubernetes 部署了 deployment nginx-ds,有两个副本 Pod,分别运行在 kube-node1 和 kube-node2。

详细部署流程如图所示:

  • 1,kubectl 发送部署请求到 API Server。
  • 2,API Server 通知 Controller Manager 创建一个 deployment 资源。
  • 3,Scheduler 执行调度任务,将两个副本 Pod 分发到 k8s-node1 和 k8s-node2。
  • 4,k8s-node1 和 k8s-node2 上的 kubelet 在各自的节点上创建并运行 Pod。

另:

  • 应用的配置和当前状态信息保存在 etcd 中,执行 kubectl get pod 时 API Server 会从 etcd 中读取这些数据。
  • flannel 会为每个 Pod 都分配 IP。因为没有创建 service,目前 kube-proxy 还没参与进来。

整理自:https://www.cnblogs.com/CloudMan6/


转载:http://www.eryajf.net/2094.html

© 2018 www.qingketang.net 鄂ICP备18027844号-1

武汉快勤科技有限公司 13554402156 武汉市东湖新技术开发区关山二路特一号国际企业中心6幢4层7号

微信登录

扫码关注,全站教程免费播放

发表评论 X

登录成功
开通VIP

订单金额:

支付金额:

支付方式: