Статьи

Couchbase Cluster с помощью Docker Compose

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

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

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

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

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

докер-couchbase-кластер

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

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

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

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
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 показанный ранее:
    01
    02
    03
    04
    05
    06
    07
    08
    09
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    > 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. Проверьте состояние узлов:
    1
    2
    3
    4
    5
    > 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 также может показывать статус:

    01
    02
    03
    04
    05
    06
    07
    08
    09
    10
    11
    12
    13
    14
    > 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. Проверьте журналы узлов:
    1
    2
    3
    4
    5
    > 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:
    1
    2
    >> docker-machine ip default
    192.168.99.104
  2. Получите доступ к консоли администратора Couchbase по адресу http: // <DOCKER_MACHINE_IP: 8091. Это http://192.168.99.104:8091 в нашем случае. Это покажет вывод как:

    докер-couchbase-кластер установки-1024x717
    Нажмите «Настройка».

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

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

    докер-couchbase-кластер node1-e1445384614211-1024x952

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

    докер-couchbase-кластер-узел набегающего квот 1024x594

  7. Нажмите Next, примите T & C и нажмите Next.
  8. Введите пароль, который вы можете запомнить, так как он понадобится нам позже, чтобы добавить больше узлов.

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

докер-couchbase-кластер по умолчанию ракурс-1024x409

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

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

  1. Нажмите «Узлы сервера», чтобы увидеть вид по умолчанию как:

    докер-couchbase-кластер серверов-узлов по умолчанию ракурса-1024x316

  2. Найдите IP-адрес одного из оставшихся узлов:
    1
    2
    docker inspect --format '{{ .NetworkSettings.IPAddress }}' couchbasecluster_couchbase1_1
    172.17.0.1
  3. Нажмите «Добавить сервер», укажите IP-адрес:

    докер-couchbase-кластер-надстройка сервера node1-1024x910
    и нажмите «Добавить сервер».

  4. Повторите предыдущие два шага с именем сервера couchbasecluster_couchbase2_1 .

Couchbase Cluster Rebalance

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

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

докер-couchbase-кластер в ожидании-ребаланс-1024x367

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

докер-couchbase-кластер балансировку-1024x409

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

Еще несколько ссылок:

Ссылка: Couchbase Cluster с помощью Docker Compose от нашего партнера по JCG Аруна Гупта из Miles to go 2.0… блог.