kubernetes Pod 控制器

定义pod的资源清单一共有五个字段: Pod

  apiVersion      kind      metadata      spec   status(只读)

那么在spec中内嵌的为Container的字段有:
spec : 
    containers: 
    nodeSelector:
    restartPolicy:  
        always, Never, OnFailure
    
    container:
        name
        image
        imagePullPolicy: Always, Never, IfNotPresent
        ports:
            name
            containerPort
        livenessProbe
        readinessProbe
        lifecycle 
        

    ExecAction: exec
    TCPSocketAction: tcpsocket
    HTTPGetAction: httpget 哪个地址的哪个端口发起请求 


       

那么下来我们说一下Pod控制器:

  那么配置清单的配置,是定义pod内部的所需的资源,而后直接提交给apiserver,由apiserver转交给schelder完成调度,由目标节点启动相关的资源创建就完成了,那么在由yaml文件创建的pod在被删除的情况下会被重建吗?  答案:是当然不会的。那么此次的行为称为自主式pod,是不由pod控制器重建的。

那么在定义pod的时候是很少用自主式的pod来进行创建的,一般都是由pod控制器来实现的,那么pod的创建被内嵌到了pod控制器中。

pod控制器的类型:

ReplicationController: 最早的k8s的控制工具,后来人们发现这个设计的目标过于庞大,不现实,目前废弃了这个功能。

ReplicaSet:   代用户创建指定数量的pod副本,并确保pod副本一直处于用户期望的数量状态,日过少了多退少补,而且还支持滚动更新,扩容缩容。

ReplicaSet的组件:一共由三个组件组成:
1.用户期望的pod副本数   2.标签选择器,以便pod方便管理属于自己的pod   3.pod模版,那么在pod当前的数量不符合期望值,那么根据模版进行补全
  

但是ReplicaSet并不是直接使用的pod控制器,或者说k8s并不建议使用ReplicaSet的控制器,

而是应该使用Deployment控制器,但是Deployment并不是直接控制pod而是基于ReplicaSet之上的,那么Deployment通过控制ReplicaSet来控制Pod,那么一定是Deployment一定是提供了比ReplicaSet更强大的功能,那么Deployment支持滚动更新等更多更请大的功能,而且还提供了声明式的配置,那么声明式的配置可以随时进行声明,可以随时改变我们在apiserver上的目标状态,只要那么资源支持动态的更新,运行时的修改,那么由了一个更为请大的接口,那么Deployment就是将来掌握的控制器之一,支持无状态应用最好的控制器。

注:pod的副本数和节点的数量并没有什么必然的关系,pod数量超过节点数的时候必然是不同的pod数分布在不同的节点上,或者一个节点上分布多个pod对象,那么对于pod内部的日志的信息的收集就比较麻烦,日志存在的信息是在节点上以存储卷映射的形式存于节点上的,

节点上日志的运作:  我们应该在每一个节点上收集节点和容器所创建的pod上的日志,他们通过卷的方式映射到节点上,

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值