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

举报
云容器大未来 发表于 2018/11/20 16:26:15 2018/11/20
【摘要】 Istio提供了强大的流量治理,服务监控等能力,如何有效且合理的使用其强大的功能,是我们关心的问题。Istio组件的启动参数,作为重要的Istio功能的控制入口,能够让我们更好的熟悉及利用Istio功能。 下面我们一起来了解下Istio几个主要组件的启动参数配置,本文主要聚焦于helm包value.yaml中参数值的使用情况,组件启动参数值将在后续文章中介绍。

一、 CertManage

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

KeyDefault ValueDescription
certmanager.enabledTRUE是否启用certmanager
certmanager.hubquay.io/jetstack镜像仓库名称
certmanager.tagv0.3.1镜像版本号
certmanager.resources{}占用资源及限制

二、Galley

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

KeyDefault ValueDescription
galley.enabledTRUE是否启用galley
galley.replicaCount1实例数量
galley.imagegalley镜像仓库名称

三、Gateways

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

KeyDefault ValueDescription
gateways.enabledTRUE是否启用gateway
gateways.istio-ingressgateway.enabledTRUE是否启用ingressgateway
gateways.istio-ingressgateway.labels.appistio-ingressgatewayLabels中key为app的value值
gateways.istio-ingressgateway.labels.istioingressgatewayLabels中key为istio的value值
gateways.istio-ingressgateway.replicaCount1Ingressgateway默认实例数量
gateways.istio-ingressgateway.autoscaleMin1Ingressgateway自动扩缩容最小实例数
gateways.istio-ingressgateway.autoscaleMax5Ingressgateway自动扩缩容最大实例数
gateways.istio-ingressgateway.resources{}Ingressgateway占用资源与限制
gateways.istio-ingressgateway.loadBalancerIP""Ingressgateway对外暴露的ELB IP地址
gateways.istio-ingressgateway.serviceAnnotations{}Ingressgateway的service的annotation值
gateways.istio-ingressgateway.typeLoadBalancer #change to  NodePort, ClusterIP or LoadBalancer if need beIngressgateway的service发布类型,三种可选
gateways.istio-ingressgateway.ports.targetPort80Ingressgateway的service中的访问端口与容器端口
gateways.istio-ingressgateway.ports.namehttp2http2的service中的端口名称
gateways.istio-ingressgateway.ports.nodePort31380Ingressgateway的service中的nodePort端口--http2
gateways.istio-ingressgateway.ports.namehttpsIngressgateway的service中的端口名称--https
gateways.istio-ingressgateway.ports.nodePort31390Ingressgateway的service中的nodePort端口--https
gateways.istio-ingressgateway.ports.nametcpIngressgateway的service中的端口名称--tcp
gateways.istio-ingressgateway.ports.nodePort31400Ingressgateway的service中的nodePort端口--tcp
gateways.istio-ingressgateway.ports.targetPort15011pilot-grpc访问端口与容器端口
gateways.istio-ingressgateway.ports.nametcp-pilot-grpc-tlspilot-grpc端口名称
gateways.istio-ingressgateway.ports.targetPort8060citadel-grpc访问端口与容器端口
gateways.istio-ingressgateway.ports.nametcp-citadel-grpc-tlscitadel-grpc端口名称
gateways.istio-ingressgateway.ports.targetPort15030普罗米修斯访问端口与容器端口
gateways.istio-ingressgateway.ports.namehttp2-prometheus普罗米修斯端口名称
gateways.istio-ingressgateway.ports.targetPort15031Grafana访问端口与容器端口
gateways.istio-ingressgateway.ports.namehttp2-grafanaGrafana端口名称
gateways.istio-ingressgateway.secretVolumes.secretNameistio-ingressgateway-certs挂载证书secret的名称
gateways.istio-ingressgateway.secretVolumes.mountPath/etc/istio/ingressgateway-certs挂载证书secret的路径
gateways.istio-ingressgateway.secretVolumes.secretNameistio-ingressgateway-ca-certs挂载根证书secret的名称
gateways.istio-ingressgateway.secretVolumes.mountPath/etc/istio/ingressgateway-ca-certs挂载根证书secret的路径
gateways.istio-egressgateway.enabledTRUE是否开启egressgateway
gateways.istio-egressgateway.labels.appistio-egressgatewayLabels中key为app的value值
gateways.istio-egressgateway.labels.istioegressgatewayLabels中key为istio的value值
gateways.istio-egressgateway.replicaCount1egressgateway默认实例数量
gateways.istio-egressgateway.autoscaleMin1egressgateway自动扩缩容最小实例数
gateways.istio-egressgateway.autoscaleMax5egressgateway自动扩缩容最大实例数
gateways.istio-egressgateway.serviceAnnotations{}egressgateway占用资源与限制
gateways.istio-egressgateway.typeClusterIP #change to NodePort or LoadBalancer if need beegressgateway的service发布类型,三种可选
gateways.istio-egressgateway.ports.namehttp2egressgateway端口名称
gateways.istio-egressgateway.ports.name.namehttpsegressgateway端口名称
gateways.istio-egressgateway.secretVolumes.secretNameistio-egressgateway-certs挂载证书secret的名称
gateways.istio-egressgateway.secretVolumes.secretName.mountPath/etc/istio/egressgateway-certs挂载证书secret的路径
gateways.istio-egressgateway.secretVolumes.secretName.secretNameistio-egressgateway-ca-certs挂载根证书secret的名称
gateways.istio-egressgateway.secretVolumes.secretName.mountPath/etc/istio/egressgateway-ca-certs挂载根证书secret的路径
gateways.istio-ilbgateway.enabledFALSE是否开启Ilbgateway,创建InternalLoadBalancer类型gateway
gateways.istio-ilbgateway.enabled.labels.appistio-ilbgatewayLabels中key为app的value值
gateways.istio-ilbgateway.enabled.labels.istioilbgatewayLabels中key为istio的value值
gateways.istio-ilbgateway.enabled.replicaCount1ilbgateway默认实例数量
gateways.istio-ilbgateway.enabled.autoscaleMin1ilbgateway自动扩缩容最小实例数
gateways.istio-ilbgateway.enabled.autoscaleMax5ilbgateway自动扩缩容最大实例数
gateways.istio-ilbgateway.enabled.resources.requests.cpu800mIlbgateway所需CPU
gateways.istio-ilbgateway.enabled.resources.requests.memory512MiIlbgateway所需内存
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.typeLoadBalancerIlbgateway的service类型
gateways.istio-ilbgateway.enabled.ports.namegrpc-pilot-mtls是否启用mtls认证
gateways.istio-ilbgateway.enabled.ports.namegrpc-pilotService端口名称
gateways.istio-ilbgateway.enabled.ports.targetPort8060Grpc service端口
gateways.istio-ilbgateway.enabled.ports.nametcp-citadel-grpc-tlsGrpc-tls端口名称
gateways.istio-ilbgateway.enabled.ports.nametcp-dnsDns端口名称
gateways.istio-ilbgateway.enabled.secretVolumes.secretNameistio-ilbgateway-certs挂载证书secret的名称
gateways.istio-ilbgateway.enabled.secretVolumes.mountPath/etc/istio/ilbgateway-certs挂载证书secret的路径
gateways.istio-ilbgateway.enabled.secretVolumes.secretNameistio-ilbgateway-ca-certs挂载根证书secret的名称
gateways.istio-ilbgateway.enabled.secretVolumes.mountPath/etc/istio/ilbgateway-ca-certs挂载根证书secret的路径

