我部署了Istio 使用操作符,并添加了一个定制的入口网关,它只能从特定的源范围(我们的VPN)访问。
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
metadata:
namespace: istio-system
name: ground-zero-ingressgateway
spec:
profile: empty
components:
ingressGateways:
- name: istio-ingressgateway
enabled: true
- name: istio-vpn-ingressgateway
label:
app: istio-vpn-ingressgateway
istio: vpn-ingressgateway
enabled: true
k8s:
serviceAnnotations:
...
service:
loadBalancerSourceRanges:
- "x.x.x.x/x"现在,我希望将Istio配置为使用Kubernetes入侵资源公开服务网格集群之外的服务。我使用kubernetes.io/ingress.class注释告诉Istio网关控制器它应该处理这个Ingress。
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-ingress
annotations:
kubernetes.io/ingress.class: istio
spec:
...现在使用的是哪个入口网关控制器(istio-ingressgateway还是istio-vpn-ingressgateway)?是否有一种方法来指定应该使用哪一种?
我知道我可以创建一个VirtualService并指定正确的网关,但是我们希望通过使用注释指定正确的入口控制器来编写一个没有Istio的清单。
发布于 2021-08-18 12:13:12
您可以创建一个入口类,该类引用默认情况下部署在istio命名空间中的入口控制器。这种带有入口的配置将起作用,但据我目前所知,这只用于向后兼容性。如果您想使用伊索入口控制器功能,则应该使用istio网关和虚拟服务:
建议使用Istio网关,而不是Ingress,以使用Istio提供的完整功能集,例如丰富的流量管理和安全特性。
如果此解决方案对您来说不是最佳解决方案,则应该使用例如nginx入口控制器,并且仍然可以将其绑定到注解 (不推荐)或使用IngressClass。据我目前所知,不可能用附加的入口控制器绑定这个入口类。如果需要解释,文档,应该创建一个github问题。
摘要:推荐的选项是将网关与虚拟服务一起使用。另一种可能是单独使用nginx,为它们提供不同的类和入口资源。
https://stackoverflow.com/questions/68633656
复制相似问题