安装选项(Helm)

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

    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
    128Mi
    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.url
    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

    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.prometheusAddr
    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[]

    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.enabled