一、概述

  IaaS:即基础设施即服务,通过虚拟化和分布式存储等技术,实现对包括服务器、存储设备、网络设备等各种物理资源的抽象;从而形成了一个可扩展、可按需分配的虚拟资源池。最具代表性的IaaS产品有Amazon AWS,提供虚拟机EC2和云存储S3等服务;

  PaaS:平台即服务,为开发者提供了应用的开发环境和运行环境,将开发者从繁琐的IT环境管理中解放出来;PaaS主要面向的是软件专业人员;

  SaaS:软件即服务,面向使用软件的终端用户。比如:在线使用的邮箱系统

二、架构和组件

  kubernetes API Server: 作为k8s系统的入口,其封装了核心对象的增删改查的操作,以REST API接口方式提供给外部客户和内部组件调用,它维护的REST对象将持久化到Etcd中。

  kubernetes Scheduler:负责集群的资源调度,为新建的Pod分配host。这部分工作独立成一个组件,意味着可以很方便地替换成其他的调度器;

  kubernetes Controller Manager:负责执行各种控制器,目前已经实现很多控制器来保证kubernetes的正常运行,主要的控制器如下:

控制器   说明 
Replication Controller                                  管理维护Replication Controller,关联Replication Controller 和Pod,保证Replication Controller定义的副本数量与实际运行Pod的数量是一致的                                                                  
Node Controller   管理维护Node,定期检查Node的健康状态,标识出失效的Node
Namespace Controller   管理维护Namespace,定期清理无效的Namespace,包括Namespace下的API对象,像Pod、Service和Secret等
Endpoint Controller   管理维护Endpoints,关联Service和Pod,创建Endpoints作为Service的后端,当Pod发生变化时,实时刷新Endpoints
Service Account Controller   管理维护Service Account,为每个Namespace创建默认的Service Account,同时为Service Account创建Service Account Secret
Persistent Volume Controller  管理维护Persistent Volume和Persistent Volume Claim,为新的Persistent Volume Claim分配Persistent Volume进行绑定,为释放的Persistent Volume执行清理回收
Daemon Set Controller    管理维护Deamon Set,负责创建Daemon Pod,保证指定的Node上正常运行Daemon Pod
Deployment Controller      管理维护Deployment,关联Deployment和Replication Controller,保证运行指定数目的Pod,当Deployment更新时,控制实现Replication Controller和Pod的更新

Job Controller  

 管理维护Job,为Job创建一次性任务Pod,保证完成Job指定完成的任务数目

Pod Autoscaler Controller

实现Pod的自动伸缩,定时获取监控数据,进行策略匹配,当满足条件时执行Pod的伸缩动作

  kubernetes Node是运行节点,用于运行管理业务的容器,包含以下组件:

  Kubelet: 负责管控容器,kubelet会从kuberenetes API Server接收Pod的创建请求,启动和停止容器,监控容器运行状态并汇报给Kubernetes API Server

  Kubernetes Proxy:负责为Pod创建代理服务,Kuberenetes Proxy会从Kubernetes API Server获取所有的Service,并根据Service 信息创建代理服务,实现Service 到Pod的请求路由和转发,从而实现kubernetes曾经的虚拟转发网络;

  Docker: k8s Node是容器运行节点,需要运行Docker服务,目前k8s也支持Rocket(一款CoreOS开发的类Docker的开源容器引擎);

三、k8s网络:

  k8s的网络模型要求每一个Pod都拥有一个扁平化共享网络命名空间的IP,成为PodIP, Pod能够直接通过PodIP跨网络与其他物理机和Pod进行通信。要实现k8s网络模型,需要在k8s集群中创建一个覆盖网络(Overlay Network),联通各个节点,目前可通过第三方网络插件来创建覆盖网络,例如:Flannel和Open vSwitch。

  Flannel为不同Node的Docker网桥配置不同的IP网段以保证Docker容器的IP在集群内唯一,所以Flannel会重新配置Docker网桥,需要先删除原先创建的Docker网桥;

四、k8s深入:

  k8s是容器集群管理系统,为容器化的应用提供资源调度、部署运行、容灾容错和服务发现等功能。其中涉及Pod、Replication Controller和Service这k8s基本要素的功能展示;

  

 

  

