Istio技术与实践06:史上最全!Istio安装参数介绍

一、 CertManage


Istio-1.0版本新加入的组件,利用ACME为Istio签发证书


Key Default Value Description
certmanager.enabled TRUE 是否启用certmanager
certmanager.hub quay.io/jetstack 镜像仓库名称
certmanager.tag v0.3.1 镜像版本号
certmanager.resources {} 占用资源及限制


二、Galley


Istio-1.0版本新加入组件,利用webhook校验Istio资源创建的是否正确,用于validate


Key Default Value Description
galley.enabled TRUE 是否启用galley
galley.replicaCount 1 实例数量
galley.image galley 镜像仓库名称


三、Gateways


Istio-1.0版本将内部ingressgatewayegressgateway参数合并为gateways,同时增加了内部ELB类型的ilbgateway

Key Default Value Description
gateways.enabled TRUE 是否启用gateway
gateways.istio-ingressgateway.enabled TRUE 是否启用ingressgateway
gateways.istio-ingressgateway.labels.app istio-ingressgateway Labels中key为app的value值
gateways.istio-ingressgateway.labels.istio ingressgateway Labels中key为istio的value值
gateways.istio-ingressgateway.replicaCount 1 Ingressgateway默认实例数量
gateways.istio-ingressgateway.autoscaleMin 1 Ingressgateway自动扩缩容最小实例数
gateways.istio-ingressgateway.autoscaleMax 5 Ingressgateway自动扩缩容最大实例数
gateways.istio-ingressgateway.resources {} Ingressgateway占用资源与限制
gateways.istio-ingressgateway.loadBalancerIP "" Ingressgateway对外暴露的ELB IP地址
gateways.istio-ingressgateway.serviceAnnotations {} Ingressgateway的service的annotation值
gateways.istio-ingressgateway.type LoadBalancer #change to  NodePort, ClusterIP or LoadBalancer if need be Ingressgateway的service发布类型,三种可选
gateways.istio-ingressgateway.ports.targetPort 80 Ingressgateway的service中的访问端口与容器端口
gateways.istio-ingressgateway.ports.name http2 http2的service中的端口名称
gateways.istio-ingressgateway.ports.nodePort 31380 Ingressgateway的service中的nodePort端口--http2
gateways.istio-ingressgateway.ports.name https Ingressgateway的service中的端口名称--https
gateways.istio-ingressgateway.ports.nodePort 31390 Ingressgateway的service中的nodePort端口--https
gateways.istio-ingressgateway.ports.name tcp Ingressgateway的service中的端口名称--tcp
gateways.istio-ingressgateway.ports.nodePort 31400 Ingressgateway的service中的nodePort端口--tcp
gateways.istio-ingressgateway.ports.targetPort 15011 pilot-grpc访问端口与容器端口
gateways.istio-ingressgateway.ports.name tcp-pilot-grpc-tls pilot-grpc端口名称
gateways.istio-ingressgateway.ports.targetPort 8060 citadel-grpc访问端口与容器端口
gateways.istio-ingressgateway.ports.name tcp-citadel-grpc-tls citadel-grpc端口名称
gateways.istio-ingressgateway.ports.targetPort 15030 普罗米修斯访问端口与容器端口
gateways.istio-ingressgateway.ports.name http2-prometheus 普罗米修斯端口名称
gateways.istio-ingressgateway.ports.targetPort 15031 Grafana访问端口与容器端口
gateways.istio-ingressgateway.ports.name http2-grafana Grafana端口名称
gateways.istio-ingressgateway.secretVolumes.secretName istio-ingressgateway-certs 挂载证书secret的名称
gateways.istio-ingressgateway.secretVolumes.mountPath /etc/istio/ingressgateway-certs 挂载证书secret的路径
gateways.istio-ingressgateway.secretVolumes.secretName istio-ingressgateway-ca-certs 挂载根证书secret的名称
gateways.istio-ingressgateway.secretVolumes.mountPath /etc/istio/ingressgateway-ca-certs 挂载根证书secret的路径
gateways.istio-egressgateway.enabled TRUE 是否开启egressgateway
gateways.istio-egressgateway.labels.app istio-egressgateway Labels中key为app的value值
gateways.istio-egressgateway.labels.istio egressgateway Labels中key为istio的value值
gateways.istio-egressgateway.replicaCount 1 egressgateway默认实例数量
gateways.istio-egressgateway.autoscaleMin 1 egressgateway自动扩缩容最小实例数
gateways.istio-egressgateway.autoscaleMax 5 egressgateway自动扩缩容最大实例数
gateways.istio-egressgateway.serviceAnnotations {} egressgateway占用资源与限制
gateways.istio-egressgateway.type ClusterIP #change to NodePort or LoadBalancer if need be egressgateway的service发布类型,三种可选
gateways.istio-egressgateway.ports.name http2 egressgateway端口名称
gateways.istio-egressgateway.ports.name.name https egressgateway端口名称
gateways.istio-egressgateway.secretVolumes.secretName istio-egressgateway-certs 挂载证书secret的名称
gateways.istio-egressgateway.secretVolumes.secretName.mountPath /etc/istio/egressgateway-certs 挂载证书secret的路径
gateways.istio-egressgateway.secretVolumes.secretName.secretName istio-egressgateway-ca-certs 挂载根证书secret的名称
gateways.istio-egressgateway.secretVolumes.secretName.mountPath /etc/istio/egressgateway-ca-certs 挂载根证书secret的路径
gateways.istio-ilbgateway.enabled FALSE 是否开启Ilbgateway,创建InternalLoadBalancer类型gateway
gateways.istio-ilbgateway.enabled.labels.app istio-ilbgateway Labels中key为app的value值
gateways.istio-ilbgateway.enabled.labels.istio ilbgateway Labels中key为istio的value值
gateways.istio-ilbgateway.enabled.replicaCount 1 ilbgateway默认实例数量
gateways.istio-ilbgateway.enabled.autoscaleMin 1 ilbgateway自动扩缩容最小实例数
gateways.istio-ilbgateway.enabled.autoscaleMax 5 ilbgateway自动扩缩容最大实例数
gateways.istio-ilbgateway.enabled.resources.requests.cpu 800m Ilbgateway所需CPU
gateways.istio-ilbgateway.enabled.resources.requests.memory 512Mi Ilbgateway所需内存
gateways.istio-ilbgateway.enabled.loadBalancerIP "" Ilbgateway对外暴露的ELB IP地址
gateways.istio-ilbgateway.enabled.serviceAnnotations.cloud.google.com/load-balancer-type "internal" ilbgateway访问方式
gateways.istio-ilbgateway.enabled.type LoadBalancer Ilbgateway的service类型
gateways.istio-ilbgateway.enabled.ports.name grpc-pilot-mtls 是否启用mtls认证
gateways.istio-ilbgateway.enabled.ports.name grpc-pilot Service端口名称
gateways.istio-ilbgateway.enabled.ports.targetPort 8060 Grpc service端口
gateways.istio-ilbgateway.enabled.ports.name tcp-citadel-grpc-tls Grpc-tls端口名称
gateways.istio-ilbgateway.enabled.ports.name tcp-dns Dns端口名称
gateways.istio-ilbgateway.enabled.secretVolumes.secretName istio-ilbgateway-certs 挂载证书secret的名称
gateways.istio-ilbgateway.enabled.secretVolumes.mountPath /etc/istio/ilbgateway-certs 挂载证书secret的路径
gateways.istio-ilbgateway.enabled.secretVolumes.secretName istio-ilbgateway-ca-certs 挂载根证书secret的名称
gateways.istio-ilbgateway.enabled.secretVolumes.mountPath /etc/istio/ilbgateway-ca-certs 挂载根证书secret的路径


