[英]What is spec/selector label in an Istio Gateway configuration?
我是 Istio Gateway 的新手,我的目标是为部署在 K8s 上的服务创建一个 Ingress Gateway。
我对官方文档中的网关示例有点困惑: https://istio.io/latest/docs/concepts/traffic-management/#gateway-example 。
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: ext-host-gwy
spec:
selector:
app: my-gateway-controller
servers:
- port:
number: 443
name: https
protocol: HTTPS
hosts:
- ext-host.example.com
tls:
mode: SIMPLE
credentialName: ext-host-cert
在本例中,spec/selector 下的app: my-gateway-controller
是什么? 这个 my-gateway-controller 是否需要额外的配置/部署?
我尝试在文档的 rest 中搜索“my-gateway-controller”,但没有找到进一步的解释。
它通常是 istio 入口网关 pod label 名称,需要在选择器中给出,因为外部流量将通过入口网关 pod 进入。 除非在 istio 安装期间更改了入口网关的名称。
请在网关定义中提及以下内容,它将流量路由到应用程序。
spec:
selector:
istio: ingressgateway
Istio 可以使用不同的选项安装。 它们具有不同的配置文件,可用于测试、默认场景和自定义设置。 一种选择是配置一个入口控制器(但你也可以没有并使用不同的非 istio 入口控制器)。
根据您的设置,您可以没有入口网关、默认入口网关或自定义网关。
默认网关有一个名为istio: ingressgateway
。 您可以在大多数示例/入门文档中找到它,例如如何设置安全入口
这里的Gateway
看起来像这样:
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: mygateway
spec:
selector:
istio: ingressgateway # use istio default ingress gateway
[...]
另一种选择是设置第二个可能具有不同名称的入口网关。 例如,您可以使用IstioOperator
清单来配置它。
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
components:
ingressGateways:
- enabled: true
name: my-gateway-controller
该入口网关 pod 将获得一个 label 的app: my-gateway-controller
。 这个 label 可以像您发布的示例中那样使用。 因此,您可以检查您拥有的所有入口网关 pod,然后选择您需要的 label。
如果你使用默认设置,你可能有默认的 ingress-gateway 并且可以简单地将选择器更改为istio: ingressgateway
。
一开始我建议坚持使用任务部分来配置您的设置,因为它使用大多数人拥有的默认 istio 设置。 如果您需要更多详细信息或特殊内容,您可以随时查看文档页面。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.