部署ingress gateway时,injectionTemplate: gateway是什么意思?

问题描述 投票:0回答:2

部署入口网关时,

injectionTemplate: gateway
是什么意思?

这里提到:https://istio.io/latest/docs/setup/additional-setup/gateway/#deploying-a-gateway

  values:
    gateways:
      istio-ingressgateway:
        # Enable gateway injection
        injectionTemplate: gateway

另外,sidecar 和 gateway 模板有什么区别?

kubernetes istio istio-sidecar istio-gateway
2个回答
0
投票

引用Istio官方文档: https://istio.io/v1.12/docs/setup/additional-setup/sidecar-injection/#custom-templates-experimental

“默认情况下,Pod 将使用自动创建的 sidecar 注入模板。这可以通过

inject.istio.io/templates
注解覆盖。例如,要应用默认模板和我们的自定义,您可以设置
inject.istio.io/templates=sidecar,custom
。除了 sidecar 之外,默认情况下还提供了一个
gateway
模板来支持将代理注入到网关部署中。”

看起来

gateway
注入模板是一个“自定义模板”,专门配置用于将sidecar注入网关部署中。

较旧的入口和出口部署(v1.11.0 及更早版本)默认情况下不使用 sidecar 注入(

injectionTemplate
:“”),但似乎最新的入口网关部署正在使用
gateway
模板注入 sidecar默认:https://artifacthub.io/packages/helm/istio-official/gateway

Istio 建议为网关部署启用自动注入。 来自 https://istio.io/v1.12/docs/setup/additional-setup/gateway/#deploying-a-gateway

“建议对网关部署使用自动注入,因为它使开发人员可以完全控制网关部署,同时还简化了操作。当有新的升级可用或配置发生更改时,只需重新启动网关 Pod 即可更新它们。这使得操作网关部署的体验与操作 sidecar 相同。”

唯一的问题是,我还没有使用

gateway
模板来工作。我的 ingressgateway pod 从未启动,并且我不断在部署日志中收到以下错误:

  - type: ReplicaFailure
      status: 'True'
      lastUpdateTime: '2022-03-17T12:19:55Z'
      lastTransitionTime: '2022-03-17T12:19:55Z'
      reason: FailedCreate
      message: >-
        admission webhook "namespace.sidecar-injector.istio.io" denied the
        request: failed to run injection template: could not parse configuration
        values: json: cannot unmarshal number into Go value of type string

看起来这可能是

gateway
注入模板配置方式的上游问题。我也不知道在哪里可以获得关于默认
sidecar
模板和
gateway
模板之间的区别的更详细答案。

我默认使用较旧的入口部署,没有 sidecar 注入,直到事情变得更清楚为止。


0
投票

您是否知道在使用 Istio 的 Helm Chart 安装时如何实际创建名为 custom 的自定义模板? Istio 文档中的示例仅展示了如何使用 IstioOperator CRD 来执行此操作。

© www.soinside.com 2019 - 2024. All rights reserved.