首页 > 解决方案 > 如何覆盖应用部署中的 istio-proxy 选项?

问题描述

我想将 istio-proxy 的 --connectTimeout 设置为 2s,而不是默认的 10s。是否可以覆盖 istio-sidecar-injector configMap 中定义的选项值?

containers:
  - name: istio-proxy
    image: [[ annotation .ObjectMeta `sidecar.istio.io/proxyImage`  "registry.cn-beijing.aliyuncs.com/aliacs-app-catalog/proxyv2:1.0.5"  ]]

    ports:
    - containerPort: 15090
      protocol: TCP
      name: http-envoy-prom

    args:
    - proxy
    - sidecar
    - --configPath
    - [[ .ProxyConfig.ConfigPath ]]
    - --binaryPath
    - [[ .ProxyConfig.BinaryPath ]]
    - --serviceCluster
    [[ if ne "" (index .ObjectMeta.Labels "app") -]]
    - [[ index .ObjectMeta.Labels "app" ]]
    [[ else -]]
    - "istio-proxy"
    [[ end -]]
    - --drainDuration
    - [[ formatDuration .ProxyConfig.DrainDuration ]]
    - --parentShutdownDuration
    - [[ formatDuration .ProxyConfig.ParentShutdownDuration ]]
    - --discoveryAddress
    - [[ annotation .ObjectMeta `sidecar.istio.io/discoveryAddress` .ProxyConfig.DiscoveryAddress ]]
    - --discoveryRefreshDelay
    - [[ formatDuration .ProxyConfig.DiscoveryRefreshDelay ]]
    - --zipkinAddress
    - [[ .ProxyConfig.ZipkinAddress ]]
    - --connectTimeout
    - [[ formatDuration .ProxyConfig.ConnectTimeout ]]
    - --proxyAdminPort
    - [[ .ProxyConfig.ProxyAdminPort ]]
    [[ if gt .ProxyConfig.Concurrency 0 -]]
    - --concurrency
    - [[ .ProxyConfig.Concurrency ]]
    [[ end -]]
...

标签: kubernetesistio

解决方案


最简单的方法是kubectl edit configmaps istio-sidecar-injector -n istio-system

只需将模板更改为[[ formatDuration .ProxyConfig.ConnectTimeout ]]您想要的值。

如果您使用 Helm 部署 Istio,您可以更改图表。

您还可以获取 istio-sidecar-injector 的 configmapsYAML并将其保存到文件中。

kubectl get configmaps istio-sidecar-injector -n istio-system -o yaml > istio-sidecar-injector.yaml

此外,这可能对您的kubernetes / 向 configMap 注入值的最佳实践有所帮助。


推荐阅读