2017-01-01 7 views
0

Я пытаюсь изучить докер и кубернете, и одна из вещей, которые я пытаюсь сделать, это установить Redis с Sentinel и выставить redis на вещи вне контейнера.Kubernetes Redis HA и выставление redis на вещи за пределами контейнера

Получение Redis и настройка сторожевого довольно легко следуя https://github.com/kubernetes/kubernetes/tree/master/examples/storage/redis

Но теперь мое следующее желание, чтобы иметь возможность доступа к Redis вне контейнера, и я не могу понять, кто выставить дозорных и мастер-стручок.

ответ

1

Сервисный файл redis дозорный по вашей ссылке (https://github.com/kubernetes/kubernetes/blob/master/examples/storage/redis/redis-sentinel-service.yaml) выставляет контейнеры внутри кластера. Для внешнего доступа (снаружи кластера), вы можете использовать NodePort:

apiVersion: v1 
kind: Service 
metadata: 
    labels: 
    name: sentinel 
    role: service 
    name: redis-sentinel 
spec: 
    type: NodePort 
    ports: 
    - port: 26379 
     targetPort: 26379 
     nodePort: 30369 
    selector: 
    redis-sentinel: "true" 

Это подвергнет 30369 портов на всех хостах от внешнего мира к службе Redis дозорного.

Несколько замечаний по этому поводу: * Firewall: Безопасность в Redis ограничено, поэтому предотвратить нежелательный доступ перед открытием порта * Разрешенная быть назначен nodePort диапазон составляет от 30000 до 32767, так быть творческими с этим ограничением ,

+0

Norbert благодарит за ответ. Мой следующий вопрос может не распространяться на redis sentinel, но я считаю, что это так. Не будет ли часовым возвращать IP-адрес пакета вместо службы, если что-то изменится? Я заметил это при попытке настроить redis cluster и разоблачить каждый модуль с помощью службы, которая вернет ip ip вместо ip-сервиса, что делает невозможным/затруднительным/невозможным использовать его с кубернетами. Есть ли способ заставить его работать и для этой ситуации? (Думая о скоплении Redis и таких вещах, как Cassandra или Kafka) Это может потребоваться отдельный вопрос – Josh

+1

Я действительно запускаю redis в кубернетах без дозорного устройства: если redis запущен как процесс 1 в контейнере (который используется, когда вы используете эти контейнеры) , kubernetes выполняет работу дозорного (IMHO) для вас уже. –