Русский
Русский
English
Статистика
Реклама

Riak Cloud Storage. Часть 3. Stanchion, Proxy и балансировка нагрузки, клиент S3

image

В этой статье мы завершим настройку компонентов системы Riak Cloud Storage.

Данная статья это завершение серии вольных переводов официального руководства по системе Riak CS 2.1.1
Часть 1. Настройка Riak KV
Часть 2. Настройка компонента Riak CS


Настройка Stanchion


В вашем кластере вы должны использовать один и только один Stanchion узел. Все узлы Riak CS в этом кластере должны быть настроены для коммуникации с Stanchion узлом, чтобы кластер мог отслеживать и согласовывать причинно-следственные операции.

Все настройки используемые узлом Stanchion содержатся в stanchion.conf файле, который расположен в директории /etc/stanchion на большинстве операционных систем.

Если вы обновляетесь с версии ранее Riak СS 2.0.0 когда stanchion.conf и riak-cs.conf были введены вы всё ещё можете использовать старый конфигурационный файл app.config. Примеры ниже будут равнозначны.
STANCHION.CONF
configuration.name = value

APP.CONFIG
{stanchion, [             %% Configs here            ]}

Настройка IP-адреса и порта для Stanchion


Если у вас есть только один узел Riak CS, Вам не нужно менять настройки Stanchion, потому что Stanchion просто прослушивает запросы с локального хоста. Если Riak CS кластер имеет множество узлов, тогда вы должны задать IP-адрес и порт, на котором Stanchion будет прослушивать запросы с других узлов.

Вы можете задать IP-адрес, используя параметр listener. Замените 127.0.0.1 на IP-адрес узла Stanchion и порт 8080 на порт узла:
STANCHION.CONF
listener = 127.0.0.1:8080

APP.CONFIG
{stanchion, [             {host, {"127.0.0.1", 8085}},             %% Other configs            ]}

Примечание по совпадающим IP-адресам
IP-адрес, который вы здесь введёте, должен совпадать с IP-адресом в параметре stanchion_host в конфигурационном файлах riak.conf для Riak и riak-cs.conf для Riak CS.

Если вы хотите использовать SSL, убедитесь, что параметры ssl.certfile и ssl.keyfile не закомментированны и настроены корректно.
STANCHION.CONF
ssl.certfile = "./etc/cert.pem"ssl.keyfile = "./etc/key.pem"

APP.CONFIG
{stanchion, [             {ssl, [                    {certfile, "./etc/cert.pem"},                    {keyfile, "./etc/key.pem"}                   ]},             %% Other configs            ]}

Настройка учётной записи администратора


Администратор создаётся во время настройки конфигурации компонента Riak CS. Те же полномочия должны быть добавлены на каждый Stanchion, используемый в кластере. Это настраивается в stanchion.conf, который расположен в директории /etc/stanchion. Введите тот же admin.key и admin.secret
STANCHION.CONF
admin.key = OUCXMB6I3HOZ6D0GWO2Dadmin.secret = a58Mqd3qN-SqCoFIta58Mqd3qN7umE2hnunGag==

APP.CONFIG
{stanchion, [           %% Admin user credentials           {admin_key, "OUCXMB6I3HOZ6D0GWO2D"},           {admin_secret, "a58Mqd3qN-SqCoFIta58Mqd3qN7umE2hnunGag=="},           %% Other configs          ]}

Настройка сведений о Riak KV


Если вы запускаете один узел для экспериментов, или если узел Riak KV запущен локально и настроен для прослушивания трафика буффера протокола на 0.0.0.0, то настройка по умолчанию должна подойти.

Иначе, обновите IP-адрес и порт для хоста Riak в конфигурационном файле Stanchion.
STANCHION.CONF
riak_host = 127.0.0.1:8087

APP.CONFIG
{stanchion, [             {riak_host, {"127.0.0.1", 8087}},             %% Other configs            ]}

Балансировка нагрузки и Proxy для Riak CS


image

Если вы планируете использовать Riak CS в промышленном использовании, мы настоятельно рекомендуем вам поставить после Riak CS балансировщик нагрузки или прокси, программный или аппаратный. Также обратите внимание, что вы не должны напрямую предоставлять Riak CS открытым сетевым интерфейсам.

Пользователи Riak CS сообщают об успешном использовании Riak CS совместно с балансировщиком нагрузки или прокси. Совместные решения включают проприоритарные аппаратные балансировщики нагрузки, облачные опции балансировщиков нагрузки такие как Amazons Elastic Load Balancer и программные решение с открытым исходным кодом, такие как HAProxy и Nginx.

Это руководство кратко обозревает совместное использование решения с исходным кодом HAProxy и Nginx и обеспечивает некоторую конфигурацию и оперативные советы собраны от сообщества пользователей и инженеров Riak.

HAProxy


HAProxy это быстрое и надёжное решение для балансировки нагрузки и проксирования HTTP и TCP трафика приложений.

Пользователи сообщают об успешном использовании HAProxy в комбинации с Riak CS в ряде конфигураций и сценариев. Больше информации и примеров конфигурации для этого раздела для опытных пользователей в сообществе Riak CS в дополнении к замечаниям от инженеров Riak.