kubernetes架构之二的更多相关文章

  1. 【Kubernetes 系列二】从虚拟机讲到 Kubernetes 架构

    目录 什么是虚拟机? 什么是容器? Docker Kubernetes 架构 Kubernetes 对象 基础设施抽象 在认识 Kubernetes 之前,我们需了解下容器,在了解容器之前,我们得先知 ...

  2. kubernetes架构(2)

    一.Kubernetes 架构: Kubernetes Cluster 由 Master 和 Node 组成,节点上运行着若干 Kubernetes 服务. Master 节点 Master 是 Ku ...

  3. Kubernetes架构

    一.Kubernetes 架构: Kubernetes Cluster 由 Master 和 Node 组成,节点上运行着若干 Kubernetes 服务. 1. Master 节点 Master 是 ...

  4. 第2篇Kubernetes架构

      一.Kubernetes 架构: Kubernetes Cluster 由 Master 和 Node 组成,节点上运行着若干 Kubernetes 服务. Master 节点 Master 是 ...

  5. Kubernetes架构介绍

    目录 Kubernetes架构 k8s架构图 一.K8S Master节点 API Server Scheduler Controller Manager ETCD 二.K8S Node节点 Kube ...

  6. kubernetes架构及deployment应用(4)

    Kubernetes Cluster 由 Master 和 Node 组成,节点上运行着若干 Kubernetes 服务. 一.master节点 Master 是 Kubernetes Cluster ...

  7. Redis缓存项目应用架构设计二

    一.概述 由于架构设计一里面如果多平台公用相同Key的缓存更改配置后需要多平台上传最新的缓存配置文件来更新,比较麻烦,更新了架构设计二实现了缓存配置的集中管理,不过这样有有了过于中心化的问题,后续在看 ...

  8. Kubernetes 架构(下)- 每天5分钟玩转 Docker 容器技术(121)

    上一节我们讨论了 Kubernetes 架构 Master 上运行的服务,本节讨论 Node 节点. Node 是 Pod 运行的地方,Kubernetes 支持 Docker.rkt 等容器 Run ...

  9. Linux集群架构(二)

    Linux集群架构(二) 目录 八.LVS DR模式搭建 九.keepalived + LVS 十.扩展 八.LVS DR模式搭建 1.实验环境: 四台机器: client: 10.0.1.50 Di ...

随机推荐

  1. ionic_ Network connectivity error occurred, are you offline?

    错误如下: HenHouse admin$ ionic cordova build ios --prod > ionic integrations enable cordova ✖ Downlo ...

  2. 自己理解BFC 和 stack context , stack order

    1. stack order 发生在BFC计算好了之后. 2.一个一个的BFC里面,不同的block 里面的stack context 会根据 stack order的顺序,进行堆叠.呈现互相遮盖的效 ...

  3. Mac OS X /home 目录权限修改

    Mac OS X /home 目录权限修改 http://ju.outofmemory.cn/entry/283070 sudo vi /etc/auto_master # 注释掉 /home那一行 ...

  4. 解决webstom failed to change read-only files

    我百思不得其解的是,为何我的文件不让我更改,变成了只读模式,后来我仔细回忆了一下,原来是因为我使用了root权限,来安装thinkjs之后,webstom没有root权限,所以我使用root,在终端敲 ...

  5. echart 图例设置自定义图标?

    option = { legend: { orient: 'horizontal', // 'vertical' x: 'right', // 'center' | 'left' | {number} ...

  6. 阿里云centos 6安装iRedmail过程

    全新系统 yum update cd /root wget http://www.iredmail.com/iRedMail-0.8.7.tar.bz2 tar xvf iRedMail-0.8.7. ...

  7. 转:FSMT:文件服务器从03迁移到08R2实战演练

    另外参见:http://www.canway.net/Lists/CanwayOriginalArticels/DispForm.aspx?ID=282 以前做过一个项目,是把文件服务器从03升级到0 ...

  8. Endorsement 业务逻辑介绍

    本文主要介绍保单系统中Endorsement功能的基本逻辑和过程,主要参考OIC系统 保单系统 保险公司用来管理保单的信息系统,这里简称为保单系统.主要作用是收集和维护投保人信息和投保信息,计算保费, ...

  9. python操作Excel的几种方式

    Python对Excel的读写主要有xlrd.xlwt.xlutils.openpyxl.xlsxwriter几种. 1.xlrd主要是用来读取excel文件 import xlrd workbook ...

  10. Python学习笔记四:面向对象编程

    一:定义类并创建实例 Python中定义类,通过class关键字,类名开头大写,参数列表为所继承的父类.如果没有需要明确继承的类,则继承object. 使用类来创建对象,只需 类名+() 形式即可,p ...