Istio技术与实践06:史上最全!Istio安装参数介绍
【摘要】 Istio提供了强大的流量治理,服务监控等能力,如何有效且合理的使用其强大的功能,是我们关心的问题。Istio组件的启动参数,作为重要的Istio功能的控制入口,能够让我们更好的熟悉及利用Istio功能。
下面我们一起来了解下Istio几个主要组件的启动参数配置,本文主要聚焦于helm包value.yaml中参数值的使用情况,组件启动参数值将在后续文章中介绍。
一、 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控制面组件真正的启动参数,也是重要的一部分,我们将在下期为大家讲解。
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)