Пример настройки
Следующий пример это начальная точка настройки HAProxy как балансировщика нагрузки для установки Riak CS.

Примечание на лимиты открытых файлов
Лимиты открытых файлов операционной системы должны быть больше 256000 для приведенного ниже примера конфигурации. Сверяйтесь с документацией на лимиты открытых файлов для детальной настройки значения для различных операционных систем.

CONFIG
global    log 127.0.0.1     local0    log 127.0.0.1     local1 notice    maxconn           256000    spread-checks     5    daemondefaults    log               global    option            dontlognull    option            redispatch    option            allbackups    no option         httpclose    retries           3    maxconn           256000    timeout connect   5000    timeout client    5000    timeout server    5000frontend riak_cs    bind              10.0.24.100:8080    # Example bind for SSL termination    # bind            10.0.24.100:8443 ssl crt /opt/local/haproxy/etc/data.pem    mode              http    option            httplog    capture           request header Host len 64    acl good_ips      src -f /opt/local/haproxy/etc/gip.lst    block if          !good_ips    use_backend       riak_cs_backend if good_ipsbackend riak_cs_backend    mode              http    balance           roundrobin    # Ping Riak CS to determine health    option            httpchk GET /riak-cs/ping    timeout connect 60s    timeout http-request 60s    server riak1 r1s01.example.com:8081 weight 1 maxconn 1024 check    server riak2 r1s02.example.com:8081 weight 1 maxconn 1024 check    server riak3 r1s03.example.com:8081 weight 1 maxconn 1024 check    server riak4 r1s04.example.com:8081 weight 1 maxconn 1024 check    server riak5 r1s05.example.com:8081 weight 1 maxconn 1024 check

Пожалуйста, обратите внимание, что приведенный выше пример считается отправной точкой и является незавершенной работой.

Вы должны быть осторожны применяя эту конфигурацию и изменяя её под ваше окружение.
Конкретная деталь конфигурации, которую стоит отметить из примера, это закомментированная опция для использования SSL. HAProxy напрямую поддерживает SSL c версии 1.5. Убедитесь, что ваш HAProxy экземпляр собран с поддержкой OpenSSL, вы можете активировать SSL путём раскомментированния строки и модификации под своё окружение. Больше информации вы можете найти в документации на HAProxy.

Так же обратите внимание на опцию проверки здоровья Riak CS через конечную точку /riak-cs/ping. Этот параметр необходим для проверки каждого узла Riak CS как части метода round robin балансировки нагрузки.

Nginx


Некоторые пользователи сообщили об успешном использовании Nginx HTTP сервера для проксирования запросов для Riak CS. Пример, предоставляющий доступ к Riak CS, приведен здесь для справки.

