istio.io/content/zh/docs/reference/config/installation-options/index.md

36 KiB
Raw Permalink Blame History

title description weight keywords force_inline_toc
安装选项Helm 描述使用 Helm chart 安装 Istio 时的可选项。 15
kubernetes
helm
true

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

{{< text bash >}} $ helm template ... --set global.mtls.enabled=true {{< /text >}}

可以使用 istioctl 命令:

{{< text bash >}} $ istioctl manifest generate ... --set values.global.mtls.enabled=true {{< /text >}}

参考自定义配置获取详细信息。 {{< /warning >}}

{{< warning >}} 不幸的是,由于支持的选项集有最新的变化,此文档已经过时。获取准确的支持的选项集,请参阅 [Install charts]({{< github_tree >}}/manifests)。 {{< /warning >}}

certmanager 选项

关键字 默认值 描述
certmanager.enabled false
certmanager.replicaCount 1
certmanager.hub quay.io/jetstack
certmanager.image cert-manager-controller
certmanager.tag v0.6.2
certmanager.resources {}
certmanager.nodeSelector {}
certmanager.tolerations []
certmanager.podAntiAffinityLabelSelector []
certmanager.podAntiAffinityTermLabelSelector []

galley 选项

关键字 默认值 描述
galley.enabled true
galley.replicaCount 1
galley.rollingMaxSurge 100%
galley.rollingMaxUnavailable 25%
galley.image galley
galley.nodeSelector {}
galley.tolerations []
galley.podAntiAffinityLabelSelector []
galley.podAntiAffinityTermLabelSelector []

gateways 选项