四、全局变量global

KeyDefault ValueDescription
global.hubdocker.io/istio镜像仓库
global.tag1.0.0镜像版本号
global.k8sIngressSelectoringress匹配ingress所用label
global.k8sIngressHttpsFALSE是否开启https
global.proxy.imageproxyv2Proxy镜像名称
global.proxy.resources.requests.cpu10mProxy所需cpu
global.proxy.accessLogFile"/dev/stdout"Sidecar的log文件路径
global.proxy.enableCoreDumpFALSE是否启用coreDump
global.proxy.includeIPRanges"*"如果目标IP在范围内,出流量要经过sidecar
global.proxy.excludeIPRanges""如果目标IP在范围内,出流量不经过sidecar
global.proxy.includeInboundPorts"*"如果容器端口在范围内,入这个端口的流量要经过sidecar
global.proxy.excludeInboundPorts""如果容器端口在范围内,入这个端口的流量不经过sidecar
global.proxy.autoInjectenabled是否开启自动注入
global.proxy.envoyStatsd.enabledTRUE是否对接statsd
global.proxy.envoyStatsd.hostistio-statsd-prom-bridgeStatsd host
global.proxy.envoyStatsd.port9125Statsd端口
global.proxy_init.imageproxy_initProxy的init镜像
global.imagePullPolicyIfNotPresent镜像的拉去策略
global.controlPlaneSecurityEnabledTRUE控制面组件是否开启mtls认证
global.disablePolicyChecksFALSE关掉mixer-check
global.enableTracingTRUE开启tracing
global.mtls.enabledTRUE开启Mtls认证
global.arch.amd642亲和性策略
global.arch.s390x2亲和性策略
global.arch.ppc64le2亲和性策略
global.oneNamespaceFALSE限制为单ns
global.configValidationTRUE开启参数校验
global.meshExpansionFALSEingressgateway开启pilot与citadel的mtls
global.meshExpansionILBFALSEIlbgateway开启pilot与citadel的mtls
global.defaultResources.requests.cpu10m默认资源需求
global.hyperkube.hubquay.io/coreosHypercube镜像仓库
global.hyperkube.tagv1.7.6_coreos.0镜像版本号
global.priorityClassName""优先级类别
global.crdsTRUE是否需要优先创建crd

