Code Monkey home page Code Monkey logo

k8s-redis-ha's Introduction

Redis High Availability deployment with Kubernetes

  • Docker images for Redis and Sentinel
  • Kubernetes configuration

Usage

Build and push images

If you want to push images closer location to your cluster for such as asia.gcr.io:

$ docker build -t asia.gcr.io/your-project-id/redis-ha-server:3.2.8 images/server
$ docker push asia.gcr.io/your-project-id/redis-ha-server:3.2.8

$ docker build -t asia.gcr.io/your-project-id/redis-ha-sentinel:3.2.8 images/sentinel
$ docker push asia.gcr.io/your-project-id/redis-ha-sentinel:3.2.8

Create kubernetes resources

$ kubectl create namespace ruby-app # <-- replace with your app's namespace
namespace "ruby-app" created
$ kubeclt apply -f kube --namespace=ruby-app
configmap "redis-config" created
configmap "sentinel-config" created
service "redis-ha" created
statefulset "rds" created

Client access example

Redis-rb supports sentinel.

SENTINELS = [
  {:host => "rds-0.redis-ha.ruby-app.svc.cluster.local", :port => 26379},
  {:host => "rds-1.redis-ha.ruby-app.svc.cluster.local", :port => 26379},
  {:host => "rds-2.redis-ha.ruby-app.svc.cluster.local", :port => 26379},
]

redis = Redis.new(
  host: 'ha-master' # the gem uses 'host' param as master name
  sentinels: SENTINELS, role: :master,
  timeout: 10, connect_timeout: 15
)

Reference

k8s-redis-ha's People

Contributors

ochko avatar

Stargazers

Lazy coder avatar Pavel Pospisil avatar Behrouz Hasanbeygi avatar Bogdan Ciobotaru avatar David Nix avatar Bouwe Ceunen avatar Forud avatar

Watchers

 avatar James Cloos avatar

k8s-redis-ha's Issues

TCP backlog

2017-06-14T04:57:00.630562455Z 1:M 14 Jun 04:57:00.630 # WARNING: The TCP
backlog setting of 511 cannot be enforced because
/proc/sys/net/core/somaxconn is set to the lower value of 128.

I'm try fixing on image, but the read-only will be a problem in this case. I'll investigating more.

THP enabled in the kernel of this image

  • 2017-06-14T04:57:00.630620876Z 1:M 14 Jun 04:57:00.630 # WARNING you have
    Transparent Huge Pages (THP) support enabled in your kernel. This will
    create latency and memory usage issues with Redis. To fix this issue run
    the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as
    root, and add it to your /etc/rc.local in order to retain the setting after
    a reboot. Redis must be restarted after THP is disabled.

I'm try fixing on image, but the read-only will be a problem in this case. I'll investigating more.

Password to Redis server and Sentinel doesn't works

I'm trying change the configmap to accept password into redis server and sentinel, but when I insert this configurations the services doesn't works more:

edis-dot-conf: |
bind BIND
port 6379
protected-mode no
dir DIR
appendonly yes
appendfsync always
masterauth my-password-here
requirepass my-password-here

sentinel-dot-conf: |
bind BIND
port 26379
sentinel auth-pass MASTER_NAME my-password-here
sentinel monitor MASTER_NAME MASTER_ADDRESS 6379 QUORUM
sentinel down-after-milliseconds MASTER_NAME 10000
sentinel parallel-syncs MASTER_NAME 1
sentinel failover-timeout MASTER_NAME 60000

any suggestion ?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.