Пример конфигурации
Ниже приведён пример начальной конфигурации для Nginx, чтобы действовать в качестве front-end прокси для Riak CS.
CONFIG
upstream riak_cs_host {  server  10.0.1.10:8080;}server {  listen   80;  server_name  _;  access_log  /var/log/nginx/riak_cs.access.log;  location / {    proxy_set_header Host $http_host;    proxy_set_header X-Real-IP $remote_addr;    proxy_redirect off;    proxy_connect_timeout      90;    proxy_send_timeout         90;    proxy_read_timeout         90;    proxy_buffer_size          64k;  # If set to a smaller value,                                     # nginx can complain with a                                     # "headers too large" error    proxy_buffers 8  64k;   # Increase from default of (8, 8k).                            # If left to default with increased                            # proxy_buffer_size, nginx complains                            # that proxy_busy_buffers_size is too                            # large.    proxy_pass http://riak_cs_host;  }}

Обратите внимание, что директива proxy_set_header Host $http_host необходима для обеспечения того, чтобы заголовок HTTP Host: передавался Riak CS как полученный, а не переводился в имя хоста или адрес бэкенд-сервера Riak CS.

Также важно отметить, что proxy_pass не должен заканчиваться косой чертой, так как это может привести к различным проблемам.

Настройка S3 клиента


image

Это руководство демонстрирует вам как использовать s3cmd как S3 клиент. Хотя оно не будет охватывать все функции клиента, оно покажет вам, как создать конфигурацию и выполнить некоторые основные команды.

Внимание: s3cmd Signature Version
Если вы используете s3cmd версии 1.5.0 или выше вам нужно добавить флаг --signature-v2 для каждой команды нацеленной на Riak CS кластера, чтобы s3cmd использовал версию AWS 2, а не версию по умолчанию AWS 3.


Первоначальная настройка


Для использования s3cmd в сочетании с Riak CS, вы должны настроить утилиту для взаимодействия с вашей Riak CS системой. Один из путей это создать файл .s3cfg и сохранить его в вашей домашней директории. Когда вы запускаете любую команду, связанную c s3cmd, содержимое файла будет считано по умолчанию. Другой вариант, вы можете указать конфигурационный файл используя флаг -c. Пример:
SHELL
s3cmd -c /PATH/TO/CONFIG/FILE <command>

Альтернативный путь настройки s3cmd это запустить s3cmd --configure, который запустит интерактивный инструмент и соберёт конфигурационный файл на основе того, что вы введёте.

В следующем разделе вы найдёте небольшой пример .s3cfg файлов, которые могут быть использованы для настройки взаимодействия с Riak CS.

Пример конфигурационного файла s3cmd для локального использования


Используйте этот пример .s3cfg конфигурационного файла для взаимодействия с Riak CS локально через порт 8080 с s3cmd (не забудьте при необходимости указать данные, относящиеcя к вашей установке Riak CS).
CONFIG
[default]access_key = 8QON4KC7BMAYYBCEX5J+bucket_location = UScloudfront_host = cloudfront.amazonaws.comcloudfront_resource = /2010-07-15/distributiondefault_mime_type = binary/octet-streamdelete_removed = Falsedry_run = Falseenable_multipart = Falseencoding = UTF-8encrypt = Falsefollow_symlinks = Falseforce = Falseget_continue = Falsegpg_command = /usr/local/bin/gpggpg_decrypt = %(gpg_command)s -d --verbose --no-use-agent --batch --yes --passphrase-fd %(passphrase_fd)s -o %(output_file)s %(input_file)sgpg_encrypt = %(gpg_command)s -c --verbose --no-use-agent --batch --yes --passphrase-fd %(passphrase_fd)s -o %(output_file)s %(input_file)sgpg_passphrase = passwordguess_mime_type = Truehost_base = s3.amazonaws.comhost_bucket = %(bucket)s.s3.amazonaws.comhuman_readable_sizes = Falselist_md5 = Falselog_target_prefix =preserve_attrs = Trueprogress_meter = Trueproxy_host = localhostproxy_port = 8080recursive = Falserecv_chunk = 4096reduced_redundancy = Falsesecret_key = rGyDLBi7clBuvrdrkFA6mAJkwJ3ApUVr4Pr9Aw==send_chunk = 4096simpledb_host = sdb.amazonaws.comskip_existing = Falsesocket_timeout = 300urlencoding_mode = normaluse_https = Falseverbosity = WARNINGsignature_v2 = True

Пример конфигурационного файла s3cmd для использования в продакшине


Используйте этот пример .s3cfg конфигурационного файла для взаимодействия с Riak CS через s3cmd в продакшин системе.
CONFIG
[default]access_key = EJ8IUJX9X0F2P9HAMIB0bucket_location = UScloudfront_host = cloudfront.amazonaws.comcloudfront_resource = /2010-07-15/distributiondefault_mime_type = binary/octet-streamdelete_removed = Falsedry_run = Falseenable_multipart = Falseencoding = UTF-8encrypt = Falsefollow_symlinks = Falseforce = Falseget_continue = Falsegpg_command = /usr/local/bin/gpggpg_decrypt = %(gpg_command)s -d --verbose --no-use-agent --batch --yes --passphrase-fd %(passphrase_fd)s -o %(output_file)s %(input_file)sgpg_encrypt = %(gpg_command)s -c --verbose --no-use-agent --batch --yes --passphrase-fd %(passphrase_fd)s -o %(output_file)s %(input_file)sgpg_passphrase = passwordguess_mime_type = Truehost_base = <YOUR DOMAIN HERE>host_bucket = %(bucket)s.<YOUR DOMAIN HERE>human_readable_sizes = Falselist_md5 = Falselog_target_prefix =preserve_attrs = Trueprogress_meter = Trueproxy_host =proxy_port = 0recursive = Falserecv_chunk = 4096reduced_redundancy = Falsesecret_key = XOY/9IFKVEDUl6Allrkj7oyH9XW+CANnFLEVuw==send_chunk = 4096simpledb_host = sdb.amazonaws.comskip_existing = Falsesocket_timeout = 300urlencoding_mode = normaluse_https = Trueverbosity = WARNINGsignature_v2 = True

Для того, чтобы настроить s3cmd клиент для пользователя, вы должны изменить access_key и secret_key.

Настройка расположения хранилища


По умолчанию .3cfg файл использует Amazon S3 сервис, как бэкэнд хранилища. Для Riak CS системы, измените следующие настройки к точке к вашей системе хранилища.
  • host_base укажите имя домена или путь к вашему хранилищу данных, например data.example.com
  • host_bucket укажите расположение бакета, например my_cs_bucket.data.example.com

Использование SSL в клиенте


Если вы используете SSL, тогда задайте в параметре use_https значение True.

Ссылки


Riak Cloud Storage. Часть 1. Настройка Riak KV
Riak Cloud Storage. Часть 2. Настройка компонента Riak CS
Riak Cloud Storage. Часть 3. Stanchion, Proxy и балансировка нагрузки, клиент S3

Оригинал руководства.
Источник: habr.com
К списку статей
Опубликовано: 17.08.2020 00:12:34
0

Сейчас читают

Комментариев (0)
Имя
Электронная почта

Nosql

Администрирование баз данных

Riak

Riak cs

Базы данных

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru