安装选项(Helm)

使用 Helm 安装 Istio 的方式正在被弃用,不过你在使用 istioctl 安装 Istio 时仍然可以使用这些 Helm 的配置项,把 values. 作为选项名的前缀。例如,替换下面的 helm 命令:

  1. $ helm template ... --set global.mtls.enabled=true

可以使用 istioctl 命令:

  1. $ istioctl manifest generate ... --set values.global.mtls.enabled=true

参考自定义配置获取详细信息。

不幸的是,由于支持的选项集有最新的变化,此文档已经过时。获取准确的支持的选项集,请参阅 Install charts

certmanager 选项

关键字默认值描述
certmanager.enabledfalse
certmanager.replicaCount1
certmanager.hubquay.io/jetstack
certmanager.imagecert-manager-controller
certmanager.tagv0.6.2
certmanager.resources{}
certmanager.nodeSelector{}
certmanager.tolerations[]
certmanager.podAntiAffinityLabelSelector[]
certmanager.podAntiAffinityTermLabelSelector[]

galley 选项

关键字默认值描述
galley.enabledtrue
galley.replicaCount1
galley.rollingMaxSurge100%
galley.rollingMaxUnavailable25%
galley.imagegalley
galley.nodeSelector{}
galley.tolerations[]
galley.podAntiAffinityLabelSelector[]
galley.podAntiAffinityTermLabelSelector[]

gateways 选项

关键字默认值描述
gateways.enabledtrue
gateways.istio-ingressgateway.enabledtrue
gateways.istio-ingressgateway.sds.enabledfalse如果是 true,ingress gateway 将从 SDS 服务器获取凭证来处理 TLS 连接。
gateways.istio-ingressgateway.sds.imagenode-agent-k8sSDS 服务器为 ingress gateway 监测 kubernetes 密钥和规定的凭证。服务器和 ingress gateway 运行在同一个 pod 中。
gateways.istio-ingressgateway.sds.resources.requests.cpu100m
gateways.istio-ingressgateway.sds.resources.requests.memory128Mi
gateways.istio-ingressgateway.sds.resources.limits.cpu2000m
gateways.istio-ingressgateway.sds.resources.limits.memory1024Mi
gateways.istio-ingressgateway.labels.appistio-ingressgateway
gateways.istio-ingressgateway.labels.istioingressgateway
gateways.istio-ingressgateway.autoscaleEnabledtrue
gateways.istio-ingressgateway.autoscaleMin1
gateways.istio-ingressgateway.autoscaleMax5
gateways.istio-ingressgateway.rollingMaxSurge100%
gateways.istio-ingressgateway.rollingMaxUnavailable25%
gateways.istio-ingressgateway.resources.requests.cpu100m
gateways.istio-ingressgateway.resources.requests.memory128Mi
gateways.istio-ingressgateway.resources.limits.cpu2000m
gateways.istio-ingressgateway.resources.limits.memory1024Mi
gateways.istio-ingressgateway.cpu.targetAverageUtilization80
gateways.istio-ingressgateway.loadBalancerIP“”
gateways.istio-ingressgateway.loadBalancerSourceRanges[]
gateways.istio-ingressgateway.externalIPs[]
gateways.istio-ingressgateway.serviceAnnotations{}
gateways.istio-ingressgateway.podAnnotations{}
gateways.istio-ingressgateway.typeLoadBalancer如果需要可以改为 NodePort,ClusterIP 或 LoadBalancer
gateways.istio-ingressgateway.ports.targetPort15020
gateways.istio-ingressgateway.ports.namestatus-port
gateways.istio-ingressgateway.ports.targetPort80
gateways.istio-ingressgateway.ports.namehttp2
gateways.istio-ingressgateway.ports.nodePort31380
gateways.istio-ingressgateway.ports.namehttps
gateways.istio-ingressgateway.ports.nodePort31390
gateways.istio-ingressgateway.ports.nametcp
gateways.istio-ingressgateway.ports.nodePort31400
gateways.istio-ingressgateway.ports.targetPort15029
gateways.istio-ingressgateway.ports.namehttps-kiali
gateways.istio-ingressgateway.ports.targetPort15030
gateways.istio-ingressgateway.ports.namehttps-prometheus
gateways.istio-ingressgateway.ports.targetPort15031
gateways.istio-ingressgateway.ports.namehttps-grafana
gateways.istio-ingressgateway.ports.targetPort15032
gateways.istio-ingressgateway.ports.namehttps-tracing
gateways.istio-ingressgateway.ports.targetPort15443
gateways.istio-ingressgateway.ports.nametls
gateways.istio-ingressgateway.meshExpansionPorts.targetPort15011
gateways.istio-ingressgateway.meshExpansionPorts.nametcp-pilot-grpc-tls
gateways.istio-ingressgateway.meshExpansionPorts.targetPort15004
gateways.istio-ingressgateway.meshExpansionPorts.nametcp-mixer-grpc-tls
gateways.istio-ingressgateway.meshExpansionPorts.targetPort8060
gateways.istio-ingressgateway.meshExpansionPorts.nametcp-citadel-grpc-tls
gateways.istio-ingressgateway.meshExpansionPorts.targetPort853
gateways.istio-ingressgateway.meshExpansionPorts.nametcp-dns-tls
gateways.istio-ingressgateway.secretVolumes.secretNameistio-ingressgateway-certs
gateways.istio-ingressgateway.secretVolumes.mountPath/etc/istio/ingressgateway-certs
gateways.istio-ingressgateway.secretVolumes.secretNameistio-ingressgateway-ca-certs
gateways.istio-ingressgateway.secretVolumes.mountPath/etc/istio/ingressgateway-ca-certs
gateways.istio-ingressgateway.applicationPorts“”
gateways.istio-ingressgateway.env.ISTIO_META_ROUTER_MODE“sni-dnat”使用这种模式的网关可以确保 pilot 为内部服务生成一组额外的集群,而不使用 Istio mTLS,从而支持跨集群路由。
gateways.istio-ingressgateway.nodeSelector{}
gateways.istio-ingressgateway.tolerations[]
gateways.istio-ingressgateway.podAntiAffinityLabelSelector[]
gateways.istio-ingressgateway.podAntiAffinityTermLabelSelector[]
gateways.istio-egressgateway.enabledfalse
gateways.istio-egressgateway.labels.appistio-egressgateway
gateways.istio-egressgateway.labels.istioegressgateway
gateways.istio-egressgateway.autoscaleEnabledtrue
gateways.istio-egressgateway.autoscaleMin1
gateways.istio-egressgateway.autoscaleMax5
gateways.istio-egressgateway.rollingMaxSurge100%
gateways.istio-egressgateway.rollingMaxUnavailable25%
gateways.istio-egressgateway.resources.requests.cpu100m
gateways.istio-egressgateway.resources.requests.memory128Mi
gateways.istio-egressgateway.resources.limits.cpu2000m
gateways.istio-egressgateway.resources.limits.memory1024Mi
gateways.istio-egressgateway.cpu.targetAverageUtilization80
gateways.istio-egressgateway.serviceAnnotations{}
gateways.istio-egressgateway.podAnnotations{}
gateways.istio-egressgateway.typeClusterIP如果需要可改为 NodePort 或 LoadBalancer
gateways.istio-egressgateway.ports.namehttp2
gateways.istio-egressgateway.ports.namehttps
gateways.istio-egressgateway.ports.targetPort15443
gateways.istio-egressgateway.ports.nametls
gateways.istio-egressgateway.secretVolumes.secretNameistio-egressgateway-certs
gateways.istio-egressgateway.secretVolumes.mountPath/etc/istio/egressgateway-certs
gateways.istio-egressgateway.secretVolumes.secretNameistio-egressgateway-ca-certs
gateways.istio-egressgateway.secretVolumes.mountPath/etc/istio/egressgateway-ca-certs
gateways.istio-egressgateway.env.ISTIO_META_ROUTER_MODE“sni-dnat”
gateways.istio-egressgateway.nodeSelector{}
gateways.istio-egressgateway.tolerations[]
gateways.istio-egressgateway.podAntiAffinityLabelSelector[]
gateways.istio-egressgateway.podAntiAffinityTermLabelSelector[]
gateways.istio-ilbgateway.enabledfalse
gateways.istio-ilbgateway.labels.appistio-ilbgateway
gateways.istio-ilbgateway.labels.istioilbgateway
gateways.istio-ilbgateway.autoscaleEnabledtrue
gateways.istio-ilbgateway.autoscaleMin1
gateways.istio-ilbgateway.autoscaleMax5
gateways.istio-ilbgateway.rollingMaxSurge100%
gateways.istio-ilbgateway.rollingMaxUnavailable25%
gateways.istio-ilbgateway.cpu.targetAverageUtilization80
gateways.istio-ilbgateway.resources.requests.cpu800m
gateways.istio-ilbgateway.resources.requests.memory512Mi
gateways.istio-ilbgateway.loadBalancerIP“”
gateways.istio-ilbgateway.serviceAnnotations.cloud.google.com/load-balancer-type“internal”
gateways.istio-ilbgateway.podAnnotations{}
gateways.istio-ilbgateway.typeLoadBalancer
gateways.istio-ilbgateway.ports.namegrpc-pilot-mtls
gateways.istio-ilbgateway.ports.namegrpc-pilot
gateways.istio-ilbgateway.ports.targetPort8060
gateways.istio-ilbgateway.ports.nametcp-citadel-grpc-tls
gateways.istio-ilbgateway.ports.nametcp-dns
gateways.istio-ilbgateway.secretVolumes.secretNameistio-ilbgateway-certs
gateways.istio-ilbgateway.secretVolumes.mountPath/etc/istio/ilbgateway-certs
gateways.istio-ilbgateway.secretVolumes.secretNameistio-ilbgateway-ca-certs
gateways.istio-ilbgateway.secretVolumes.mountPath/etc/istio/ilbgateway-ca-certs
gateways.istio-ilbgateway.nodeSelector{}
gateways.istio-ilbgateway.tolerations[]