关键字 默认值 描述
gateways.enabled true
gateways.istio-ingressgateway.enabled true
gateways.istio-ingressgateway.sds.enabled false 如果是 trueingress gateway 将从 SDS 服务器获取凭证来处理 TLS 连接。
gateways.istio-ingressgateway.sds.image node-agent-k8s SDS 服务器为 ingress gateway 监测 kubernetes 密钥和规定的凭证。服务器和 ingress gateway 运行在同一个 pod 中。
gateways.istio-ingressgateway.sds.resources.requests.cpu 100m
gateways.istio-ingressgateway.sds.resources.requests.memory 128Mi
gateways.istio-ingressgateway.sds.resources.limits.cpu 2000m
gateways.istio-ingressgateway.sds.resources.limits.memory 1024Mi
gateways.istio-ingressgateway.labels.app istio-ingressgateway
gateways.istio-ingressgateway.labels.istio ingressgateway
gateways.istio-ingressgateway.autoscaleEnabled true
gateways.istio-ingressgateway.autoscaleMin 1
gateways.istio-ingressgateway.autoscaleMax 5
gateways.istio-ingressgateway.rollingMaxSurge 100%
gateways.istio-ingressgateway.rollingMaxUnavailable 25%
gateways.istio-ingressgateway.resources.requests.cpu 100m
gateways.istio-ingressgateway.resources.requests.memory 128Mi
gateways.istio-ingressgateway.resources.limits.cpu 2000m
gateways.istio-ingressgateway.resources.limits.memory 1024Mi
gateways.istio-ingressgateway.cpu.targetAverageUtilization 80
gateways.istio-ingressgateway.loadBalancerIP ""
gateways.istio-ingressgateway.loadBalancerSourceRanges []
gateways.istio-ingressgateway.externalIPs []
gateways.istio-ingressgateway.serviceAnnotations {}
gateways.istio-ingressgateway.podAnnotations {}
gateways.istio-ingressgateway.type LoadBalancer 如果需要可以改为 NodePortClusterIP 或 LoadBalancer
gateways.istio-ingressgateway.ports.targetPort 15020
gateways.istio-ingressgateway.ports.name status-port
gateways.istio-ingressgateway.ports.targetPort 80
gateways.istio-ingressgateway.ports.name http2
gateways.istio-ingressgateway.ports.nodePort 31380
gateways.istio-ingressgateway.ports.name https
gateways.istio-ingressgateway.ports.nodePort 31390
gateways.istio-ingressgateway.ports.name tcp
gateways.istio-ingressgateway.ports.nodePort 31400
gateways.istio-ingressgateway.ports.targetPort 15029
gateways.istio-ingressgateway.ports.name https-kiali
gateways.istio-ingressgateway.ports.targetPort 15030
gateways.istio-ingressgateway.ports.name https-prometheus
gateways.istio-ingressgateway.ports.targetPort 15031
gateways.istio-ingressgateway.ports.name https-grafana
gateways.istio-ingressgateway.ports.targetPort 15032
gateways.istio-ingressgateway.ports.name https-tracing
gateways.istio-ingressgateway.ports.targetPort 15443
gateways.istio-ingressgateway.ports.name tls
gateways.istio-ingressgateway.meshExpansionPorts.targetPort 15011
gateways.istio-ingressgateway.meshExpansionPorts.name tcp-pilot-grpc-tls
gateways.istio-ingressgateway.meshExpansionPorts.targetPort 15004
gateways.istio-ingressgateway.meshExpansionPorts.name tcp-mixer-grpc-tls
gateways.istio-ingressgateway.meshExpansionPorts.targetPort 8060
gateways.istio-ingressgateway.meshExpansionPorts.name tcp-citadel-grpc-tls
gateways.istio-ingressgateway.meshExpansionPorts.targetPort 853
gateways.istio-ingressgateway.meshExpansionPorts.name tcp-dns-tls
gateways.istio-ingressgateway.secretVolumes.secretName istio-ingressgateway-certs
gateways.istio-ingressgateway.secretVolumes.mountPath /etc/istio/ingressgateway-certs
gateways.istio-ingressgateway.secretVolumes.secretName istio-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.enabled false
gateways.istio-egressgateway.labels.app istio-egressgateway
gateways.istio-egressgateway.labels.istio egressgateway
gateways.istio-egressgateway.autoscaleEnabled true
gateways.istio-egressgateway.autoscaleMin 1
gateways.istio-egressgateway.autoscaleMax 5
gateways.istio-egressgateway.rollingMaxSurge 100%
gateways.istio-egressgateway.rollingMaxUnavailable 25%
gateways.istio-egressgateway.resources.requests.cpu 100m
gateways.istio-egressgateway.resources.requests.memory 128Mi
gateways.istio-egressgateway.resources.limits.cpu 2000m
gateways.istio-egressgateway.resources.limits.memory 1024Mi
gateways.istio-egressgateway.cpu.targetAverageUtilization 80
gateways.istio-egressgateway.serviceAnnotations {}
gateways.istio-egressgateway.podAnnotations {}
gateways.istio-egressgateway.type ClusterIP 如果需要可改为 NodePort 或 LoadBalancer
gateways.istio-egressgateway.ports.name http2
gateways.istio-egressgateway.ports.name https
gateways.istio-egressgateway.ports.targetPort 15443
gateways.istio-egressgateway.ports.name tls
gateways.istio-egressgateway.secretVolumes.secretName istio-egressgateway-certs
gateways.istio-egressgateway.secretVolumes.mountPath /etc/istio/egressgateway-certs
gateways.istio-egressgateway.secretVolumes.secretName istio-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.enabled false
gateways.istio-ilbgateway.labels.app istio-ilbgateway
gateways.istio-ilbgateway.labels.istio ilbgateway
gateways.istio-ilbgateway.autoscaleEnabled true
gateways.istio-ilbgateway.autoscaleMin 1
gateways.istio-ilbgateway.autoscaleMax 5
gateways.istio-ilbgateway.rollingMaxSurge 100%
gateways.istio-ilbgateway.rollingMaxUnavailable 25%
gateways.istio-ilbgateway.cpu.targetAverageUtilization 80
gateways.istio-ilbgateway.resources.requests.cpu 800m
gateways.istio-ilbgateway.resources.requests.memory 512Mi
gateways.istio-ilbgateway.loadBalancerIP ""
gateways.istio-ilbgateway.serviceAnnotations.cloud.google.com/load-balancer-type "internal"
gateways.istio-ilbgateway.podAnnotations {}
gateways.istio-ilbgateway.type LoadBalancer
gateways.istio-ilbgateway.ports.name grpc-pilot-mtls
gateways.istio-ilbgateway.ports.name grpc-pilot
gateways.istio-ilbgateway.ports.targetPort 8060
gateways.istio-ilbgateway.ports.name tcp-citadel-grpc-tls
gateways.istio-ilbgateway.ports.name tcp-dns
gateways.istio-ilbgateway.secretVolumes.secretName istio-ilbgateway-certs
gateways.istio-ilbgateway.secretVolumes.mountPath /etc/istio/ilbgateway-certs
gateways.istio-ilbgateway.secretVolumes.secretName istio-ilbgateway-ca-certs
gateways.istio-ilbgateway.secretVolumes.mountPath /etc/istio/ilbgateway-ca-certs
gateways.istio-ilbgateway.nodeSelector {}
gateways.istio-ilbgateway.tolerations []

