Статьи

Couchbase Cluster Использование Docker Compose

Couchbase 4.0 предоставляет множество функций, которые позволяют быстро развиваться и работать в любом масштабе. Некоторые функции, которые позволяют вам работать в любом масштабе:

  • Эластичная Масштабируемость
  • Стабильно высокая производительность
  • Доступность всегда
  • Развертывание мультицентра
  • Простое и мощное администрирование
  • Корпоративная безопасность

Узнайте больше об этих корпоративных функциях на  couchbase.com/operate-at-any-scale .

Полный обзор доступен в техническом  описании Couchbase Server 4.0 .

В этом блоге будет рассказано, как легко настроить 3-узловый кластер Couchbase с помощью Docker Compose.

Докер Couchbase Cluster

Исходный код и последние инструкции доступны по адресу  github.com/arun-gupta/docker-images/tree/master/couchbase-cluster .

Создание узлов Couchbase

Кластер Couchbase может быть легко создан с использованием следующего файла Docker Compose:

couchbase1:
  image: couchbase/server
  volumes:
    - ~/couchbase/node1:/opt/couchbase/var
couchbase2:
  image: couchbase/server
  volumes:
    - ~/couchbase/node2:/opt/couchbase/var
couchbase3:
  image: couchbase/server
  volumes:
    - ~/couchbase/node3:/opt/couchbase/var
  ports:
    - 8091:8091
    - 8092:8092 
    - 8093:8093 
    - 11210:11210

Этот файл имеет определение сервиса для трех узлов Couchbase. Административные порты доступны только для одного узла, так как другие узлы будут взаимодействовать друг с другом, используя назначенные Docker IP-адреса.

  1. Создание трех каталогов ~couchbase/node1, ~couchbase/node2, ~couchbase/node3— один для каждого узла.
  2. Запустите три узла Couchbase, как docker-compose.ymlпоказано выше:
    > docker-compose up -d
    Pulling couchbase1 (couchbase/server:latest)...
    latest: Pulling from couchbase/server
    70618b6e8070: Pull complete
    05820377a11a: Pull complete
    8de88a91bde5: Pull complete
    61994089e28e: Pull complete
    bc191c81777b: Pull complete
    939d0c2514c9: Pull complete
    fa75256f7885: Pull complete
    7bc9fb79dd30: Pull complete
    e4c99c5f6106: Pull complete
    307ac999aa30: Pull complete
    24eeb78ce9ab: Pull complete
    c4180973b487: Pull complete
    6e0c54ca80e7: Pull complete
    c6d69cc874d9: Pull complete
    31485a5bae7a: Pull complete
    31c8df734d6b: Pull complete
    Digest: sha256:0e983929897ae9bd396533ff7875f30027290c6acf164a66c967ca8884507381
    Status: Downloaded newer image for couchbase/server:latest
    Creating couchbasecluster_couchbase1_1
    Creating couchbasecluster_couchbase3_1
    Creating couchbasecluster_couchbase2_1

    Эта команда дана на Docker Machine.

  3. Проверьте состояние узлов:
    > docker ps
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                                                                               NAMES
    07ff4f1823a4        couchbase/server    "/entrypoint.sh couch"   5 minutes ago       Up 5 minutes        8091-8093/tcp, 11207/tcp, 11210-11211/tcp, 18091-18092/tcp                                          couchbasecluster_couchbase2_1
    18f7bf07134a        couchbase/server    "/entrypoint.sh couch"   5 minutes ago       Up 5 minutes        0.0.0.0:8091-8093->8091-8093/tcp, 11207/tcp, 11211/tcp, 0.0.0.0:11210->11210/tcp, 18091-18092/tcp   couchbasecluster_couchbase3_1
    4db3e1280776        couchbase/server    "/entrypoint.sh couch"   5 minutes ago       Up 5 minutes        8091-8093/tcp, 11207/tcp, 11210-11211/tcp, 18091-18092/tcp                                          couchbasecluster_couchbase1_1

    Docker Compose также может показывать статус:

    > docker-compose ps
                     Name                                   Command                                   State                                    Ports                  
    -----------------------------------------------------------------------------------------------------------------------------------------------------------------
    couchbasecluster_couchbase1_1            /entrypoint.sh couchbase-s ...           Up                                       11207/tcp, 11210/tcp, 11211/tcp,       
                                                                                                                               18091/tcp, 18092/tcp, 8091/tcp,        
                                                                                                                               8092/tcp, 8093/tcp                     
    couchbasecluster_couchbase2_1            /entrypoint.sh couchbase-s ...           Up                                       11207/tcp, 11210/tcp, 11211/tcp,       
                                                                                                                               18091/tcp, 18092/tcp, 8091/tcp,        
                                                                                                                               8092/tcp, 8093/tcp                     
    couchbasecluster_couchbase3_1            /entrypoint.sh couchbase-s ...           Up                                       11207/tcp, 0.0.0.0:11210->11210/tcp,   
                                                                                                                               11211/tcp, 18091/tcp, 18092/tcp,       
                                                                                                                               0.0.0.0:8091->8091/tcp,                
                                                                                                                               0.0.0.0:8092->8092/tcp,                
                                                                                                                               0.0.0.0:8093->8093/tcp
  4. Проверьте журналы узлов:
    > docker-compose logs
    Attaching to couchbasecluster_couchbase2_1, couchbasecluster_couchbase3_1, couchbasecluster_couchbase1_1
    couchbase2_1 | Starting Couchbase Server -- Web UI available at http://<ip>:8091
    couchbase3_1 | Starting Couchbase Server -- Web UI available at http://<ip>:8091
    couchbase1_1 | Starting Couchbase Server -- Web UI available at http://<ip>:8091