global 选项

关键字默认值描述
global.hub</td><td><code>Istio 镜像的默认 hub。发布在 'istio' 项目下的 docker hub 中。通过 gcr.io 的 prow 每日构建。</code></td></tr><tr><td><code>global.tag</code></td><td>Istio 镜像的默认 tag
global.logging.level“default:info”
global.monitoringPort15014mixer, pilot, galley 和 sidecar injector 使用的监控端口
global.k8sIngress.enabledfalse
global.k8sIngress.gatewayNameingressgatewayk8s Ingress 资源使用的网关。默认使用 ‘istio:ingressgateway’,通过设置 ‘gateways.enabled’ 和 ‘gateways.istio-ingressgateway.enabled’ 标志为 true 来安装。
global.k8sIngress.enableHttpsfalseenableHttps 将在 ingress 添加 443 端口。它要求证书安装在预期的密钥中——在没有证书的情况下启用此选项将导致 LDS 拒绝,ingress 将无法工作。
global.proxy.init.resources.limits.cpu100m
global.proxy.init.resources.limits.memory50Mi
global.proxy.init.resources.requests.cpu10m
global.proxy.init.resources.requests.memory10Mi
global.proxy.imageproxyv2
global.proxy.clusterDomain“cluster.local”集群域,默认值是 “cluster.local”。
global.proxy.resources.requests.cpu100m
global.proxy.resources.requests.memory128Mi
global.proxy.resources.limits.cpu2000m
global.proxy.resources.limits.memory1024Mi
global.proxy.concurrency2控制代理 worker 线程的数量。如果设置为 0,每个 CPU 每个核启动一个 worker 线程。
global.proxy.accessLogFile“”
global.proxy.accessLogFormat“”配置如何以及哪些字段显示在 sidecar 访问日志中。设置为空字符串为默认的日志格式
global.proxy.accessLogEncodingTEXT配置 sidecar 的访问日志为 JSON 或 TEXT 格式
global.proxy.envoyAccessLogService.enabledfalse
global.proxy.envoyAccessLogService.host</td><td><code>例: accesslog-service.istio-system</code></td></tr><tr><td><code>global.proxy.envoyAccessLogService.port</code></td><td>例:15000
global.proxy.envoyAccessLogService.tlsSettings.modeDISABLEDISABLE,SIMPLE,MUTUAL,ISTIO_MUTUAL
global.proxy.envoyAccessLogService.tlsSettings.clientCertificate</td><td><code>例:/etc/istio/als/cert-chain.pem</code></td></tr><tr><td><code>global.proxy.envoyAccessLogService.tlsSettings.privateKey</code></td><td>例:/etc/istio/als/key.pem
global.proxy.envoyAccessLogService.tlsSettings.caCertificates</td><td><code>例:/etc/istio/als/root-cert.pem</code></td></tr><tr><td><code>global.proxy.envoyAccessLogService.tlsSettings.sni</code></td><td>例:tlsomedomain
global.proxy.envoyAccessLogService.tlsSettings.subjectAltNames[]
global.proxy.envoyAccessLogService.tcpKeepalive.probes3
global.proxy.envoyAccessLogService.tcpKeepalive.time10s
global.proxy.envoyAccessLogService.tcpKeepalive.interval10s
global.proxy.logLevel“”代理的日志级别,应用于网关和 sidecars。如果为空,则使用 “warning”。期望值是:trace|debug|info|warning|error|critical|off
global.proxy.componentLogLevel“”每个组件的代理日志级别,应用于网关和 sidecars。如果组件级别没设置,全局的 “logLevel” 将启用。如果为空,”misc:error” 将启用
global.proxy.dnsRefreshRate300s配置类型为 STRICT_DNS 的 Envoy 集群的 DNS 刷新率,必须以秒为单位。例如:300s 是合法的但 5m 不合法。
global.proxy.protocolDetectionTimeout10ms自动协议检测使用一组试探法来确定连接是否使用 TLS(服务端),以及正在使用的应用程序协议(例如 http 和 tcp)。 试探法依赖于客户端发送的第一个数据位。对于像 Mysql,MongoDB 这样的服务器的第一协议来说,在指定的时间段之后,Envoy 将对协议检测超时,默认为非 mTLS 的 TCP 流量。设置此字段以调整 Envoy 将等待客户端发送第一个数据位的时间。(必须 >=1ms)
global.proxy.privilegedfalse如果设置为 true,istio-proxy 容器将享有 securityContext 的权限。
global.proxy.enableCoreDumpfalse如果设置,新注入的 sidecars 将启用 core dumps。
global.proxy.enableCoreDumpImageubuntu:xenial镜像用于开启 core dumps。仅在 “enableCoreDump” 设置为 true 时使用。
global.proxy.statusPort15020Pilot 代理健康检查的默认端口。值为 0 将关闭健康检查。
global.proxy.readinessInitialDelaySeconds1readiness 探针的初始延迟秒数。
global.proxy.readinessPeriodSeconds2readiness 探针的探测间隔。
global.proxy.readinessFailureThreshold30确定 readiness 失败前探测成功失败的数量。
global.proxy.includeIPRanges
global.proxy.excludeIPRanges“”
global.proxy.excludeOutboundPorts“”
global.proxy.kubevirtInterfaces“”pod 内部接口
global.proxy.includeInboundPorts““
global.proxy.excludeInboundPorts“”
global.proxy.autoInjectenabled控制 sidecar 注入器的 ‘policy’。
global.proxy.envoyStatsd.enabledfalse如果设置为 true,主机和端口必须提供。Istio 不再提供一个 statsd 收集器。
global.proxy.envoyStatsd.host</td><td><code>例: statsd-svc.istio-system</code></td></tr><tr><td><code>global.proxy.envoyStatsd.port</code></td><td>例:9125
global.proxy.envoyMetricsService.enabledfalse
global.proxy.envoyMetricsService.host</td><td><code>例:metrics-service.istio-system</code></td></tr><tr><td><code>global.proxy.envoyMetricsService.port</code></td><td>例:15000
global.proxy.tracer“zipkin”指定使用以下哪一个追踪器:zipkin,lightstep, datadog,stackdriver。 如果使用外部 GCP 的 stackdriver 追踪器,设置环境变量 GOOGLE_APPLICATION_CREDENTIALS 为 GCP 的凭证文件。
global.proxy_init.imageproxy_initproxy_init 容器的基本名称,用于配置 iptables。
global.imagePullPolicyIfNotPresent
global.controlPlaneSecurityEnabledfalse启用 controlPlaneSecurityEnabled enabled。当密钥被传输时,将导致启动 pod 的延迟,不建议用于测试。
global.disablePolicyCheckstruedisablePolicyChecks 关闭 mixer 策略检查。如果 mixer.policy.enabled==true 那么 disablePolicyChecks 生效。当在 istio config map 中设置此值时 —— pilot 需要重启才能生效。
global.policyCheckFailOpenfalsepolicyCheckFailOpen 允许在无法访问混合策略服务的情况下进行通信。缺省值为 false,这意味着当客户端无法连接到 Mixer 时,流量将被拒绝。
global.enableTracingtrueEnableTracing 设置和 istio config map 中同样的值,需要 pilot 重启生效。
global.tracer.lightstep.address“”例:lightstep-satellite:443
global.tracer.lightstep.accessToken“”例:abcdefg1234567
global.tracer.lightstep.securetrue例:true|false
global.tracer.lightstep.cacertPath“”例:/etc/lightstep/cacert.pem
global.tracer.zipkin.address“”
global.tracer.datadog.address“$(HOST_IP):8126”
global.mtls.enabledfalse服务到服务 mtls 的默认设置项。可以明确的设置使用目标规则或服务 annotations。
global.imagePullSecrets[]列出你从私有注册拉取 Istio 镜像所需的密钥。
global.arch.amd642
global.arch.s390x2
global.arch.ppc64le2
global.oneNamespacefalse是否限制控制器管理的应用程序名称空间;如果不设置,控制器将检测所有命名空间。
global.defaultNodeSelector{}将缺省节点选择器应用于所有 Deployment,以便所有 pod 都能被约束来运行特定的节点。每个组件都可以通过在下面的相关部分中添加其节点选择器块并设置所需的值来覆盖这些默认值。
global.defaultTolerations[]缺省节点容错应用于所有 Deployment,以便所有 pod 都可以调度到具有匹配 taints 的特定节点。每个组件都可以通过在下面的相关部分中添加自己的 tolerance 块并设置所需的值来覆盖这些默认值。配置此字段,以防所有 Istio 控制平面的 pod 都被调度到指定 taints 的特定节点。
global.configValidationtrue是否执行服务端配置验证。
global.meshExpansion.enabledfalse
global.meshExpansion.useILBfalse如果设置为 true,pilot 和 citadel mtls 以及明文 pilot 端口将暴露在内部网关上。
global.multiCluster.enabledfalse当两个 kubernetes 集群中的 pod 不能互相直接通信时,设置为 true 将通过各自的 ingressgateway 服务连接两个 kubernetes 集群。所有的集群都应该使用 Istio mTLS,并且必须有一个共享的根 CA 才能让这个模型工作。
global.defaultResources.requests.cpu10m
global.defaultPodDisruptionBudget.enabledtrue
global.priorityClassName“”
global.useMCPtrue使用网格控制协议(MCP)来配置 Mixer 和 Pilot。需要 galley (—set galley.enabled=true)。
global.trustDomain“”
global.meshID“”Mesh ID 意为 Mesh 标识符。在网格相互作用的范围内,它应该是唯一的,但不要求它是全局/普遍唯一的。例如,如果下面条件任意一个为真,那么两个网格必须有不同的 Mesh ID:—— 网格将遥测聚合在一个地方 —— 网格将连接在一起 —— 如果管理员期望这些条件中的任何一个在将来可能成为现实,那么策略将被从一个网格写入到另一个引用它的网格,他们需要保证这些网格被指定了不同的 Mesh ID。在一个多集群网格下,每一个集群必须(手动或自动)配置相同的 Mesh ID。如果一个存在的集群“加入”多集群网格,它需要被迁移到新的 mesh ID。详细的迁移还在制定中,在安装后更改 Mesh ID 可能会造成混乱。如果这个网格没有指定一个特定值,Istio 将使用该网格信任域的值。最佳实践是选择适当的信任域值。
global.outboundTrafficPolicy.modeALLOW_ANY
global.sds.enabledfalse启用 SDS。如果设置为 true,sidecars 的 mTLS 证书将通过 SecretDiscoveryService 分发,而不是使用 K8S secret 来挂载。
global.sds.udsPath“”
global.meshNetworks{}
global.localityLbSetting.enabledtrue
global.enableHelmTestfalse指定是否启用 helm test。此字段默认为 false,所以当生成模板时 ‘helm template …’ 将忽略 helm test yaml 文件。

