Автор оригинала: Pradeep.
В этом посте я хотел бы поделиться тем, как настроить Twemproxy для Charding Redis Cluster Wharding в Kubernetes.
Настройка Это задачи обязательны:
Бег Twemproxy в качестве единого развертывания реплики в Куберане. Запуск Redis Replicas как государственные средства с в Кубернетах. Позволяя другим стручкам в Кубестерах доступа к Twemproxy. Позволяя Twemproxy подключаться к стручкам Redis. Twemproxy Мы можем запустить Twemproxy как одно развертывание в Кубернетах. Мы можем использовать следующее изображение сообщества Jgoodall/Twemproxy
Развертывание и обслуживание Twemproxy:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
app: twemproxy
name: twemproxy
spec:
replicas: 1
template:
metadata:
labels:
app: twemproxy
spec:
containers:
- image: jgoodall/twemproxy:latest
name: twemproxy
ports:
- containerPort: 63791
- containerPort: 63792
- containerPort: 6222
restartPolicy: Always
---
apiVersion: v1
kind: Service
metadata:
labels:
app: twemproxy
name: twemproxy
spec:
selector:
app: twemproxy
ports:
- name: "63791"
port: 63791
targetPort: 63791
- name: "63792"
port: 63792
targetPort: 63792
- name: "6222"
port: 6222
targetPort: 6222
Конфигурация выше будет развертывать развертывание и обслуживание Twemproxy. Сервис в Кубернане Разрешить стручки к сети друг с другом, эта услуга позволит другим стручкам достигать Twemproxy.
twemproxy.yml:
local:
listen: 0.0.0.0:63791
hash: fnv1a_64
hash_tag: "{}"
distribution: ketama
timeout: 500
redis: true
servers:
- redis-0:6379:1
- redis-1:6379:1
- redis-2:6379:1
session:
listen: 0.0.0.0:63792
hash: fnv1a_64
hash_tag: "{}"
distribution: ketama
auto_eject_hosts: true
server_retry_timeout: 30000
server_failure_limit: 3
timeout: 500
redis: true
servers:
- redis-0:6379:1
- redis-1:6379:1
- redis-2:6379:1
Выше находится конфигурация Twemproxy, которая должна быть установлена в виде объема конфигурации в развертывании Twemproxy.
Redis штан-центр Далее нам нужно создать государство Redis. Сохранение с 3 репликами создаст следующие стручки Redis-0, Redis-1 и Redis-2. Стручки, созданные от состояния, будут помечены как Statefulset.kubernetes.io/pod-name: мы можем использовать это в качестве селектора для сервиса. К сожалению, нам все равно нужно будет создавать 3 сервиса, чтобы обеспечить удовлетворение каждого POD по Twemproxy,
Увеличить состояние штата:
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: redis
spec:
selector:
matchLabels:
app: redis
serviceName: "redis"
replicas: 3
template:
metadata:
labels:
app: redis
spec:
terminationGracePeriodSeconds: 3
containers:
- name: redis
image: redis:3.0.7
ports:
- containerPort: 6379
redis services:
apiVersion: v1
kind: Service
metadata:
name: redis
labels:
app: redis
spec:
ports:
- port: 6379
name: redis
clusterIP: None
selector:
app: redis
---
apiVersion: v1
kind: Service
metadata:
name: redis-1
labels:
app: redis-1
spec:
ports:
- port: 6379
name: redis-1
clusterIP: None
selector:
statefulset.kubernetes.io/pod-name: redis-1
---
apiVersion: v1
kind: Service
metadata:
name: redis-1
labels:
app: redis-1
spec:
ports:
- port: 6379
name: redis-1
clusterIP: None
selector:
statefulset.kubernetes.io/pod-name: redis-1
---
apiVersion: v1
kind: Service
metadata:
name: redis-2
labels:
app: redis-2
spec:
ports:
- port: 6379
name: redis-2
clusterIP: None
selector:
statefulset.kubernetes.io/pod-name: redis-2
Оригинал: «https://www.codementor.io/@pradeepbuditi/running-twemproxy-in-kubernetes-gsojrw6n6»