四、全局变量global


Key Default Value Description
global.hub docker.io/istio 镜像仓库
global.tag 1.0.0 镜像版本号
global.k8sIngressSelector ingress 匹配ingress所用label
global.k8sIngressHttps FALSE 是否开启https
global.proxy.image proxyv2 Proxy镜像名称
global.proxy.resources.requests.cpu 10m Proxy所需cpu
global.proxy.accessLogFile "/dev/stdout" Sidecar的log文件路径
global.proxy.enableCoreDump FALSE 是否启用coreDump
global.proxy.includeIPRanges "*" 如果目标IP在范围内,出流量要经过sidecar
global.proxy.excludeIPRanges "" 如果目标IP在范围内,出流量不经过sidecar
global.proxy.includeInboundPorts "*" 如果容器端口在范围内,入这个端口的流量要经过sidecar
global.proxy.excludeInboundPorts "" 如果容器端口在范围内,入这个端口的流量不经过sidecar
global.proxy.autoInject enabled 是否开启自动注入
global.proxy.envoyStatsd.enabled TRUE 是否对接statsd
global.proxy.envoyStatsd.host istio-statsd-prom-bridge Statsd host
global.proxy.envoyStatsd.port 9125 Statsd端口
global.proxy_init.image proxy_init Proxy的init镜像
global.imagePullPolicy IfNotPresent 镜像的拉去策略
global.controlPlaneSecurityEnabled TRUE 控制面组件是否开启mtls认证
global.disablePolicyChecks FALSE 关掉mixer-check
global.enableTracing TRUE 开启tracing
global.mtls.enabled TRUE 开启Mtls认证
global.arch.amd64 2 亲和性策略
global.arch.s390x 2 亲和性策略
global.arch.ppc64le 2 亲和性策略
global.oneNamespace FALSE 限制为单ns
global.configValidation TRUE 开启参数校验
global.meshExpansion FALSE ingressgateway开启pilot与citadel的mtls
global.meshExpansionILB FALSE Ilbgateway开启pilot与citadel的mtls
global.defaultResources.requests.cpu 10m 默认资源需求
global.hyperkube.hub quay.io/coreos Hypercube镜像仓库
global.hyperkube.tag v1.7.6_coreos.0 镜像版本号
global.priorityClassName "" 优先级类别
global.crds TRUE 是否需要优先创建crd


