CPU 和内存分配

从 v2.3.0 版本开始支持

概述

本节介绍了集群中 Istio 组件的最低推荐计算资源。每个组件的 CPU 和内存分配都是可调整的。启用 Istio 之前,建议您确认 Rancher worker 节点具是否有足够的 CPU 和内存资源,运行 Istio 的所有组件。在较大型的部署中,我们建议通过为每个 Istio 组件添加节点选择器,将基础结构放置在集群中的专用节点上。

在 Kubernetes 中,资源请求意味着除非该节点至少具有指定数量的可用内存和 CPU,否则不会在该节点上部署工作负载。如果工作负载超过 CPU 或内存的限制,则可以终止该工作负载或将其从节点中逐出。有关管理容器资源限制的更多信息,请参考 Kubernetes 文档

下表汇总了建议的最低资源要求以及每个 Istio 核心组件的 CPU 和内存限制。

工作负载容器CPU - 请求Mem - 请求CPU - 限制Mem - 限制是否可配置
istio-pilotdiscovery500m2048Mi1000m4096Mi
istio-telemetrymixer1000m1024Mi4800m4096Mi
istio-policymixer1000m1024Mi4800m4096Mi
istio-tracingjaeger100m100Mi500m1024Mi
prometheusprometheus750m750Mi1000m1024Mi
grafanagrafana100m100Mi200m512Mi
Others-500m500Mi--
Total-3950m5546Mi>12300m>14848Mi-

操作步骤

您可以为每种 Istio 组件类型分别配置资源分配。本节包括每个组件的默认资源分配。

为了更轻松地将工作负载调度到节点,集群管理员可以减少对该组件的 CPU 和内存资源请求。但是,默认的 CPU 和内存分配是我们建议的最小值。

您可以在Istio 官方文档中找到有关 Istio 配置的更多信息。

要配置分配给 Istio 组件的资源,

  1. 在 Rancher 中,转到已安装 Istio 的集群。
  2. 单击 工具 > Istio。这将打开 Istio 配置页面。
  3. 更改 CPU 或内存分配,每个组件要被调度到的节点,或节点容忍。
  4. 单击 保存

结果: Istio 组件的资源分配已更新。

Pilot

Pilot 组件提供以下功能:

  • 认证配置
  • Envoy sidecar 的服务发现
  • 用于智能路由的流量管理功能(A/B 测试和金丝雀发布)
  • 弹性配置(超时,重试,断路器等)

有关 Pilot 组件的更多信息,请参阅文档.

选项描述是否必填项默认值
Pilot CPU 限制Istio-pilot pod 的 CPU 资源限制。1000
Pilot CPU 预留Istio-pilot pod 的 CPU 资源预留。500
Pilot Memory 限制Istio-pilot pod 的内存资源限制。4096
Pilot Memory 预留Istio-pilot pod 的内存资源预留。2048
跟踪抽样比例跟踪抽样的比例1
Pilot 结点选择器能够选择将 istio-pilot pod 部署到的节点。要使用此选项,节点必须带有对应标签。n/a

Mixer

Mixer 组件跨服务网格实施访问控制和使用策略。它还与用于监视工具(例如 Prometheus)的插件集成。Envoy sidecar 将遥测数据和监视数据传递给 Mixer,而 Mixer 将监视数据传递给 Prometheus。

有关 Mixer,策略和遥测的更多信息,请参阅文档

选项描述是否必填项默认值
Mixer Telemetry CPU 限制Istio-telemetry pod 的 CPU 资源限制。4800
Mixer Telemetry CPU 预留Istio-telemetry pod 的 CPU 资源预留。1000
Mixer Telemetry Memory 限制Istio-telemetry pod 的内存资源限制。4096
Mixer Telemetry Memory 预留Istio-telemetry pod 的内存资源预留。1024
Enable Mixer Policy是否部署 istio-policy。False
Mixer Policy CPU 限制Istio-policy pod 的 CPU 资源限制。是,当 Policy 启用时4800
Mixer Policy CPU 预留Istio-policy pod 的 CPU 资源预留。是,当 Policy 启用时1000
Mixer Policy Memory 限制Istio-policy pod 的内存资源限制。是,当 Policy 启用时4096
Mixer Policy Memory 预留Istio-policy pod 的内存资源预留。是,当 Policy 启用时1024
Mixer 结点选择器能够选择将 istio-policy 和 istio-telemetry pods 部署到的节点。要使用此选项,节点必须带有对应标签。n/a