grafana 选项

关键字默认值描述
grafana.enabledfalse
grafana.replicaCount1
grafana.image.repositorygrafana/grafana
grafana.image.tag6.1.6
grafana.ingress.enabledfalse
grafana.ingress.hostsgrafana.local常用于创建一个 Ingress 记录
grafana.persistfalse
grafana.storageClassName“”
grafana.accessModeReadWriteMany
grafana.security.enabledfalse
grafana.security.secretNamegrafana
grafana.security.usernameKeyusername
grafana.security.passphraseKeypassphrase
grafana.nodeSelector{}
grafana.tolerations[]
grafana.env{}
grafana.envSecrets{}
grafana.podAntiAffinityLabelSelector[]
grafana.podAntiAffinityTermLabelSelector[]
grafana.contextPath/grafana
grafana.service.annotations{}
grafana.service.namehttp
grafana.service.typeClusterIP
grafana.service.externalPort3000
grafana.datasources.datasources.apiVersion1
grafana.datasources.datasources.datasources.typeprometheus
grafana.datasources.datasources.datasources.type.orgId1
grafana.datasources.datasources.datasources.type.urlhttp://prometheus:9090
grafana.datasources.datasources.datasources.type.accessproxy
grafana.datasources.datasources.datasources.type.isDefaulttrue
grafana.datasources.datasources.datasources.type.jsonData.timeInterval5s
grafana.datasources.datasources.datasources.type.editabletrue
grafana.dashboardProviders.dashboardproviders.apiVersion1
grafana.dashboardProviders.dashboardproviders.providers.orgId1
grafana.dashboardProviders.dashboardproviders.providers.orgId.folder‘istio’
grafana.dashboardProviders.dashboardproviders.providers.orgId.typefile
grafana.dashboardProviders.dashboardproviders.providers.orgId.disableDeletionfalse
grafana.dashboardProviders.dashboardproviders.providers.orgId.options.path/var/lib/grafana/dashboards/istio