Настроить кластер Couchbase

Теперь давайте сконфигурируем эти узлы, чтобы они стали частью кластера.

  1. Найти IP-адрес Docker Machine:
    > docker-machine ip default
    192.168.99.104
  2. Откройте консоль администратора Couchbase по адресу http: // <DOCKER_MACHINE_IP: 8091. Это  http://192.168.99.104:8091 в нашем случае. Вывод будет отображаться как: Нажмите «Настройка».Настройка кластера Docker Couchbase

  3. Каждый контейнер получает внутренний IP-адрес от Docker, и каждый из этих IP-адресов виден всем другим контейнерам, работающим на том же хосте. Нам нужно использовать эти внутренние IP-адреса при добавлении нового узла в кластер. Найти IP-адрес первого контейнера:
    > docker inspect --format '{{ .NetworkSettings.IPAddress }}' couchbasecluster_couchbase3_1
    172.17.0.2

    Используйте этот IP-адрес для изменения поля Hostname:Docker Couchbase Cluster Node 1

  4. Нажмите «Далее». Отрегулируйте оперативную память при необходимости. Узнайте больше о настройках Couchbase Cluster .
  5. Выберите образец корзины, который вы хотите установить, и нажмите «Далее».
  6. Измените квоту ОЗУ для каждого узла с 400 на 100. Это необходимо, поскольку мы добавим другие узлы позже.Квота ОЗУ Docker Couchbase на узел
  7. Нажмите Next, примите T & C и нажмите Next.
  8. Введите пароль, который вы можете запомнить, так как он понадобится нам позже, чтобы добавить больше узлов.

Вид кластера по умолчанию выглядит примерно так:

Docker Couchbase Cluster Вид по умолчанию

Добавить больше узлов Couchbase

Теперь давайте добавим два других узла, которые были созданы ранее Docker Compose.

  1. Нажмите «Узлы сервера», чтобы увидеть вид по умолчанию как: Docker Couchbase Cluster Server Узлы Вид по умолчанию
  2. Найдите IP-адрес одного из оставшихся узлов:
    docker inspect --format '{{ .NetworkSettings.IPAddress }}' couchbasecluster_couchbase1_1
    172.17.0.1
  3. Нажмите «Добавить сервер», укажите IP-адрес: и нажмите «Добавить сервер».Docker Couchbase Cluster Добавить сервер Node1
  4. Повторите предыдущие два шага с именем сервера couchbasecluster_couchbase2_1.

Couchbase Cluster Rebalance

Кластер необходимо перебалансировать, чтобы обеспечить правильное распределение данных между вновь добавленными или удаленными узлами. Узнайте больше о  Couchbase Cluster Rebalance .

При нажатии на вкладку «Ожидание перебалансировки» отображаются узлы, которые были добавлены в кластер, но еще не перебалансированы:

Docker Couchbase Cluster Pending Rebalance

Нажмите «Rebalance», и это автоматически перебалансирует кластер:

Перебалансированный Docker Couchbase Cluster

Вы только что развернули кластер Couchbase с помощью Docker Compose, наслаждайтесь!