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

[经验分享] centos7下kubernetes(2。kubernetes

[复制链接]

尚未签到

发表于 2018-1-4 19:48:24 | 显示全部楼层 |阅读模式
  Cluster
  cluster是计算,存储和网络资源的集合,kubernetes是利用这些资源运行各种基于容器的应用
  Master
  Master是cluster的大脑,他的主要职责是调度,即决定应用在哪里运行。master运行linux操作系统,可以是物理机或者虚拟机。为了实现高可用,可以运行多个master。
  Node
  Node的职责是运行容器应用。Node有master管理,Node负责监控并汇报容器的状态,并根据master的要求管理容器的生命周期。Node运行在linux操作系统,可以是物理机或者虚拟机。
  上一节交互式的教程中我们创建的clusyer只有一个主机host01.它既是master也是node
  Pod
  pod是kubernetes的最小工作单元。每个pod包含一个或者多个容器。pod中的容器会作为一个整体被master调度到一个node上运行
  kubernetes引入pod主要基于下面两个方面
  1.可管理性
  有些容器本来就是需要紧密联系,一起工作。pod提供了比容器更高层次的抽象,将他们封装到一个部署单元中。kubernetes以pod为最小单位进行调度,扩展,共享资源,管理生命周期
  2.通信和资源共享
  pod中的所有容器使用同一个网络namespace,即相同的IP地址和port空间。他们之间通过localhost通信。同样的,这些容器可以共享存储,当kubernet挂载volume到pod,本质上是将volume挂载到pod中的每一个容器
  pods两种使用方法:
  1.运行单一容器。
  one-container-per-pod是kubernetes最常见的模型,这种情况下,只是将单个容器简单封装成pod。即使只有一个容器,kubernetes管理的也是pod,而不是直接管理容器
  2.运行多个容器
  哪些容器应该放到一个pod中?
  答案是:这些容器联系必须非常紧密,而且需要直接共享资源
  举个例子:
  下面这个pod包含两个容器:file puller和web server
  file puller会定期从外部的content manager中拉取最新的文件,将其存放在共享的volume中。web serverv从volume读取文件,响应consumer的请求。
  这两个容器是紧密协作得,他们一起为consumer提供最新得数据;同时他们也通过volume共享数据。所以放到一个pod是合适得
  再看一个反例:是否需要将tomcat和mysql放到一个pod中?
  tomcat从mysql中读取数据,他们之间需要协作,但还不至于需要放到一个pod中一起部署,一起启动,一起停止。他们之间是通过JDBC交换数据,并不是直接共享存储,所以放到各自得pod中更合适。
  Controller
  kubernetes通常不会直接创建pod,而是通过contorller来管理pod。controller中定义了pod得部署特性,比如有几个副本,在什么样得node上运行等。为了满足不同得业务场景,kubernetes提供了多种controller,包括deployment,replicaset,daemonset,statefuleset,job等。
  Deployment
  是最常用的controller,比如前面的教程中就是通过创建deployment来部署应用的。deployment可以管理POd的多个副本,并确保Pod按照期望的状态运行。
  Replicaset
  实现了pod多副本管理。使用dployment时会自动创建replicaset,也就是说deployment是通过replicaset来管理pod的多个副本的,我们通常不需要直接使用replicaset
  daemonset
  用于每个node最多只运行一个pod副本的场景。正如其名称所揭示,daemonset用于daemon
  statefuleset
  能够保证pod的每个副本在整个生命周期中名称是不变的。而其他controller不提供这个功能,当某个pod发生故障需要删除并重启的时候,pod的名称会发生变化。同事statuefulset会保证副本按照固定顺序启动,更新或者删除。
  job
  用于运行结束就删除的应用,而其他controller中的pod通常是长期运行的状态
  service
  定义外界访问一组特定的pod的方式。service有自己的端口和IP。service为pod提供了负载均衡
  Namespace
  可以将一个物理的cluster逻辑上划分成多个虚拟的cluster,每个cluster就是一个namespace。不同的namespace里的资源是完全隔离的

  kubernetes默认创建了两个namespace
  default  --创建资源时如果不指定,将被放到这个namespace中。
  kube-system --kubernetes自己创建的系统资源将放到这个namespace中

运维网声明 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-431656-1-1.html 上篇帖子: 【Kubernetes】K8S 网络隔离 方案 下篇帖子: (3) kubernetes pod调度
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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