cni 选项

关键字默认值描述
cni.enabledfalse

istiocoredns 选项

关键字默认值描述
istiocoredns.enabledfalse
istiocoredns.replicaCount1
istiocoredns.rollingMaxSurge100%
istiocoredns.rollingMaxUnavailable25%
istiocoredns.coreDNSImagecoredns/coredns:1.1.2
istiocoredns.coreDNSPluginImageistio/coredns-plugin:0.2-istio-1.1
istiocoredns.nodeSelector{}
istiocoredns.tolerations[]
istiocoredns.podAntiAffinityLabelSelector[]
istiocoredns.podAntiAffinityTermLabelSelector[]

kiali 选项

关键字默认值描述
kiali.enabledfalse注意当通过 Helm 安装,使用 demo yaml 时,默认值为 true。
kiali.replicaCount1
kiali.hubquay.io/kiali
kiali.imagekiali
kiali.tagv1.1.0
kiali.contextPath/kiali访问 Kiali UI 的根上下文路径。
kiali.nodeSelector{}
kiali.tolerations[]
kiali.podAntiAffinityLabelSelector[]
kiali.podAntiAffinityTermLabelSelector[]
kiali.ingress.enabledfalse
kiali.ingress.hostskiali.local用来创建一个 Ingress 记录。
kiali.dashboard.auth.strategylogin可以匿名,登录或 openshift
kiali.dashboard.secretNamekiali必须使用该名称创建密钥——其中一个不是开箱即用的。
kiali.dashboard.viewOnlyModefalse将服务帐户绑定到只读访问权限的角色。
kiali.dashboard.grafanaURL</td><td><code>如果你安装了 Grafana 并可以通过客户端浏览器访问,设置此值作为它的外部 URL。当 Grafana 指标被显示时 Kiali 将重定向用户到此 URL。</code></td></tr><tr><td><code>kiali.dashboard.jaegerURL</code></td><td>如果你安装了 Jaeger 并可以通过客户端浏览器访问,设置此值作为它的外部 URL。当 Jaeger 追踪被显示时 Kiali 将重定向用户到此 URL。
kiali.prometheusAddrhttp://prometheus:9090
kiali.createDemoSecretfalse为 true 时,将使用默认用户名和密码创建密钥。用于演示。
kiali.security.enabledtrue
kiali.security.cert_file/kiali-cert/cert-chain.pem
kiali.security.private_key_file/kiali-cert/key.pem