五、Grafana

监控数据展示addon


Key Default Value Description
grafana.enabled TRUE 安装grafana
grafana.replicaCount 1 实例个数
grafana.image grafana 镜像名称
grafana.security.enabled TRUE 开启登录安全认证
grafana.security.adminUser admin 认证用户名
grafana.security.adminPassword admin 认证密码
grafana.service.annotations {} Annotation
grafana.service.name http Service中portname
grafana.service.type ClusterIP Service类型
grafana.service.externalPort 3000 访问端口
grafana.service.internalPort 3000 容器端口


六、Ingress

Istio将取消Ingress,不建议使用,推荐使用gateway


Key Default Value Description
ingress.enabled TRUE 是否启用Ingress
ingress.replicaCount 1 实例数
ingress.autoscaleMin 1 最小自动伸缩实例数
ingress.autoscaleMax 5 最大自动伸缩实例数
ingress.service.annotations {} Annotation
ingress.service.loadBalancerIP "" ELB IP
ingress.service.type LoadBalancer #change to  NodePort, ClusterIP or LoadBalancer if need be Service类型
ingress.service.ports.name http http端口名称
ingress.service.ports.nodePort 32000 nodePort
ingress.service.ports.name https https端口名称
ingress.service.selector.istio ingress Selector匹配label


七、kiali

kiali插件


Key Default Value Description
kiali.enabled TRUE 是否安装kiali
kiali.replicaCount 1 实例数
kiali.hub docker.io/kiali 镜像仓库
kiali.tag istio-release-1.0 镜像版本
kiali.ingress.enabled TRUE 是否开启ingress对外访问
kiali.dashboard.username admin 界面登录名
kiali.dashboard.passphrase admin 界面登录密码


八、mixer


