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