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

问下 OpenKruise中的SidecarSet适合管理有状态的sidecar容器吗?

问下 OpenKruise中的SidecarSet适合管理有状态的sidecar容器吗?
比如每个cloneset 实例都对应了一个版本的sidecarset实例,这样sidecarset实例数量等同于cloneset实例数量,这样是不是会有效率问题?这样是最佳实践吗?

展开
收起
乐天香橙派 2023-07-12 11:27:37 90 0
3 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    OpenKruise 中的 SidecarSet 是用来管理无状态 sidecar 容器的,它可以自动地创建和删除 sidecar 容器,以及与主容器建立相应的关联。因此,如果您需要管理有状态的 sidecar 容器,可能需要考虑其他方案。

    有状态的 sidecar 容器通常需要考虑数据的持久性和一致性问题,需要保证每个 sidecar 容器都能够访问相同的数据和状态。此外,有状态的 sidecar 容器还需要考虑容器生命周期的管理和协调问题,例如容器的启动顺序、重启策略、升级和回滚等。

    如果您需要管理有状态的 sidecar 容器,可以考虑使用 StatefulSet 或 Operator 等 Kubernetes 原生 API 和控制器,它们可以提供更完整的容器生命周期管理和数据协调能力。

    2023-07-29 09:03:49
    赞同 展开评论 打赏
  • 在 OpenKruise 中,SidecarSet 是用于管理 Sidecar 容器的资源对象。它可以根据需要自动创建和调度 Sidecar 容器,并保持与其他主要容器实例的关联关系。

    对于有状态的 Sidecar 容器,使用 SidecarSet 可能并不是最佳实践。通常情况下,SidecarSet 更适合用于管理无状态的 Sidecar 容器,它们可以在多个副本之间共享相同的配置和行为。

    如果您的场景涉及到每个 CloneSet 实例都对应一个版本的 SidecarSet 实例,这将导致 SidecarSet 实例数量等于 CloneSet 实例数量。这种情况下可能会存在一些效率问题:

    1. 资源消耗:每个 SidecarSet 实例都需要占用一定的系统资源,包括 CPU、内存和存储等。如果 CloneSet 实例数量很大,将会占用较多的资源。

    2. 管理复杂性:随着数量增加,管理大量的 SidecarSet 实例可能变得复杂和困难。这意味着您需要花费更多的时间和精力来维护和操作这些实例。

    针对这种情况,可能有其他更适合的解决方案,例如使用配置模板、参数化配置或集中管理的方式来处理有状态的 Sidecar 容器。这样可以减少资源消耗和管理复杂性。

    最佳实践通常会因具体的应用场景而异,建议根据您的需求和环境来评估不同的方案,并选择适合您的方式进行管理和部署 Sidecar 容器。

    2023-07-28 15:05:25
    赞同 展开评论 打赏
  • 如果 sidecar 和main 属于两个团队,两个团队的人需要 分别来维护。。CloneSet + SIdecarSet 合适。如果就是一个团队,其实 放到 CloneSet 感觉维护更加简单一些。不过还是有两个同时的独立灰度的需求昂。 sidecarSet 的话记录配置一下 readinessProbe要不然的话不会 not ready的—此回答来自钉群“OAM/KubeVela 社区交流群”

    2023-07-12 15:43:49
    赞同 展开评论 打赏

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

相关电子书

更多
阿里云文件存储 NAS 在容器场景的最佳实践 立即下载
何种数据存储才能助力容器计算 立即下载
《容器网络文件系统CNFS》 立即下载