mixer 选项

关键字默认值描述
mixer.imagemixer
mixer.env.GODEBUGgctrace=1
mixer.env.GOMAXPROCS“6”最大进程数为 ceil(cpu limit + 1)
mixer.policy.enabledfalse如果策略启用,global.disablePolicyChecks 生效。
mixer.policy.replicaCount1
mixer.policy.autoscaleEnabledtrue
mixer.policy.autoscaleMin1
mixer.policy.autoscaleMax5
mixer.policy.cpu.targetAverageUtilization80
mixer.policy.rollingMaxSurge100%
mixer.policy.rollingMaxUnavailable25%
mixer.telemetry.enabledtrue
mixer.telemetry.replicaCount1
mixer.telemetry.autoscaleEnabledtrue
mixer.telemetry.autoscaleMin1
mixer.telemetry.autoscaleMax5
mixer.telemetry.cpu.targetAverageUtilization80
mixer.telemetry.rollingMaxSurge100%
mixer.telemetry.rollingMaxUnavailable25%
mixer.telemetry.sessionAffinityEnabledfalse
mixer.telemetry.loadshedding.modeenforcedisabled,logonly 或 enforce
mixer.telemetry.loadshedding.latencyThreshold100ms根据测量值把 100ms p50 转换成 1s 以下的 p99。这对于本质上是异步的遥测来说是可以接受的。
mixer.telemetry.resources.requests.cpu1000m
mixer.telemetry.resources.requests.memory1G
mixer.telemetry.resources.limits.cpu4800m最好使用适当的 cpu 分配来实现 Mixer 的水平扩展。我们已经通过实验发现这些数值工作的很好。
mixer.telemetry.resources.limits.memory4G
mixer.telemetry.reportBatchMaxEntries100设置 reportBatchMaxEntries 为 0 来使用默认的批量行为(例如 每 100 个请求)。正值表示在将遥测数据发送到 Mixer 之前批处理的请求数。
mixer.telemetry.reportBatchMaxTime1s将 reportBatchMaxTime 设置为 0 以使用默认的批处理行为(例如每秒)。正时间值表示最大的等待时间,因为最后一个请求将在发送到 Mxier 之前批量处理遥测数据。
mixer.podAnnotations{}
mixer.nodeSelector{}
mixer.tolerations[]
mixer.podAntiAffinityLabelSelector[]
mixer.podAntiAffinityTermLabelSelector[]
mixer.adapters.kubernetesenv.enabledtrue
mixer.adapters.stdio.enabledfalse
mixer.adapters.stdio.outputAsJsontrue
mixer.adapters.prometheus.enabledtrue
mixer.adapters.prometheus.metricsExpiryDuration10m
mixer.adapters.useAdapterCRDsfalse设置为 false 则 useAdapterCRDs mixer 启动参数为 false