Key Default Value Description
mixer.enabled TRUE 是否启用mixer
mixer.replicaCount 1 实例数
mixer.autoscaleMin 1 最小伸缩实例数
mixer.autoscaleMax 5 最大伸缩实例数
mixer.image mixer 镜像名称
mixer.istio-policy.autoscaleEnabled TRUE policy开启自动扩容
mixer.istio-policy.autoscaleMin 1 最小伸缩实例数
mixer.istio-policy.autoscaleMax 5 最大伸缩实例数
mixer.istio-policy.cpu.targetAverageUtilization 80 扩缩容CPU阈值
mixer.istio-telemetry.autoscaleEnabled TRUE Telemetry自动扩容
mixer.istio-telemetry.autoscaleMin 1 最小伸缩实例数
mixer.istio-telemetry.autoscaleMax 5 最大伸缩实例数
mixer.istio-telemetry.cpu.targetAverageUtilization 80 扩缩容CPU阈值
mixer.prometheusStatsdExporter.hub docker.io/prom 对接adapter镜像
mixer.prometheusStatsdExporter.tag v0.6.0 镜像版本


九、pilot


Key Default Value Description
pilot.enabled TRUE 启用pilot
pilot.replicaCount 1 实例数
pilot.autoscaleMin 1 最小伸缩实例数
pilot.autoscaleMax 1 最大伸缩实例数
pilot.image pilot 镜像名称
pilot.sidecar TRUE 是否默认为pilot注入sidecar
pilot.traceSampling 100 采样率
pilot.resources.requests.cpu 500m CPU需求
pilot.resources.requests.memory 2048Mi 内存需求


十、Prometheus


Key Default Value Description
prometheus.enabled TRUE 启用prometheus
prometheus.replicaCount 1 实例数
prometheus.hub docker.io/prom 镜像仓库
prometheus.tag v2.3.1 镜像版本
prometheus.service.annotations {} Annotation
prometheus.service.nodePort.enabled FALSE 是否启用nodePort
prometheus.service.nodePort.port 32090 nodePort端口


十一、security


Key Default Value Description
security.replicaCount 1 实例数
security.image citadel 镜像名称
security.selfSigned true # indicate if self-signed  CA is used. 开启证书自签发


十二、servicegraph


Key Default Value Description
servicegraph.enabled FALSE 启用servicegraph
servicegraph.replicaCount 1 实例数
servicegraph.image servicegraph 镜像名称
servicegraph.service.name http Service的portname
servicegraph.service.type ClusterIP Service类型
servicegraph.service.externalPort 8088 访问端口
servicegraph.service.internalPort 8088 容器端口
servicegraph.ingress.enabled FALSE 开启ingress
servicegraph.prometheusAddr http://prometheus:9090 对接普罗地址


十三、sidecarInjector


Key Default Value Description
sidecarInjectorWebhook.enabled TRUE 启用sidecarinjector
sidecarInjectorWebhook.replicaCount 1 实例数
sidecarInjectorWebhook.image sidecar_injector 镜像名称
sidecarInjectorWebhook.enableNamespacesByDefault FALSE 注入规则配置,false为匹配injecor-label


十四、telemetry-gateway

用于将grafana与prometheus以gateway方式发布出去


Key Default Value Description
telemetry-gateway.gatewayName ingressgateway Gateway名称
telemetry-gateway.grafanaEnabled TRUE 发布grafana-gateway
telemetry-gateway.prometheusEnabled TRUE 发布prome-gateway


十五、tracing


Key Default Value Description
tracing.enabled TRUE 启用tracing
tracing.provider jaeger 是否安装jaeger svc
tracing.jaeger.hub docker.io/jaegertracing 镜像仓库
tracing.jaeger.tag 1.5 镜像版本号
tracing.jaeger.memory.max_traces 50000 最大条数
tracing.jaeger.ui.port 16686 前端访问端口
tracing.replicaCount 1 实例数
tracing.service.annotations {} Annotation
tracing.service.name http Service的portName
tracing.service.type ClusterIP Service类型
tracing.service.externalPort 9411 访问端口
tracing.service.internalPort 9411 容器端口
tracing.ingress.enabled FALSE 是否发布为ingress

十六、总结


本文仅列举了Istio的helm安装包的传入参数,这些参数为安装Istio时传入并生效,而Istio控制面组件真正的启动参数,也是重要的一部分,我们将在下期为大家讲解。


上一篇:IntelliJ IDEA 2021.3.1,改custom vm options 启动不起来?


下一篇:Gson的解析复杂数据,2021年Android岗位BAT大厂面试题知识点小结