Автор оригинала: 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»