nodeagent 选项

关键字默认值描述
nodeagent.enabledfalse
nodeagent.imagenode-agent-k8s
nodeagent.env.CA_PROVIDER“”认证提供商名称
nodeagent.env.CA_ADDR“”CA endpoint
nodeagent.env.Plugins“”认证提供商的插件名称
nodeagent.nodeSelector{}
nodeagent.tolerations[]
nodeagent.podAntiAffinityLabelSelector[]
nodeagent.podAntiAffinityTermLabelSelector[]

pilot 选项

关键字默认值描述
pilot.enabledtrue
pilot.autoscaleEnabledtrue
pilot.autoscaleMin1
pilot.autoscaleMax5
pilot.rollingMaxSurge100%
pilot.rollingMaxUnavailable25%
pilot.imagepilot
pilot.sidecartrue
pilot.traceSampling1.0
pilot.enableProtocolSniffingfalse是否启用 sniffing 协议。默认是 false。
pilot.resources.requests.cpu500m
pilot.resources.requests.memory2048Mi
pilot.env.PILOT_PUSH_THROTTLE100
pilot.env.GODEBUGgctrace=1
pilot.cpu.targetAverageUtilization80
pilot.nodeSelector{}
pilot.tolerations[]
pilot.podAntiAffinityLabelSelector[]
pilot.podAntiAffinityTermLabelSelector[]
pilot.keepaliveMaxServerConnectionAge30m用来限制 sidecar 与 pilot 连接的时间。它平衡了 pilot 实例之间的负载,代价是增加了系统的负载。

prometheus 选项

关键字默认值描述
prometheus.enabledtrue
prometheus.replicaCount1
prometheus.hubdocker.io/prom
prometheus.imageprometheus
prometheus.tagv2.8.0
prometheus.retention6h
prometheus.nodeSelector{}
prometheus.tolerations[]
prometheus.podAntiAffinityLabelSelector[]
prometheus.podAntiAffinityTermLabelSelector[]
prometheus.scrapeInterval15s控制 prometheus scraping 的频率
prometheus.contextPath/prometheus
prometheus.ingress.enabledfalse
prometheus.ingress.hostsprometheus.local常用于创建一个 Ingress 记录
prometheus.service.annotations{}
prometheus.service.nodePort.enabledfalse
prometheus.service.nodePort.port32090
prometheus.security.enabledtrue

