Skip to content
πŸš€ Running twemproxy on Kubernetes
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
deployments First commit Apr 11, 2017
services First commit Apr 11, 2017
.gitignore remove build dependencies after finish building twemproxy Apr 14, 2017
LICENSE First commit Apr 11, 2017 use alpine as base image to reduce image footprint Apr 14, 2017
redis.conf First commit Apr 11, 2017
twemproxy.yaml First commit Apr 11, 2017


Running twemproxy on Kubernetes

Install redis

Setup 2 instances of redis: create configmap for them, create 2 redis deployments and their respective services.

Update the PVC size to your liking.

kubectl create configmap redis-conf --from-file=redis.conf
kubectl create -f deployments/redis01.yaml
kubectl create -f deployments/redis02.yaml
kubectl create -f services/redis01.yaml
kubectl create -f services/redis02.yaml

Install twemproxy

Build the docker image for twemproxy from twemproxy folder.

Edit twemproxy configuration

  hash: murmur
  distribution: ketama
  auto_eject_hosts: true
  redis: true
  server_connections: 1
  server_retry_timeout: 30000
  timeout: 4000
  server_failure_limit: 3
  preconnect: true
    - redis01:6379:1 redis01
    - redis02:6379:1 redis02
    # add more servers here

Create the configmap, deployment and service for twemproxy

kubectl create configmap twemproxy-conf --from-file=twemproxy.yml
kubectl create -f deployments/twemproxy.yaml
kubectl create -f services/twemproxy.yaml

Check the installation

Fire up an Ubuntu container and check if twemproxy is working as expected.

kubectl run -i --tty ubuntu --image=ubuntu --restart=Never /bin/bash
apt-get update && apt-get install -y redis-tools
redis-cli -h twemproxy -p 22121
set foo bar
get foo
You can’t perform that action at this time.