我尝试使用this示例将kubernetes群集的传入流量中的IP地址列入白名单:
尽管这可以按预期工作,但希望更进一步,并尝试在设置Istio规则而不是Loadbalancer(ingressgateway)时使用istio
网关或虚拟服务。
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
。
Am使用istio版本1.1.1 另外,我的集群中,几乎所有的Service Pod上都运行着带有特使边车的所有istio系统。
答案 0 :(得分:0)
您混淆一件事,在上述规则中,match: source.labels["app"] == "my-app"
不是指任何资源的标签,而是指pod的标签。
来自OutputTemplate Documentation:
sourceLabels |引用源容器标签。 属性绑定可以使用$ out.sourcelabels
引用此字段。
您可以通过以下方式查找带有“ app = istio-ingressgateway”标签的资源来进行验证:
kubectl get pods,svc -n istio-system -l "app=istio-ingressgateway" --show-labels
您可以在istio上查看有关混音器适配器模型的blog,以了解完整的混音器模型,其处理程序,实例和规则。
希望有帮助!