Istio 如何在特殊应用上限制访问外部服务
我想限制一些pod访问外部服务。 两个应用程序A和B,A可以访问example.com,但B不能访问example.com 为外部服务创建serviceentryIstio 如何在特殊应用上限制访问外部服务,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:
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}”中得到了什么?