设为首页 收藏本站
查看: 1224|回复: 0

[经验分享] Micro-PaaS(Docker+K8S)

[复制链接]

尚未签到

发表于 2017-12-6 20:24:47 | 显示全部楼层 |阅读模式
  1、概述
  Docker是一种Linux容器工具集,它是为构建(Build)、交付(Ship)和运行(Run)分布式应用而设计的。
  Kubernates:是开源的容器集群管理系统。它构建在Docker技术之上,为容器化的应用提供资源调度、部署运行、服务发现、扩容缩容等一套功能,本质上可看作是基于容器技术的Micro-PaaS平台。
  即第三代PaaS的代表性项目。
  K8S的核心概念:
  Kubernetes的核心概念
  Pod:是若干相关容器的组合,Pod包含的容器运行在同一台宿主机上,这些容器使用相同的网络命名空间、IP地址和端口,相互之间能通过localhost来发现和通信。另外,这些容器还可共享一块存储卷空间。在K8s中创建、调度和管理的最小单位是Pod,而不是容器,Pod通过提供更高层次的抽象,提供了灵活的部署和管理模式。
  Replication Controller:用来控制管理Pod副本(Replica,或者称为实例),Replication Controller确保任何时候K8s集群中有指定数量的Pod副本在运行。如果少于指定数量的Pod副本,Replication Controller会启动新的Pod副本,反之会杀死多余的副本以保证数量不变。另外,Replication Controller是弹性伸缩、滚动升级的实现核心。
  Service:Service是真实应用服务的抽象,定义了Pod的逻辑集合和访问这个Pod集合的策略。Service将代理Pod对象表现为单一访问接口,外部不需要了解后端Pod如何运行,提供了一套简化的服务代理和发现机制。
  Label:用于区分Pod、Service、Replication Controller的Key/Value对,实际上,Kubernetes中的任意API对象都可以通过Label进行标识,每个API对象可以有多个Lablel,但是每个Label的Key只能对应一个Value。Label是Service和Replication Controller运行的基础,它们都通过Label来关联Pod,相比于强绑定模型,这是一种非常好的松耦合关系。
  Node:K8s属于主从分布式集群架构,K8s Node运行并管理容器。Node作为K8s的操作单元,用来分配给Pod进行绑定,Pod最终运行在Node上,Node可以认为Pod的宿主机。
  2、Kubernate的架构和组件
  K8s属于主从分布式架构,节点在角色上分为Master和Node。它遵循微服务架构理论,整个系统划分出各个功能独立的组件,组件之间边界清晰,部署简单,可以轻易地运行在各种系统和环境中。
  K8s使用Etcd作为存储蹭件,Etcd是一个高可用的键值存储系统,灵感来自于Zk和Doozer,通过Raft一致性算法处理日志复制以保证强一致性。K8s使用Etcd作为系统的配置存储中心,K8s中的重要数据都持久化在Etcd中的,使得k8s架构的各个组件属于无状态,可以更简单地实施分布式集群部署。
  K8s Master作为控制节点,调度管理整个系统,包含以下组件。
  K8s API Server:作为K8s系统的入口,其封装了核心对象的增删改查操作,以REST API接口方式提供给外部客户和内部组件调用。它维护的REST对象将持久化到Etcd中。
  K8s Scheduler:负责集群的资源调度,为新建的Pod分配机器。这部分工作分出来变成一个组件,意味着可以很方便地替换成其他的调度器。
  K8s Controller Manager:负责执行各种控制器,目前已经实现很多控制器来保证K8s的正常运行。主要包含的控制器如下
控制器说明
Replication Controller管理维护Replication Controller,关联Replication Controller和Pod,保证Replication Controller定义的副本数量与实际运行Pod的数量是一致的。
Node Controller管理维护Node,定期检查Node的健康状态,标识出失效的Node
Namespace Controller管理维护Namespace,定期清理无效的Namespace,包括Namespace下的API对象,像Pod、Service和Secret等
Service Controller管理维护Service,为LoadBalance类型的Service创建管理负载均衡器
Endpoints Controller管理维护Endpoints,关联Service和Pod,创建Endpoints作为Service的后端,当Pod发生变化时,实时刷新新的Endpionts.
Service Account Controller管理维护
Persistent Volume Controller管理维护
Daemon Set Controller管理维护
Deployment Controller管理维护
Job Controller管理维护
Pod Autoscaler Controller管理维护

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-421449-1-1.html 上篇帖子: 二、基于kubernetes构建Docker集群环境实战 下篇帖子: docker对cpu使用及在kubernetes中的应用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表