kubernetes - 将通过Istio网关的网络流量的IP地址列入白名单

标签 kubernetes istio whitelist

我尝试使用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/

相关文章:

kubernetes - 有没有在没有 Helm 的情况下在 Kubernetes 集群中部署 Istio 的解决方案

ios - 在 Ionic Cordova 应用程序中,iframe 中的跨源内容中的外部超链接可在 Android 上运行,但在 iOS 上不起作用

kubernetes - 停止在 kubernetes master 上调度 pod

jenkins - Kubernetes 中的主动-被动 Jenkins 设置

kubernetes - 有没有办法获取kubernetes集群的外部端口

kubernetes - 使用Istio在K8s集群内部路由加权流量

docker - 服务网格(如 Istio)与微服务的事件驱动架构

ruby-on-rails - 将字符串作为 ruby​​ 中方法的条件传递

asp.net - Azure WebApp 上用于 AppInitialization 的 IP 白名单

kubernetes - K8 中每个 POD 的磁盘利用率统计