Upload
redis-labs
View
1.400
Download
1
Embed Size (px)
Citation preview
Goals
• Spark your interest in Kubernetes
• Understand what Kubernetes can and can’t do for Redis Clusters
Redis Cluster
• Automatically split your dataset among multiple nodes
• Continue operations when a subset of the nodes are experiencing failures
Redis Cluster - Scale
master0 - 5460
slave slave slave
master5461-10922
master10923-16383
slave
master0
Redis Cluster - Deployment Challenges
• No support for remapping of IPs or ports
• Configuration file distribution
• Service discovery
• Volume management
Kubernetes
• Not a PaaS
• Framework for building distributed systems
• Declarative application management platform
Kubernetes - Scheduling (Bin Packing)
node 1 node 2 node 3 node 4
● Use for standalone Redis instances● Increase single node resource utilization
Kubernetes - Scheduling (Bin Packing)
node 1 node 2 node 3 node 4
● Use for standalone Redis instances● Increase single node resource utilization
Kubernetes - Scheduling (Bin Packing)
node 1 node 2 node 3 node 4
● Use for standalone Redis instances● Increase single node resource utilization
Kubernetes - Scheduling (Bin Packing)
node 1 node 2 node 3 node 4
● Use for standalone Redis instances● Increase single node resource utilization
Kubernetes - Scheduling (Bin Packing)
node 1 node 2 node 3 node 4
● Use for standalone Redis instances● Increase single node resource utilization
Kubernetes - Scheduling (Spread)
node 1 node 2 node 3 node 4
● Use for Redis cluster instances● Increase availability
Kubernetes - Scheduling (Spread)
node 1 node 2 node 3 node 4
● Use for Redis cluster instances● Increase availability
Kubernetes - Scheduling (Spread)
node 1 node 2 node 3 node 4
● Use for Redis cluster instances● Increase availability
Kubernetes - Scheduling (Spread)
node 1 node 2 node 3 node 4
● Use for Redis cluster instances● Increase availability
Kubernetes - Scheduling (Spread)
node 1 node 2 node 3 node 4
● Use for Redis cluster instances● Increase availability
Pods
Logical Application• One or more containers
and volumes• Shared namespaces• One IP per pod
Pod
redis
ConfigGCE
10.128.7.4
/etc/redis/redis.conf
/var/lib/redis
Drives current state towards desired state
app: redisreplicas: 1
ReplicaSets
node 1 node 2 node 3 node 4
Drives current state towards desired state
app: redisreplicas: 1
ReplicaSets
node 1 node 2 node 3 node 4
Drives current state towards desired state
app: redisreplicas: 1
ReplicaSets
node 1 node 2 node 3 node 4
Drives current state towards desired state
app: redisreplicas: 1
ReplicaSets
node 1 node 2 node 3 node 4
ServicesProvide a stable endpoint for one or more pods
node 1 node 2 node 3 node 4
labels: app: redis
ServicesProvide a stable endpoint for one or more pods
node 1 node 2 node 3 node 4
redislabels: app: redis
10.131.246.27
ServicesProvide a stable endpoint for one or more pods
node 1 node 2 node 3 node 4
labels: app: redis name: redis-1
ServicesProvide a stable endpoint for one or more pods
node 1 node 2 node 3 node 4
labels: app: redis name: redis-1
redis-1 10.131.242.1
node 2
ServicesProvide a stable endpoint for one or more pods
node 1 node 3 node 4
redis-1 10.131.242.1
labels: app: redis name: redis-1
ServicesProvide a stable endpoint for one or more pods
node 1 node 2 node 3 node 4
redis-2redis-1 redis-3 redis-4
ServicesProvide a stable endpoint for one or more pods
node 1 node 2 node 3 node 4
redis-1 redis-2 redis-3 redis-4
redis