Tracing

分布式跟踪使用户可以通过服务网格跟踪请求。这使解决延迟,并行性和序列化问题变得更加容易。

选项描述是否必填项默认值
启用跟踪是否部署 istio-tracing。
Tracing CPU 限制Istio-tracing pod 的 CPU 资源限制。500
Tracing CPU 预留Istio-tracing pod 的 CPU 资源预留。100
Tracing Memory 限制Istio-tracing pod 的内存资源限制。1024
Tracing Memory 预留Istio-tracing pod 的内存资源预留。100
Tracing 结点选择器能够选择将 tracing pod 部署到的节点。要使用此选项,节点必须带有对应标签。n/a

Ingress 网关

Istio 网关允许将 Istio 功能(例如监视和路由规则)应用于进入集群的流量。此网关是外部流量向 Istio 发出请求的先决条件。

详情请参阅文档.

选项描述是否必填项默认值
启用 Ingress 网关是否部署 istio-ingressgateway。
Ingress 网关的服务类型暴露网关服务的方式。您可以选择 NodePort 或 LoadbalancerNodePort
Http2 端口http2 请求的 NodePort 端口31380
Https 端口https 请求的 NodePort 端口31390
Load Balancer IPIngress 网关的负载均衡器 IPn/a
负载均衡器 IP 源范围Ingress 网关负载均衡器 IP 源的范围n/a
Ingress Gateway CPU 限制Istio-ingressgateway 的 CPU 资源限制。2000
Ingress Gateway CPU 预留Istio-ingressgateway 的 CPU 资源预留。100
Ingress Gateway Memory 限制Istio-ingressgateway 的内存资源限制。1024
Ingress Gateway Memory 预留Istio-ingressgateway 的内存资源预留。128
Ingress Gateway 结点选择器能够选择将 Istio-ingressgateway pod 部署到的节点。要使用此选项,节点必须带有对应标签。n/a

Prometheus

Prometheus 是一个开源系统监视和警报工具包,您可以使用 Prometheus 查询 Istio 指标。

选项描述是否必填项默认值
Prometheus CPU 限制Prometheus pod 的 CPU 资源限制。1000
Prometheus CPU 预留Prometheus pod 的 CPU 资源预留。750
Prometheus Memory 限制Prometheus pod 的内存资源限制。1024
Prometheus Memory 预留Prometheus pod 的内存资源预留。750
Prometheus 数据保留Prometheus 实例保留数据的时长6
Prometheus 结点选择器能够选择将 Prometheus pod 部署到的节点。要使用此选项,节点必须带有对应标签。n/a

Grafana

Grafana 可让您可视化 Prometheus 抓取的 Istio 流量数据,您可以使用 Grafana 可视化指标。

选项描述是否必填项默认值
启用 Grafana是否部署 Grafana。
Grafana CPU 限制Grafana pod 的 CPU 资源限制。是,当 Grafana 启用时200
Grafana CPU 预留Grafana pod 的 CPU 资源预留。是,当 Grafana 启用时100
Grafana Memory 限制Grafana pod 的内存资源限制。是,当 Grafana 启用时512
Grafana Memory 预留Grafana pod 的内存资源预留。是,当 Grafana 启用时100
Grafana 结点选择器能够选择将 Grafana pod 部署到的节点。要使用此选项,节点必须带有对应标签。n/a
启用 Grafana 持久存储启用 Grafana 持久存储是,当 Grafana 启用时
存储源使用存储类来配置新的持久卷或使用现有的持久卷声明是,当 Grafana 及其持久存储启用时使用存储类
存储类Grafana 存储使用的存储类型是,当 Grafana 及其持久存储启用,且存储源为存储类时使用默认存储类型
持久卷大小Grafana 所用的持久卷大小是,当 Grafana 及其持久存储启用,且存储源为存储类时5Gi
现有的持久卷声明Grafana 使用的现有的持久卷声明是,当 Grafana 及其持久存储启用,且存储源为现有的持久卷声明时n/a