一、 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版本將內部ingressgateway與egressgateway參數合並為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控制面組件真正的啟動參數,也是重要的一部分,我們將在下期為大家講解。
