I’m trying to set Istio mesh with AWS Elasicache.
Using the below manifests, it looks like working fine.
But the problem I got is from Kiali, it doesn’t recognize the service entry.
Anyone has idea to solve this ?
How the istio recognize it ?
apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
annotations:
name: external-redis-cluster
spec:
endpoints:
- address: xxx.0001.apn2.cache.amazonaws.com
- address: yyy.0001.apn2.cache.amazonaws.com
exportTo:
- .
hosts:
- external-redis-cluster
location: MESH_EXTERNAL
ports:
- name: redis
number: 6379
protocol: REDIS
resolution: DNS
---
kind: DestinationRule
apiVersion: networking.istio.io/v1alpha3
metadata:
name: redis-proxy
spec:
host: external-redis-cluster
trafficPolicy:
connectionPool:
tcp:
connectTimeout: 500ms
tcpKeepalive:
interval: 60s
time: 300s
exportTo:
- .
---
apiVersion: v1
items:
- apiVersion: networking.istio.io/v1alpha3
kind: Sidecar
metadata:
annotations:
name: redis-proxy
spec:
egress:
- bind: 127.0.0.1
captureMode: NONE
hosts:
- ./*
port:
name: redis
number: 6379
protocol: REDIS
outboundTrafficPolicy:
mode: REGISTRY_ONLY
workloadSelector:
labels:
run: cli2
kind: List
metadata:
resourceVersion: ""
selfLink: ""
---
apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
annotations:
name: redis-proxy
spec:
configPatches:
- applyTo: NETWORK_FILTER
match:
listener:
filterChain:
filter:
name: envoy.filters.network.tcp_proxy
name: 127.0.0.1_6379
patch:
operation: REPLACE
value:
name: envoy.filters.network.redis_proxy
typed_config:
'@type': type.googleapis.com/envoy.extensions.filters.network.redis_proxy.v3.RedisProxy
latencyInMicros: true
prefix_routes:
catch_all_route:
cluster: outbound|6379||external-redis-cluster
settings:
enable_command_stats: true
enable_redirection: true
op_timeout: 0.3s
read_policy: ANY
stat_prefix: outbound|6379||external-redis-cluster
- applyTo: CLUSTER
match:
cluster:
service: external-redis-cluster
portNumber: 6379
context: SIDECAR_OUTBOUND
patch:
operation: MERGE
value:
health_checks:
- custom_health_check:
name: envoy.health_checkers.redis
typed_config:
'@type': type.googleapis.com/envoy.extensions.health_checkers.redis.v3.Redis
healthy_threshold: 1
interval: 2s
timeout: 0.5s
unhealthy_threshold: 2
workloadSelector:
labels:
run: cli2
Thanks!