五、Grafana

监控数据展示addon

KeyDefault ValueDescription
grafana.enabledTRUE安装grafana
grafana.replicaCount1实例个数
grafana.imagegrafana镜像名称
grafana.security.enabledTRUE开启登录安全认证
grafana.security.adminUseradmin认证用户名
grafana.security.adminPasswordadmin认证密码
grafana.service.annotations{}Annotation
grafana.service.namehttpService中portname
grafana.service.typeClusterIPService类型
grafana.service.externalPort3000访问端口
grafana.service.internalPort3000容器端口

六、Ingress

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

KeyDefault ValueDescription
ingress.enabledTRUE是否启用Ingress
ingress.replicaCount1实例数
ingress.autoscaleMin1最小自动伸缩实例数
ingress.autoscaleMax5最大自动伸缩实例数
ingress.service.annotations{}Annotation
ingress.service.loadBalancerIP""ELB IP
ingress.service.typeLoadBalancer #change to  NodePort, ClusterIP or LoadBalancer if need beService类型
ingress.service.ports.namehttphttp端口名称
ingress.service.ports.nodePort32000nodePort
ingress.service.ports.namehttpshttps端口名称
ingress.service.selector.istioingressSelector匹配label

七、kiali

kiali插件

KeyDefault ValueDescription
kiali.enabledTRUE是否安装kiali
kiali.replicaCount1实例数
kiali.hubdocker.io/kiali镜像仓库
kiali.tagistio-release-1.0镜像版本
kiali.ingress.enabledTRUE是否开启ingress对外访问
kiali.dashboard.usernameadmin界面登录名
kiali.dashboard.passphraseadmin界面登录密码

八、mixer

