Closed cr-simmons closed 1 year ago
@cr-simmons I have update the code with latest
Proxy Yaml file
apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
name: add-redis-proxy
namespace: redis
spec:
configPatches:
- applyTo: NETWORK_FILTER
match:
listener:
name: 10.104.57.45_6379 # Replace REDIS_VIP with the cluster IP of "redis-cluster service
filterChain:
filter:
name: "envoy.filters.network.tcp_proxy"
patch:
operation: REPLACE
value:
name: envoy.redis_proxy
typed_config:
'@type': type.googleapis.com/envoy.extensions.filters.network.redis_proxy.v3.RedisProxy
stat_prefix: redis_stats
prefix_routes:
catch_all_route:
cluster: custom-redis-cluster
settings:
op_timeout: 5s
enable_redirection: true
enable_command_stats: true
read_policy: REPLICA
Cluster YAML FIle
apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
name: custom-redis-cluster
namespace: redis
spec:
configPatches:
- applyTo: CLUSTER
patch:
operation: INSERT_FIRST
value:
cluster_type:
name: envoy.clusters.redis
typed_config:
'@type': type.googleapis.com/google.protobuf.Struct
value:
cluster_refresh_rate: 1800s
cluster_refresh_timeout: 4s
host_degraded_refresh_threshold: 1
redirect_refresh_interval: 4s
redirect_refresh_threshold: 1
connect_timeout: 4s
dns_lookup_family: V4_ONLY
load_assignment:
cluster_name: custom-redis-cluster
endpoints:
- lb_endpoints:
- endpoint:
address:
socket_address:
address: redis-cluster-0.redis-cluster.redis.svc.cluster.local
port_value: 6379
- endpoint:
address:
socket_address:
address: redis-cluster-1.redis-cluster.redis.svc.cluster.local
port_value: 6379
- endpoint:
address:
socket_address:
address: redis-cluster-2.redis-cluster.redis.svc.cluster.local
port_value: 6379
- endpoint:
address:
socket_address:
address: redis-cluster-3.redis-cluster.redis.svc.cluster.local
port_value: 6379
- endpoint:
address:
socket_address:
address: redis-cluster-4.redis-cluster.redis.svc.cluster.local
port_value: 6379
- endpoint:
address:
socket_address:
address: redis-cluster-5.redis-cluster.redis.svc.cluster.local
port_value: 6379
name: custom-redis-cluster
outlier_detection:
base_ejection_time: 20s
consecutive_5xx: 1
interval: 5s
upstream_connection_options:
tcp_keepalive:
keepalive_interval: 5
keepalive_probes: 1
keepalive_time: 30
but reads request not going only to replica it going to both master and slave node.
V3 Details: https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/filters/network/redis_proxy/v3/redis_proxy.proto
It appears that simply changing to
type.googleapis.com/envoy.extensions.filters.network.redis_proxy.v3.RedisProxy
is not sufficient as the proxy still fails.