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

容器服务ACK这个问题要怎么解决?

arms-cmonitor 的 helm 没法指定 node affinity,容器服务ACK这个问题要怎么解决?

展开
收起
三分钟热度的鱼 2023-07-11 18:11:31 89 0
4 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    是的,容器服务 ACK 中的 ARMS-cmonitor Helm Chart 确实没有提供直接指定 Node Affinity 的选项。不过,您可以通过修改 Helm Chart 的 values.yaml 文件,手动添加 Node Affinity 的配置项,以实现对节点的亲和性控制。

    具体来说,您可以按照以下步骤进行操作:

    下载 ARMS-cmonitor Helm Chart 的 values.yaml 文件,并保存至本地。

    打开 values.yaml 文件,找到 "deployment" 部分的 "spec" 字段。

    在 "spec" 字段中,添加 "template" 字段,并在其中添加 "spec" 字段,用于指定 ARMS-cmonitor 的 Pod 模板。示例代码如下:

    dts
    Copy
    deployment:

    ...

    spec:
    template:
    spec:
    affinity:
    nodeAffinity:
    requiredDuringSchedulingIgnoredDuringExecution:
    nodeSelectorTerms:

              - matchExpressions:
                - key: <your-node-label-key>
                  operator: In
                  values:
                  - <your-node-label-value>
    

    其中,"" 和 "" 分别为您需要设置的节点标签的键和值,用于指定 ARMS-cmonitor Pod 所在的节点。您需要根据实际情况修改这些参数。

    保存并关闭 values.yaml 文件。

    使用 Helm 将修改后的 values.yaml 文件部署至 Kubernetes 集群中。示例命令如下:

    Copy
    helm upgrade -f values.yaml aliyun/arms-cmonitor
    其中,"" 为 ARMS-cmonitor 的 Helm 发布名称,您需要根据实际情况修改为您自己的名称。

    2023-07-29 09:03:39
    赞同 展开评论 打赏
  • 如果在使用阿里云容器服务ACK时,发现ARM架构的节点无法通过helm指定node affinity(节点亲和性),可以考虑以下解决方法:

    1. 使用其他方式设置节点亲和性:除了使用helm外,您还可以通过其他方式来设置节点亲和性。例如,可以直接在Pod的配置文件中使用Node Affinity规范来指定ARM节点。

    2. 自定义Helm Chart:如果arms-cmonitor的官方Helm Chart不支持指定节点亲和性,您可以考虑自定义一个Helm Chart。创建自定义Chart时,可以添加模板代码来设置节点亲和性,并确保将该Chart与arms-cmonitor正确关联。

    3. 使用Kubernetes原生工具:而不是使用Helm,您可以使用Kubernetes原生工具(如kubectl)来手动创建Pod并指定节点亲和性。这样可以更精细地控制Pod的调度方式。

    4. 参考其他社区资源:在阿里云容器服务ACK的社区或相关开源社区中,可能有其他用户遇到类似问题并提出了解决方案。您可以查找并参考这些资源,以找到适合您的环境和需求的解决方法。

    2023-07-28 15:58:41
    赞同 展开评论 打赏
  • 全栈JAVA领域创作者

    容器服务 ACK 支持使用 Kubernetes 节点亲和性来控制容器在特定节点上运行。如果您使用的是 Helm,则可以通过在 Chart 的 values.yaml 文件中添加 nodeSelector 定义来指定节点亲和性。
    这将使容器服务 ACK 在名为 "my-app" 的应用程序节点上运行。如果您需要在多个节点上运行容器,则可以指定多个节点选择器。
    如果您使用的是其他方式部署容器服务 ACK,则可以使用 Kubernetes 的 NodeAffinity 功能来指定容器在特定节点上运行。具体来说,您可以在 PodSpec 文件中添加以下内容:

    这将使容器服务 ACK 在名为 "my-app" 的应用程序节点上运行。请注意,这仅适用于支持 NodeAffinity 的 Kubernetes 集群。

    2023-07-11 22:30:34
    赞同 展开评论 打赏
  • 直接修改daemonset就好了 加个affanity,arms-prom命名空间下的 cmonitor-agent。此回答整理自钉群“【外】Kubernetes监控答疑2群”

    2023-07-11 18:50:00
    赞同 展开评论 打赏

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

相关电子书

更多
阿里云MaxCompute百问百答 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载