KeyDefault ValueDescription
mixer.enabledTRUE是否启用mixer
mixer.replicaCount1实例数
mixer.autoscaleMin1最小伸缩实例数
mixer.autoscaleMax5最大伸缩实例数
mixer.imagemixer镜像名称
mixer.istio-policy.autoscaleEnabledTRUEpolicy开启自动扩容
mixer.istio-policy.autoscaleMin1最小伸缩实例数
mixer.istio-policy.autoscaleMax5最大伸缩实例数
mixer.istio-policy.cpu.targetAverageUtilization80扩缩容CPU阈值
mixer.istio-telemetry.autoscaleEnabledTRUETelemetry自动扩容
mixer.istio-telemetry.autoscaleMin1最小伸缩实例数
mixer.istio-telemetry.autoscaleMax5最大伸缩实例数
mixer.istio-telemetry.cpu.targetAverageUtilization80扩缩容CPU阈值
mixer.prometheusStatsdExporter.hubdocker.io/prom对接adapter镜像
mixer.prometheusStatsdExporter.tagv0.6.0镜像版本

九、pilot

KeyDefault ValueDescription
pilot.enabledTRUE启用pilot
pilot.replicaCount1实例数
pilot.autoscaleMin1最小伸缩实例数
pilot.autoscaleMax1最大伸缩实例数
pilot.imagepilot镜像名称
pilot.sidecarTRUE是否默认为pilot注入sidecar
pilot.traceSampling100采样率
pilot.resources.requests.cpu500mCPU需求
pilot.resources.requests.memory2048Mi内存需求

十、Prometheus

KeyDefault ValueDescription
prometheus.enabledTRUE启用prometheus
prometheus.replicaCount1实例数
prometheus.hubdocker.io/prom镜像仓库
prometheus.tagv2.3.1镜像版本
prometheus.service.annotations{}Annotation
prometheus.service.nodePort.enabledFALSE是否启用nodePort
prometheus.service.nodePort.port32090nodePort端口

十一、security

KeyDefault ValueDescription
security.replicaCount1实例数
security.imagecitadel镜像名称
security.selfSignedtrue # indicate if self-signed  CA is used.开启证书自签发

十二、servicegraph

KeyDefault ValueDescription
servicegraph.enabledFALSE启用servicegraph
servicegraph.replicaCount1实例数
servicegraph.imageservicegraph镜像名称
servicegraph.service.namehttpService的portname
servicegraph.service.typeClusterIPService类型
servicegraph.service.externalPort8088访问端口
servicegraph.service.internalPort8088容器端口
servicegraph.ingress.enabledFALSE开启ingress
servicegraph.prometheusAddrhttp://prometheus:9090对接普罗地址

十三、sidecarInjector

KeyDefault ValueDescription
sidecarInjectorWebhook.enabledTRUE启用sidecarinjector
sidecarInjectorWebhook.replicaCount1实例数
sidecarInjectorWebhook.imagesidecar_injector镜像名称
sidecarInjectorWebhook.enableNamespacesByDefaultFALSE注入规则配置,false为匹配injecor-label

十四、telemetry-gateway

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

KeyDefault ValueDescription
telemetry-gateway.gatewayNameingressgatewayGateway名称
telemetry-gateway.grafanaEnabledTRUE发布grafana-gateway
telemetry-gateway.prometheusEnabledTRUE发布prome-gateway

十五、tracing

KeyDefault ValueDescription
tracing.enabledTRUE启用tracing
tracing.providerjaeger是否安装jaeger svc
tracing.jaeger.hubdocker.io/jaegertracing镜像仓库
tracing.jaeger.tag1.5镜像版本号
tracing.jaeger.memory.max_traces50000最大条数
tracing.jaeger.ui.port16686前端访问端口
tracing.replicaCount1实例数
tracing.service.annotations{}Annotation
tracing.service.namehttpService的portName
tracing.service.typeClusterIPService类型
tracing.service.externalPort9411访问端口
tracing.service.internalPort9411容器端口
tracing.ingress.enabledFALSE是否发布为ingress

十六、总结

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

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。