global 选项

关键字 默认值 描述
global.hub `` Istio 镜像的默认 hub。发布在 'istio' 项目下的 docker hub 中。通过 gcr.io 的 prow 每日构建。
global.tag `` Istio 镜像的默认 tag
global.logging.level "default:info"
global.monitoringPort 15014 mixer, pilot, galley 和 sidecar injector 使用的监控端口
global.k8sIngress.enabled false
global.k8sIngress.gatewayName ingressgateway k8s Ingress 资源使用的网关。默认使用 'istio:ingressgateway',通过设置 'gateways.enabled' 和 'gateways.istio-ingressgateway.enabled' 标志为 true 来安装。
global.k8sIngress.enableHttps false enableHttps 将在 ingress 添加 443 端口。它要求证书安装在预期的密钥中——在没有证书的情况下启用此选项将导致 LDS 拒绝ingress 将无法工作。
global.proxy.init.resources.limits.cpu 100m
global.proxy.init.resources.limits.memory 50Mi
global.proxy.init.resources.requests.cpu 10m
global.proxy.init.resources.requests.memory 10Mi
global.proxy.image proxyv2
global.proxy.clusterDomain "cluster.local" 集群域,默认值是 "cluster.local"。
global.proxy.resources.requests.cpu 100m
global.proxy.resources.requests.memory 128Mi
global.proxy.resources.limits.cpu 2000m
global.proxy.resources.limits.memory 1024Mi
global.proxy.concurrency 2 控制代理 worker 线程的数量。如果设置为 0每个 CPU 每个核启动一个 worker 线程。
global.proxy.accessLogFile ""
global.proxy.accessLogFormat "" 配置如何以及哪些字段显示在 sidecar 访问日志中。设置为空字符串为默认的日志格式
global.proxy.accessLogEncoding TEXT 配置 sidecar 的访问日志为 JSON 或 TEXT 格式
global.proxy.envoyAccessLogService.enabled false
global.proxy.envoyAccessLogService.host `` 例: accesslog-service.istio-system
global.proxy.envoyAccessLogService.port `` 15000
global.proxy.envoyAccessLogService.tlsSettings.mode DISABLE DISABLESIMPLEMUTUALISTIO_MUTUAL
global.proxy.envoyAccessLogService.tlsSettings.clientCertificate `` 例:/etc/istio/als/cert-chain.pem
global.proxy.envoyAccessLogService.tlsSettings.privateKey `` 例:/etc/istio/als/key.pem
global.proxy.envoyAccessLogService.tlsSettings.caCertificates `` 例:/etc/istio/als/root-cert.pem
global.proxy.envoyAccessLogService.tlsSettings.sni `` tlsomedomain
global.proxy.envoyAccessLogService.tlsSettings.subjectAltNames []
global.proxy.envoyAccessLogService.tcpKeepalive.probes 3
global.proxy.envoyAccessLogService.tcpKeepalive.time 10s
global.proxy.envoyAccessLogService.tcpKeepalive.interval 10s
global.proxy.logLevel "" 代理的日志级别,应用于网关和 sidecars。如果为空则使用 "warning"。期望值是trace|debug|info|warning|error|critical|off
global.proxy.componentLogLevel "" 每个组件的代理日志级别,应用于网关和 sidecars。如果组件级别没设置全局的 "logLevel" 将启用。如果为空,"misc:error" 将启用
global.proxy.dnsRefreshRate 300s 配置类型为 STRICT_DNS 的 Envoy 集群的 DNS 刷新率必须以秒为单位。例如300s 是合法的但 5m 不合法。
global.proxy.protocolDetectionTimeout 10ms 自动协议检测使用一组试探法来确定连接是否使用 TLS服务端以及正在使用的应用程序协议例如 http 和 tcp。 试探法依赖于客户端发送的第一个数据位。对于像 MysqlMongoDB 这样的服务器的第一协议来说在指定的时间段之后Envoy 将对协议检测超时,默认为非 mTLS 的 TCP 流量。设置此字段以调整 Envoy 将等待客户端发送第一个数据位的时间。(必须 >=1ms
global.proxy.privileged false 如果设置为 trueistio-proxy 容器将享有 securityContext 的权限。
global.proxy.enableCoreDump false 如果设置,新注入的 sidecars 将启用 core dumps。
global.proxy.enableCoreDumpImage ubuntu:xenial 镜像用于开启 core dumps。仅在 "enableCoreDump" 设置为 true 时使用。
global.proxy.statusPort 15020 Pilot 代理健康检查的默认端口。值为 0 将关闭健康检查。
global.proxy.readinessInitialDelaySeconds 1 readiness 探针的初始延迟秒数。
global.proxy.readinessPeriodSeconds 2 readiness 探针的探测间隔。
global.proxy.readinessFailureThreshold 30 确定 readiness 失败前探测成功失败的数量。
global.proxy.includeIPRanges "*"
global.proxy.excludeIPRanges ""
global.proxy.excludeOutboundPorts ""
global.proxy.kubevirtInterfaces "" pod 内部接口
global.proxy.includeInboundPorts "*"
global.proxy.excludeInboundPorts ""
global.proxy.autoInject enabled 控制 sidecar 注入器的 'policy'。
global.proxy.envoyStatsd.enabled false 如果设置为 true主机和端口必须提供。Istio 不再提供一个 statsd 收集器。
global.proxy.envoyStatsd.host `` 例: statsd-svc.istio-system
global.proxy.envoyStatsd.port `` 9125
global.proxy.envoyMetricsService.enabled false
global.proxy.envoyMetricsService.host `` metrics-service.istio-system
global.proxy.envoyMetricsService.port `` 15000
global.proxy.tracer "zipkin" 指定使用以下哪一个追踪器zipkinlightstep datadogstackdriver。 如果使用外部 GCP 的 stackdriver 追踪器,设置环境变量 GOOGLE_APPLICATION_CREDENTIALS 为 GCP 的凭证文件。
global.proxy_init.image proxy_init proxy_init 容器的基本名称,用于配置 iptables。
global.imagePullPolicy IfNotPresent
global.controlPlaneSecurityEnabled false 启用 controlPlaneSecurityEnabled enabled。当密钥被传输时将导致启动 pod 的延迟,不建议用于测试。
global.disablePolicyChecks true disablePolicyChecks 关闭 mixer 策略检查。如果 mixer.policy.enabled==true 那么 disablePolicyChecks 生效。当在 istio config map 中设置此值时 —— pilot 需要重启才能生效。
global.policyCheckFailOpen false policyCheckFailOpen 允许在无法访问混合策略服务的情况下进行通信。缺省值为 false这意味着当客户端无法连接到 Mixer 时,流量将被拒绝。
global.enableTracing true EnableTracing 设置和 istio config map 中同样的值,需要 pilot 重启生效。
global.tracer.lightstep.address "" lightstep-satellite:443
global.tracer.lightstep.accessToken "" abcdefg1234567
global.tracer.lightstep.secure true true|false
global.tracer.lightstep.cacertPath "" 例:/etc/lightstep/cacert.pem
global.tracer.zipkin.address ""
global.tracer.datadog.address "$(HOST_IP):8126"
global.mtls.enabled false 服务到服务 mtls 的默认设置项。可以明确的设置使用目标规则或服务 annotations。
global.imagePullSecrets [] 列出你从私有注册拉取 Istio 镜像所需的密钥。
global.arch.amd64 2
global.arch.s390x 2
global.arch.ppc64le 2
global.oneNamespace false 是否限制控制器管理的应用程序名称空间;如果不设置,控制器将检测所有命名空间。
global.defaultNodeSelector {} 将缺省节点选择器应用于所有 Deployment以便所有 pod 都能被约束来运行特定的节点。每个组件都可以通过在下面的相关部分中添加其节点选择器块并设置所需的值来覆盖这些默认值。
global.defaultTolerations [] 缺省节点容错应用于所有 Deployment以便所有 pod 都可以调度到具有匹配 taints 的特定节点。每个组件都可以通过在下面的相关部分中添加自己的 tolerance 块并设置所需的值来覆盖这些默认值。配置此字段,以防所有 Istio 控制平面的 pod 都被调度到指定 taints 的特定节点。
global.configValidation true 是否执行服务端配置验证。
global.meshExpansion.enabled false
global.meshExpansion.useILB false 如果设置为 truepilot 和 citadel mtls 以及明文 pilot 端口将暴露在内部网关上。
global.multiCluster.enabled false 当两个 kubernetes 集群中的 pod 不能互相直接通信时,设置为 true 将通过各自的 ingressgateway 服务连接两个 kubernetes 集群。所有的集群都应该使用 Istio mTLS并且必须有一个共享的根 CA 才能让这个模型工作。
global.defaultResources.requests.cpu 10m
global.defaultPodDisruptionBudget.enabled true
global.priorityClassName ""
global.useMCP true 使用网格控制协议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.mode ALLOW_ANY
global.sds.enabled false 启用 SDS。如果设置为 truesidecars 的 mTLS 证书将通过 SecretDiscoveryService 分发,而不是使用 K8S secret 来挂载。
global.sds.udsPath ""
global.meshNetworks {}
global.localityLbSetting.enabled true
global.enableHelmTest false 指定是否启用 helm test。此字段默认为 false所以当生成模板时 'helm template ...' 将忽略 helm test yaml 文件。

grafana 选项

关键字 默认值 描述
grafana.enabled false
grafana.replicaCount 1
grafana.image.repository grafana/grafana
grafana.image.tag 6.1.6
grafana.ingress.enabled false
grafana.ingress.hosts grafana.local 常用于创建一个 Ingress 记录
grafana.persist false
grafana.storageClassName ""
grafana.accessMode ReadWriteMany
grafana.security.enabled false
grafana.security.secretName grafana
grafana.security.usernameKey username
grafana.security.passphraseKey passphrase
grafana.nodeSelector {}
grafana.tolerations []
grafana.env {}
grafana.envSecrets {}
grafana.podAntiAffinityLabelSelector []
grafana.podAntiAffinityTermLabelSelector []
grafana.contextPath /grafana
grafana.service.annotations {}
grafana.service.name http
grafana.service.type ClusterIP
grafana.service.externalPort 3000
grafana.datasources.datasources.apiVersion 1
grafana.datasources.datasources.datasources.type prometheus
grafana.datasources.datasources.datasources.type.orgId 1
grafana.datasources.datasources.datasources.type.url http://prometheus:9090
grafana.datasources.datasources.datasources.type.access proxy
grafana.datasources.datasources.datasources.type.isDefault true
grafana.datasources.datasources.datasources.type.jsonData.timeInterval 5s
grafana.datasources.datasources.datasources.type.editable true
grafana.dashboardProviders.dashboardproviders.apiVersion 1
grafana.dashboardProviders.dashboardproviders.providers.orgId 1
grafana.dashboardProviders.dashboardproviders.providers.orgId.folder 'istio'
grafana.dashboardProviders.dashboardproviders.providers.orgId.type file
grafana.dashboardProviders.dashboardproviders.providers.orgId.disableDeletion false
grafana.dashboardProviders.dashboardproviders.providers.orgId.options.path /var/lib/grafana/dashboards/istio

cni 选项

关键字 默认值 描述
cni.enabled false

istiocoredns 选项

关键字 默认值 描述
istiocoredns.enabled false
istiocoredns.replicaCount 1
istiocoredns.rollingMaxSurge 100%
istiocoredns.rollingMaxUnavailable 25%
istiocoredns.coreDNSImage coredns/coredns:1.1.2
istiocoredns.coreDNSPluginImage istio/coredns-plugin:0.2-istio-1.1
istiocoredns.nodeSelector {}
istiocoredns.tolerations []
istiocoredns.podAntiAffinityLabelSelector []
istiocoredns.podAntiAffinityTermLabelSelector []

kiali 选项

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

mixer 选项

关键字 默认值 描述
mixer.image mixer
mixer.env.GODEBUG gctrace=1
mixer.env.GOMAXPROCS "6" 最大进程数为 ceil(cpu limit + 1)
mixer.policy.enabled false 如果策略启用global.disablePolicyChecks 生效。
mixer.policy.replicaCount 1
mixer.policy.autoscaleEnabled true
mixer.policy.autoscaleMin 1
mixer.policy.autoscaleMax 5
mixer.policy.cpu.targetAverageUtilization 80
mixer.policy.rollingMaxSurge 100%
mixer.policy.rollingMaxUnavailable 25%
mixer.telemetry.enabled true
mixer.telemetry.replicaCount 1
mixer.telemetry.autoscaleEnabled true
mixer.telemetry.autoscaleMin 1
mixer.telemetry.autoscaleMax 5
mixer.telemetry.cpu.targetAverageUtilization 80
mixer.telemetry.rollingMaxSurge 100%
mixer.telemetry.rollingMaxUnavailable 25%
mixer.telemetry.sessionAffinityEnabled false
mixer.telemetry.loadshedding.mode enforce disabledlogonly 或 enforce
mixer.telemetry.loadshedding.latencyThreshold 100ms 根据测量值把 100ms p50 转换成 1s 以下的 p99。这对于本质上是异步的遥测来说是可以接受的。
mixer.telemetry.resources.requests.cpu 1000m
mixer.telemetry.resources.requests.memory 1G
mixer.telemetry.resources.limits.cpu 4800m 最好使用适当的 cpu 分配来实现 Mixer 的水平扩展。我们已经通过实验发现这些数值工作的很好。
mixer.telemetry.resources.limits.memory 4G
mixer.telemetry.reportBatchMaxEntries 100 设置 reportBatchMaxEntries 为 0 来使用默认的批量行为(例如 每 100 个请求)。正值表示在将遥测数据发送到 Mixer 之前批处理的请求数。
mixer.telemetry.reportBatchMaxTime 1s 将 reportBatchMaxTime 设置为 0 以使用默认的批处理行为(例如每秒)。正时间值表示最大的等待时间,因为最后一个请求将在发送到 Mxier 之前批量处理遥测数据。
mixer.podAnnotations {}
mixer.nodeSelector {}
mixer.tolerations []
mixer.podAntiAffinityLabelSelector []
mixer.podAntiAffinityTermLabelSelector []
mixer.adapters.kubernetesenv.enabled true
mixer.adapters.stdio.enabled false
mixer.adapters.stdio.outputAsJson true
mixer.adapters.prometheus.enabled true
mixer.adapters.prometheus.metricsExpiryDuration 10m
mixer.adapters.useAdapterCRDs false 设置为 false 则 useAdapterCRDs mixer 启动参数为 false

nodeagent 选项

关键字 默认值 描述
nodeagent.enabled false
nodeagent.image node-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.enabled true
pilot.autoscaleEnabled true
pilot.autoscaleMin 1
pilot.autoscaleMax 5
pilot.rollingMaxSurge 100%
pilot.rollingMaxUnavailable 25%
pilot.image pilot
pilot.sidecar true
pilot.traceSampling 1.0
pilot.enableProtocolSniffing false 是否启用 sniffing 协议。默认是 false。
pilot.resources.requests.cpu 500m
pilot.resources.requests.memory 2048Mi
pilot.env.PILOT_PUSH_THROTTLE 100
pilot.env.GODEBUG gctrace=1
pilot.cpu.targetAverageUtilization 80
pilot.nodeSelector {}
pilot.tolerations []
pilot.podAntiAffinityLabelSelector []
pilot.podAntiAffinityTermLabelSelector []
pilot.keepaliveMaxServerConnectionAge 30m 用来限制 sidecar 与 pilot 连接的时间。它平衡了 pilot 实例之间的负载,代价是增加了系统的负载。

prometheus 选项

关键字 默认值 描述
prometheus.enabled true
prometheus.replicaCount 1
prometheus.hub docker.io/prom
prometheus.image prometheus
prometheus.tag v2.8.0
prometheus.retention 6h
prometheus.nodeSelector {}
prometheus.tolerations []
prometheus.podAntiAffinityLabelSelector []
prometheus.podAntiAffinityTermLabelSelector []
prometheus.scrapeInterval 15s 控制 prometheus scraping 的频率
prometheus.contextPath /prometheus
prometheus.ingress.enabled false
prometheus.ingress.hosts prometheus.local 常用于创建一个 Ingress 记录
prometheus.service.annotations {}
prometheus.service.nodePort.enabled false
prometheus.service.nodePort.port 32090
prometheus.security.enabled true

security 选项

关键字 默认值 描述
security.enabled true
security.replicaCount 1
security.rollingMaxSurge 100%
security.rollingMaxUnavailable 25%
security.enableNamespacesByDefault true 确定名称空间没有被密钥创建的 Citadel 标记 ca.istio.io/env 和 ca.istio.io/override 标签。
security.image citadel
security.selfSigned true 表明自签名 CA 是否使用。
security.createMeshPolicy true
security.nodeSelector {}
security.tolerations []
security.citadelHealthCheck false
security.workloadCertTtl 2160h 90*24 小时 = 2160h
security.enableNamespacesByDefault true 指定 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.enabled true
sidecarInjectorWebhook.replicaCount 1
sidecarInjectorWebhook.rollingMaxSurge 100%
sidecarInjectorWebhook.rollingMaxUnavailable 25%
sidecarInjectorWebhook.image sidecar_injector
sidecarInjectorWebhook.enableNamespacesByDefault false
sidecarInjectorWebhook.nodeSelector {}
sidecarInjectorWebhook.tolerations []
sidecarInjectorWebhook.podAntiAffinityLabelSelector []
sidecarInjectorWebhook.podAntiAffinityTermLabelSelector []
sidecarInjectorWebhook.rewriteAppHTTPProbe false 如果是 truewebhook 或 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.enabled false
tracing.provider jaeger
tracing.nodeSelector {}
tracing.tolerations []
tracing.podAntiAffinityLabelSelector []
tracing.podAntiAffinityTermLabelSelector []
tracing.jaeger.hub docker.io/jaegertracing
tracing.jaeger.image all-in-one
tracing.jaeger.tag 1.12
tracing.jaeger.memory.max_traces 50000
tracing.jaeger.spanStorageType badger 对多合一的镜像 spanStorageType 的值可以是 "memory" 和 "badger"
tracing.jaeger.persist false
tracing.jaeger.storageClassName ""
tracing.jaeger.accessMode ReadWriteMany
tracing.zipkin.hub docker.io/openzipkin
tracing.zipkin.image zipkin
tracing.zipkin.tag 2.14.2
tracing.zipkin.probeStartupDelay 200
tracing.zipkin.queryPort 9411
tracing.zipkin.resources.limits.cpu 300m
tracing.zipkin.resources.limits.memory 900Mi
tracing.zipkin.resources.requests.cpu 150m
tracing.zipkin.resources.requests.memory 900Mi
tracing.zipkin.javaOptsHeap 700
tracing.zipkin.maxSpans 500000
tracing.zipkin.node.cpus 2
tracing.service.annotations {}
tracing.service.name http
tracing.service.type ClusterIP
tracing.service.externalPort 9411
tracing.ingress.enabled false