Istio 如何在特殊应用上限制访问外部服务

Istio 如何在特殊应用上限制访问外部服务,istio,Istio,我想限制一些pod访问外部服务。 两个应用程序A和B,A可以访问example.com,但B不能访问example.com 为外部服务创建serviceentry apiVersion: networking.istio.io/v1alpha3 kind: ServiceEntry metadata: name: example spec: hosts: - example.com addresses: - 192.168.0.13 ports: - number:

我想限制一些pod访问外部服务。 两个应用程序A和B,A可以访问example.com,但B不能访问example.com

为外部服务创建serviceentry

apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
  name: example
spec:
  hosts:
  - example.com
  addresses:
  - 192.168.0.13
  ports:
  - number: 8888
    name: tcp-8888
    protocol: TCP
  - number: 443
    name: tcp-443
    protocol: TCP
  location: MESH_EXTERNAL
  exportTo:
    - .
创建策略以限制pod标签包含应用程序是app1可以访问此serviceentry

apiVersion: config.istio.io/v1alpha2
kind: handler
metadata:
  name: whitelist
spec:
  compiledAdapter: listchecker
  params:
    overrides:
      - app1
    blacklist: false

---
apiVersion: config.istio.io/v1alpha2
kind: instance
metadata:
  name: appname
spec:
  compiledTemplate: listentry
  params:
    value: source.labels["app"]

---
apiVersion: config.istio.io/v1alpha2
kind: rule
metadata:
  name: checkapp
spec:
  match: destination.service.host == "example.com"
  actions:
  - handler: whitelist
    instances: [ appname ]

但此设置不起作用

您好,您使用的是哪个版本的istio?还有,您的群集基础结构和版本是什么?istio 1.4.0和k8s 1.14您从
kubectl get configmap istio-n istio system-o yaml | grep-m1模式中得到了什么:
?模式是REGISTRY\u Only您从
kubectl-n istio system get cm istio-o jsonpath=“{@.data.mesh}”中得到了什么?