我尝试使用this示例将Kubernetes集群的传入流量中的IP地址列入白名单:
尽管这可以按预期工作,但是想进一步尝试并在设置Istio规则时尝试使用istio
网关或虚拟服务,而不是Loadbalancer(ingressgateway)。
apiVersion: config.istio.io/v1alpha2
kind: rule
metadata:
name: checkip
namespace: my-namespace
spec:
match: source.labels["app"] == "my-app"
actions:
- handler: whitelistip.listchecker
instances:
- sourceip.listentry
---
其中
my-app
是具有特定主机和端口的kind: Gateway
,并标记为app=my-app
。我正在使用istio 1.1.1版
另外,我的集群在几乎所有服务舱上都运行了带有使节边车的所有istio系统。
最佳答案
您会混淆一件事,在上述规则中,match: source.labels["app"] == "my-app"
不是指任何资源的标签,而是指pod的标签。
从OutputTemplate Documentation:
sourceLabels | Refers to source pod labels. attributebindings can refer to this field using $out.sourcelabels
您可以通过以下方式查找带有“app = istio-ingressgateway”标签的资源来进行验证:
kubectl get pods,svc -n istio-system -l "app=istio-ingressgateway" --show-labels
您可以从istio中检查有关混音器适配器模型的blog,以了解完整的混音器模型,其处理程序,实例和规则。
希望能帮助到你!
关于kubernetes - 将通过Istio网关的网络流量的IP地址列入白名单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55768514/