kubernetes学习之路(三)Pod

pod概念:

  pod为kubernetes中最小单位,一个pod中可以有多个容器,每个pod中有一个pause,pod中的容器通过pause可以共享网络和存储,例如一个pod中同时拥有php和nginx,那么nginx如果代理php,只需要使用locahost加端口即可,同样一个pod中的容器使用的端口是不能冲突的。

pod控制器类型:

  • RpelicationController:用来确保容器应用的副本数始终保持在用户定义的副本数,就是如果有容器异常推出,会自动创建新的pod来代替;如果容器数量超出定义也会回收,新版本中建议使用 ReplicaSet 取代 ReplicationController
  • ReplicaSet:它和ReplicationController 没有本质的区别,但ReplicaSet支持集合式 selector,也就是可以根据pod的标签进行某些操作,如当标签等于xxx则进行删除
  • Deployment:虽然RS可以独立使用,但更建议使用Deployment来自动管理ReplicaSet,这样就无需担心跟其他机制的不兼容问题,例如RS不支持rolling-update滚动更新,一般是用户创建Deployment,然后Deployment调用RS来创建pod
  • HPA:Horizontal Pod Autoscaling 仅适用于Deployment和RS,在V1版本中仅支持Pod的CPU利用率扩缩容,在v1a1pha版本中支持根据内存和用户自定义的metric扩缩容;什么意思呢,例如定义了一个pod的应用cpu限制是1,当使用率达到百分之八十,则自动创建一个pod,如果使用率还是百分之八十则继续创建,直到小于百分之八十,当小于某个点时又回自动缩减pod数量
  • StatefulSet:用来解决有状态服务的问题,上面的Deployments和RS是为无状态服务而设计的,无状态服务的特点就是不需要持久化存储,以及ip等,如php,java程序,只需要运行起来即可;而有状态服务如mysql,需要存储等固定的配置;那么StatefulSet应用的场景有那些呢:1、稳定的持久化存储,基于PVC来实现;2、稳定的网络标志,pod重新启动后pod的name和hostname不变,基于Headless Service来实现;3、有序的部署,有序的扩展,先启动一个pod,下一个pod启动前提是前一个pod的状态为Running和Ready,基于init containers来实现;4、有序的收缩,有序的删除,与上面的相反,后启动的先停止或删除
  • DaemonSet:确保全部或一些Node上运行一个pod副本,当有Node加入集群是,会为他们新增一个pod,当node从集群移除时这些pod也会被回收,删除DaemonSet将会删除它创建的所有Pod,例如:1、运行集群存储daemon,需要在每个node上运行glusterd或ceph;2、在每个node上进行日志收集daemon,需要每个node上都拥有fluentd或logstash;3、在每个node上运行监控daemon,则需要运行Prometheus Node Exporter
  • Job 和 CronJob:Job用于创建任务,如备份数据库等,一次创建永久使用,且有执行失败自动重复执行功能以及可以定义成功几次才算真正成功;cronjob就是可以指定执行的时间

服务发现:

  • service:就是多个pod绑定一个service,通过service可以轮询访问下面的pod,而想访问到pod的应用或用户只需要访问service就可以

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值