开发者社区 > 云原生 > 容器服务 > 正文

OpenKruise中expectations这个包里的功能什么意义?

问题1:OpenKruise中expectations这个包里的功能就是为了在reconcile的时候观察一些期望的状态是吧,比如scale就是看新的pod有没有建起来这种?我没太明白这个包的含义。ObserveUpdated是同步数据?
SatisfiedExpectations是检查是否满足?
问题2:那update有一套expectation也是这个原因吗?这里的话vscale也会是一个比较持续的check过程,之前单独分出来就是因为这个原因。

展开
收起
十一0204 2023-07-26 09:01:38 111 0
4 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    是的,OpenKruise 中的 expectations 包提供了一种机制,用于在控制器的 Reconcile 循环中观察一些预期状态是否已经达到。

    比如,在控制器的 Reconcile 循环中,可以通过 ExpectDeploymentGeneration 方法观察 Deployment 的 Generation 字段是否已经更新,以确定 Deployment 是否已经完成更新。类似地,可以通过 ExpectReplicaSetPods 方法观察 ReplicaSet 中的 Pod 是否已经全部运行,并且通过 ExpectInPlaceUpdateRollout 方法观察 InPlaceUpdateRollout 是否已经完成等。

    ObserveUpdated 方法不是同步数据,而是用于从 Kubernetes API 服务器中获取指定对象的最新状态,并将其存储在控制器的缓存中。该方法返回的是 bool 类型的值,表示指定对象的状态是否已经更新。如果更新了,则会将更新后的状态存储在控制器的缓存中,以供后续使用。在控制器的 Reconcile 循环中,可以使用 ObserveUpdated 方法获取最新的对象状态,并根据需要执行进一步的操作。

    2023-07-29 09:03:36
    赞同 展开评论 打赏
  • 在OpenKruise中,expectations包的功能是为了帮助用户定义和满足对于应用程序或资源对象的期望状态。它提供了一种声明式的方式来描述应用程序的健康状况、性能指标和其他自定义标准,并根据这些期望状态进行监控和调整。

    具体而言,expectations包提供以下功能:

    1. 期望状态定义:通过使用expectations包,用户可以在应用程序或资源对象的规格中定义期望状态。这些期望状态可以包括最小副本数、最大副本数、容器资源限制、负载均衡策略、服务发现等等。

    2. 状态检查和报告expectations包提供了一套机制来检查实际状态是否符合期望状态,并生成相应的报告。如果实际状态与期望状态不匹配,报告会指出问题的具体原因和位置。

    3. 自动化修复和调整:当实际状态与期望状态不匹配时,expectations包可以触发自动化修复和调整的动作。例如,它可以根据预定义的策略自动调整副本数,重新分配资源,重启容器等来使实际状态达到期望状态。

    2023-07-27 22:41:13
    赞同 展开评论 打赏
  • 意中人就是我呀!

    " 回答1:是的,这里就是加一层等待 informer cache 的同步逻辑,涉及到一些计数相关的问题,如不加这个的话,比如创建 pod,创建完后并不能立刻 watch 到,如果此时没能等待 cache 同步就触发了下一次 reconcile scale,就会多创建了 pod。ExpectScale 是加入期望(加锁),ObserveScale(解锁) SatisfiedExpectations(check 锁)。
    回答2: 所以这里可能得好好设计一下,如果这个过程持续比较长的话,整个过程都锁住也不合适,会阻塞扩缩容。这里整个过程是指 reconcile 包括 scale vscale update,阻塞扩缩容是说阻塞 scale。此回答整理至钉群“OpenKruise 社区交流群”。"

    2023-07-26 12:37:24
    赞同 展开评论 打赏
  • 是个只会写bug的程序媛啊!!!
    1. OpenKruise 中的 expectations 包是用于编写和管理自动驾驶系统中的期望场景的。这些场景包括车辆在各种道路条件、交通密度和天气条件下的行为。

    2. 使用 expectations 包,您可以编写各种期望场景,并将其与自动驾驶系统中的其他组件(例如感知、决策和规划)进行集成,以测试系统的性能和鲁棒性。通过这种方式,您可以验证系统在不同场景下的行为,并识别出可能存在的问题,以便进行修复和改进。

    3. OpenKruise 的 expectations 包还提供了一些工具和算法,以帮助您管理和评估期望场景。例如,您可以比较实际系统行为与期望行为之间的差异,并生成有关系统性能的报告,以便进行后续分析和优化。

    4. 总之,OpenKruise 的 expectations 包是一种强大的工具,可帮助开发人员更好地了解自动驾驶系统的在不同场景下的行为,并对其进行优化和改进。

    2023-07-26 10:12:48
    赞同 展开评论 打赏
问答分类:

国内唯一 Forrester 公共云容器平台领导者象限。

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载