security 选项

关键字默认值描述
security.enabledtrue
security.replicaCount1
security.rollingMaxSurge100%
security.rollingMaxUnavailable25%
security.enableNamespacesByDefaulttrue确定名称空间没有被密钥创建的 Citadel 标记 ca.istio.io/env 和 ca.istio.io/override 标签。
security.imagecitadel
security.selfSignedtrue表明自签名 CA 是否使用。
security.createMeshPolicytrue
security.nodeSelector{}
security.tolerations[]
security.citadelHealthCheckfalse
security.workloadCertTtl2160h90*24 小时 = 2160h
security.enableNamespacesByDefaulttrue指定 Citadel 的默认行为,如果 ca.istio.io/env 或 ca.istio.io/override 标签没有在给定的命名空间发现。例如:考虑一个叫 “target” 的命名空间,既没有 “ca.istio.io/env” 也没有 “ca.istio.io/override” 标签。决定是否为这个 “target” 命名空间的服务账号创建密钥,Citadel 讲参考这一选项。在这个例子中如果值为 “true”,密钥将为 “target” 命名空间生成。如果值是 “false”,Citadel 不会在创建服务账户时产生密钥。
security.podAntiAffinityLabelSelector[]
security.podAntiAffinityTermLabelSelector[]

sidecarInjectorWebhook 选项

关键字默认值描述
sidecarInjectorWebhook.enabledtrue
sidecarInjectorWebhook.replicaCount1
sidecarInjectorWebhook.rollingMaxSurge100%
sidecarInjectorWebhook.rollingMaxUnavailable25%
sidecarInjectorWebhook.imagesidecar_injector
sidecarInjectorWebhook.enableNamespacesByDefaultfalse
sidecarInjectorWebhook.nodeSelector{}
sidecarInjectorWebhook.tolerations[]
sidecarInjectorWebhook.podAntiAffinityLabelSelector[]
sidecarInjectorWebhook.podAntiAffinityTermLabelSelector[]
sidecarInjectorWebhook.rewriteAppHTTPProbefalse如果是 true,webhook 或 istioctl injector 将为活性健康检查重写 PodSpec 以重定向请求到 sidecar。这使得即使在启用 mTLS 时,活性检查也可以工作。
sidecarInjectorWebhook.neverInjectSelector[]你可以使用名为 alwaysInjectSelector 和neverInjectSelector 的字段,它们总是注入 sidecar 或者总是略过与标签选择器匹配的 pod 上的注入,而不管全局策略是什么。参看 https://istio.io/zh/docs/setup/kubernetes/additional-setup/sidecar-injection/more-control-adding-exceptions
sidecarInjectorWebhook.alwaysInjectSelector[]

tracing 选项

关键字默认值描述
tracing.enabledfalse
tracing.providerjaeger
tracing.nodeSelector{}
tracing.tolerations[]
tracing.podAntiAffinityLabelSelector[]
tracing.podAntiAffinityTermLabelSelector[]
tracing.jaeger.hubdocker.io/jaegertracing
tracing.jaeger.imageall-in-one
tracing.jaeger.tag1.12
tracing.jaeger.memory.max_traces50000
tracing.jaeger.spanStorageTypebadger对多合一的镜像 spanStorageType 的值可以是 “memory” 和 “badger”
tracing.jaeger.persistfalse
tracing.jaeger.storageClassName“”
tracing.jaeger.accessModeReadWriteMany
tracing.zipkin.hubdocker.io/openzipkin
tracing.zipkin.imagezipkin
tracing.zipkin.tag2.14.2
tracing.zipkin.probeStartupDelay200
tracing.zipkin.queryPort9411
tracing.zipkin.resources.limits.cpu300m
tracing.zipkin.resources.limits.memory900Mi
tracing.zipkin.resources.requests.cpu150m
tracing.zipkin.resources.requests.memory900Mi
tracing.zipkin.javaOptsHeap700
tracing.zipkin.maxSpans500000
tracing.zipkin.node.cpus2
tracing.service.annotations{}
tracing.service.namehttp
tracing.service.typeClusterIP
tracing.service.externalPort9411
tracing.ingress.enabledfalse