Как да

Инсталирайте клъстер от три възела CockroachDB на CentOS 8

Инсталирайте клъстер от три възела CockroachDB на CentOS 8

Мащаб, мащаб, мащаб! Мащабирането на всичко е термин, който ще чуете няколко пъти, докато се разхождате из корпоративни коридори. Независимо дали сте в отдела за бизнес развитие или в техническия отдел, мащабирането на бизнеса или мащабирането на сървърите на контейнери е нещо, за което знаем, че сте добре запознат.

За тези, които са натоварени с управлението на бази данни, CockroachDB е тук, за да сортира нуждите ви от мащабиране на базата данни. CockroachDB е главен скалер с минимални усилия и мощни резултати. В това ръководство ще инсталираме и конфигурираме CockroachDB на три възела и ще демонстрираме как данните в един възел могат да бъдат реплицирани и достъпни в трите възела. Това е CockroachDB?

CockroachDB е собствената облачна, разпределена SQL база данни, която осигурява последователност от следващо ниво, ултра-устойчивост, локалност на данните и масивен мащаб на съвременните облачни приложения. Компании като Comcast, Lush и Bose изграждат своите архитектури за облачни данни на CockroachDB. Cockroach Labs е основана от екип от инженери, посветени на изграждането на авангардна системна инфраструктура, и има инвестиции от Benchmark, G / V, Index Ventures и Redpoint.

CockroachDB разпространява един двоичен файл, който съдържа както основни, така и корпоративни функции. Можете да използвате основните функции без лицензен ключ. За да използвате корпоративните функции обаче, ви е необходима или пробна версия, или корпоративен лицензен ключ.

В това ръководство ще разгърнем база данни CockroachDB с три възела на сървърите на CentOS 8 заедно с незадължителен сървър за балансиране на натоварването HAProxy, след което ще разгледаме, за да видим от какво е направена. Преди да започнем, нека изчистим всички зависимости и системни изисквания.

Системни изисквания

Инсталирайте CockroachDB Cluster на сървъри CentOS 8

Трябва да се отбележи, че всеки възел във вашия клъстер трябва да има копие на двоичния файл на хлебарки. За да инсталирате CockroachDB на всеки възел, следвайте следните стъпки.

Стъпка 1: Актуализирайте и инсталирайте основни пакети

Актуализирайте сървърите си, за да получите най-новите корекции и софтуер и да инсталирате основни приложения като vim, wget и други.

sudo dnf -y актуализация sudo dnf -y инсталиране на vim wget

След това добавете следното към всеки от възлите "/ etc / hostsФайл, в случай че нямате вътрешен DNS за разрешаване на имена на домейни.

172. $ sudo vim / etc / hosts.28.182.170 серия.28.182.246 серия.28.187.217 серия.28.190.34 балансиращ товар

Преди да преминете към следващата стъпка, създайте следните директории и създайте потребителски таракани на всеки възел на сървъра на базата данни, който ще отговаря за управлението на услугата хлебарки.

mkdir ~ / certs sudo mkdir / var / lib / хлебарка sudo useradd хлебарка

Стъпка 2: Изтеглете и инсталирайте CockroachDB Binary

Нека вземем изходния код на CockroachDB и го инсталираме на нашите 3 сървъра. Изтеглете архива CockroachDB за Linux и извлечете двоичния файл:

wget -qO- https: // двоични файлове.хлебарка.com / хлебарка-v20.1.7.linux-amd64.tgz | катран xvz

След като бъде извлечен успешно, копирайте двоичния файл във вашия PATH, така че е лесно да изпълнявате команди за хлебарки от всяка черупка:

$ sudo cp -i хлебарка-v20.1.7.linux-amd64 / cockroach / usr / local / bin / $ версия за хлебарки Изграждане на етикет: v20.1.7 Време за изграждане: 2020/10/12 16:04:22 Разпространение: CCL Платформа: linux amd64 (x86_64-unknown-linux-gnu) Go Версия: go1.13.Съставител на 9 C: gcc 6.3.0 Компилация SHA-1: 406792b58d32dc053008cc129b409252798f509c Тип на компилация: версия

Повторете същото за останалите два останали възла.

Стъпка 3: Генериране на сертификати за защитени връзки

На възел по ваш избор или дори на различен сървър изобщо ще генерираме сертификати, които ще бъдат използвани от нашия клъстер. Създайте две директории “сертификати" и "my-safe-directory„. Сертификатите ще запазят вашия CA сертификат и всички сертификати и ключове за възли и клиенти. my-safe-directory ще запази вашия CA ключ и след това ще се позове на ключа при генериране на възлови и клиентски сертификати. Това ще се пази в тайна и сигурност; препоръчително е да не го качвате във вашите възли. Създайте двете директории, както следва:

mkdir сертификати, my-safe-directory

След това създайте CA сертификат и ключ:

сертификат за хлебарки create-ca \ --certs-dir = certs \ --ca-key = my-safe-directory / ca.ключ

Създайте сертификат и ключ за първия възел, издаден на всички често срещани имена, които бихте могли да използвате за препратка към възела, както и към екземплярите на балансиращия товар. Въведете имена на хостове и IP адреси на възел 1 (хлебарка-db01 в моя случай) и на товара за балансиране:

създаване на възел за хлебарки \ 172.28.182.170 \ хлебарка-db01 \ localhost \ 127.0.0.1 \ 172.28.190.34 \ loadbalancer \ --certs-dir = certs \ --ca-key = my-safe-directory / ca.ключ

След като сертификатите са готови, качете CA сертификата, сертификата за възел и ключа към първия възел:

scp сертификати / ca.crt certs / node.crt certs / node.ключ @ таракан-db01: ~ / потвърждава ca.crt 100% 1111 873.8KB / s 00:00 възел.crt 100% 1208 1.4MB / s 00:00 възел.ключ 100% 1679 1.9MB / s 00:00 

Нашите ключове се копират в първия възел и вече имаме още три сървъра. Ще издадем същите команди на този сървър, които сте заделили за създаване на сертификати. Аз лично използвах хлебарка-db03 да изпълнява тези команди, но внимавайте да копирате собствените си сертификати на правилното място. Преди да повторите командите, изтрийте локалното копие на сертификата на възела и ключа, които сега принадлежат хлебарка-db01.

rm сертификати / възел.crt certs / node.ключ

След това, точно както по-горе, създайте сертификата и ключа за втория възел (хлебарка-db02), издадени на всички имена на хостове, които бихте могли да използвате за препратка към възела, както и към екземплярите на балансиращото натоварване, след което копирайте файловете със сертификати в хлебарка-db02 възел.

създаване на възел за хлебарки \ 172.28.182.246 \ хлебарка-db02 \ localhost \ 127.0.0.1 \ 172.28.190.34 \ loadbalancer \ --certs-dir = certs \ --ca-key = my-safe-directory / ca.ключ

Копирайте CA сертификата и сертификата на възел и ключа на втория възел (хлебарка-db02) и изтрийте локалното копие на сертификата на възела и ключа, които сега принадлежат хлебарка-db02.

scp сертификати / ca.crt certs / node.crt certs / node.ключ @ cockroach-db02: ~ / certs rm certs / node.crt certs / node.ключ

След това създайте сертификата и ключа за третия възел (хлебарка-db03).

създаване на възел за хлебарки \ 172.28.187.217 \ хлебарка-db03 \ localhost \ 127.0.0.1 \ 172.28.190.34 \ loadbalancer \ --certs-dir = certs \ --ca-key = my-safe-directory / ca.ключ

Тъй като използвам хлебарка-db03 като генератор на сертификати, аз ще оставя генерираните сертификати, тъй като те са създадени в директорията на сертификати.

След като всички сертификати са генерирани и копирани в съответните им възли, влезте във всеки от сървърите на CockroachDB, който използвате, и преместете „сертификати“В директорията„/ var / lib / хлебарка”Директория, в която създадохме Етап 1. Оттук хлебарка ще чете сертификати.

Преместете директорията за сертификати в директорията на хлебарки, както следва на всеки възел CockroachDB, т.е хлебарка-db01, хлебарка-db02, и хлебарка-db03.

sudo cp -rv certs / var / lib / хлебарка /

След като приключите с копиранетосертификати“Директория към“/ var / lib / хлебарка”Променете собствеността на директорията на Cockroach на потребителски таракат:

sudo chown -R хлебарка.хлебарка / var / lib / хлебарка /

Стъпка 4: Конфигурирайте услугата CockroachDB Systemd

Един от най-невероятните начини за управление на вашите услуги във вашия Активиран от Systemd сървърът се възползва от чистия си начин за стартиране, спиране и преглед на техните състояния. Поради тази причина ще добавим CockroachDB към Systemd, както следва:

sudo vim / etc / systemd / system / cockroachdb.услуга [Единица] Описание = Възел за клъстер на база данни за хлебарки Изисква = мрежа.target [Услуга] Тип = уведомяване WorkingDirectory = / var / lib / таракан ExecStart = / usr / local / bin / таракан старт --certs-dir = certs --advertise-addr = таракан-db03 --join = таракан-db01, хлебарка-db02, хлебарка-db03 --cache =.25 --max-sql-memory =.25 TimeoutStopSec = 60 Restart = винаги RestartSec = 10 StandardOutput = syslog StandardError = syslog SyslogIdentifier = хлебарка Потребител = хлебарка [Инсталиране] WantedBy = по подразбиране.мишена

Повторете създаването на systemd файла на всеки възел, като се уверите, че сте променили „-advertise-addr”, За да съответства на името на всеки възел или IP съответно, след което стартирайте услугата cockroachdb.

sudo systemctl старт хлебарка db

След това проверете състоянието му на всеки възел.

sudo systemctl статус cockroachdb ● cockroachdb.услуга - възел на клъстер на база данни за хлебарки Заредено: заредено (/ etc / systemd / system / cockroachdb.обслужване; хора с увреждания; предварително зададен от доставчика: деактивиран) Активен: активен (работи) от четвъртък 2020-10-15 22:06:51 UTC; Преди 31 години Основен PID: 1699 (хлебарка) Задачи: 17 (ограничение: 11068) Памет: 57.9M CGroup: / система.филийка / хлебарка.услуга └─1699 / usr / local / bin / start and хлебарка --certs-dir = certs --advertise-addr = cockroach-db03 

Преди да преминете към следващата стъпка, ще бъде разумно да разрешите препоръчаните портове на защитната стена на всеки възел. Можете да направите това, като използвате командите по-долу.

sudo firewall-cmd --permanent --add-port = 8080,26257 / tcp sudo firewall-cmd --reload

Стъпка 5: Инициализирайте CockroachDB клъстера на CentOS 8

На един от възлите изпълнете командата init за хлебарки, за да завършите процеса на стартиране на възела и ги накарайте да се обединят като клъстер:

хлебарка init --certs-dir = certs --host =
## Например пример за хлебарки incer --certs-dir = certs --host = cockroach-db03 Клъстерът е успешно инициализиран

Стъпка 6: Генерирайте конфигурационен файл HAProxy

Накрая ще генерираме конфигурационния файл на балансиращия товар. Ще използваме HAProxy като балансиращ товар и CockroachDB има вградено съоръжение, което автоматично генерира конфигурационен файл на haproxy със сертификати. Изпълнете командата по-долу на същия компютър, който използвахме за генериране на сертификати за първо създаване на клиентски сертификат и ключ (клиент.корен.crt, клиент.корен.ключ) за основния потребител във вашата база данни CockroachDB.

тараканов сертификат create-client root --certs-dir = certs --ca-key = my-safe-directory / ca.ключ 

Ако искате да се свържете с базата данни по подразбиране на всеки възел, тогава трябва да копирате двата клиентски файла (клиент.корен.crt и клиент.корен.ключ) към директорията certs в техните домашни директории, които създадохме в стъпка 1. Без тези файлове няма да можете да влезете без паролата на CockroachDB root root.

Стартирайте командата хапрокси за хлебарки с -домакин флаг, зададен на адреса на който и да е възел и знамена за сигурност, сочещи към CA сертификата и клиентския сертификат и ключ:

хлебарка ген хапрокси --certs-dir = сертификати --host = хлебарка-db03

Командата по-горе ще създаде „хапрокси.cfg”Файл с всички подробности за минималната конфигурация, от които се нуждаем, тъй като е споделен по-долу. Можете да видите, че всички наши възли са добре показани във файла.

глобален режим maxconn 4096 по подразбиране tcp # Стойностите на времето за изчакване трябва да бъдат конфигурирани за вашата конкретна употреба. # Вижте: https: // cbonte.github.io / haproxy-dconv / 1.8 / конфигурация.html # 4-таймаут% 20connect таймаут свързване 10s таймаут клиент 1m таймаут сървър 1m # TCP поддържащ активност от страна на клиента. Сървърът вече ги позволява. опция clitcpka слушам psql обвързване: 26257 режим tcp баланс roundrobin опция httpchk ВЗЕМЕТЕ / здраве?готов = 1 сървър хлебарка1 хлебарка-db03: 26257 проверете порт 8080 сървър хлебарка2 хлебарка-db02: 26257 проверете порт 8080 сървър хлебарка3 хлебарка-db01: 26257 проверете порт 8080

След като прегледате и сте доволни от файла, качете файла хапрокси.cfg файл към сървъра за балансиране на натоварването, който да се използва за стартиране на балансиращ товара HAProxy.

scp хапрокси.cfg @loadbalancer: ~

Стъпка 7: Инсталирайте HAProxy на CentOS 8 (по избор)

Влезте във вашия сървър за балансиране на товара (CentOS 8) и продължете със стъпките за инсталиране, както следва.

Активирайте разрешителния режим в SELinux

Направете SELinux разрешително временно (засега) и постоянно, когато се рестартира, като изпълните командите по-долу:

sudo setenforce 0 sudo sed -i 's / налагане / permissive / g' / etc / selinux / config

Инсталирайте HAProxy на CentOS 8

Инсталирайте хапрокси пакет, както следва:

sudo dnf -y инсталирайте хапрокси

След инсталирането на HAProxy, конфигурационният файл по подразбиране ще бъде намерен на „/ и т.н. / хапрокси / хапрокси.cfg„. Просто архивирайте този файл и копирайте този, който качихме на сървъра.

cd / etc / haproxy / sudo mv haproxy.cfg хапрокси.cfg.резервно копие на sudo cp ~ / хапрокси.cfg / etc / haproxy /

След като приключите с конфигурирането на HAProxy, стартирайте и активирайте услугата haproxy.

sudo systemctl enable --now haproxy

Уверете се, че услугата haproxy работи

$ systemctl статус haproxy ● хапрокси.услуга - HAProxy Load Balancer Заредено: заредено (/ usr / lib / systemd / system / haproxy.обслужване; активиран; предварително зададен от доставчика: деактивиран) Активен: активен (работи) от четвъртък 2020-10-15 22:30:40 UTC; Преди 9 минути Процес: 2838 ExecStartPre = / usr / sbin / haproxy -f $ CONFIG -c -q (код = излязъл, статус = 0 / УСПЕХ) Основен PID: 2840 (хапрокси) Задачи: 2 (ограничение: 11070)

Клиентите вече могат да имат достъп до екземпляри на база данни чрез прослушване на балансиращия товар на порт 26257.

На този етап нека разгледаме подробностите за единичния възел, като влезем в таблото за управление на неговия администраторски интерфейс. Насочете браузъра си към https: // [име на домейн / IP]: 8080 на който и да е възел. Трябва да видите табло за управление, както е споделено по-долу:

Ще забележите, че от вас се иска потребителско име и парола. За да генерирате идентификационни данни, влезте в възела, който използвахме за генериране на сертификати, и издайте командата по-долу, която трябва да ви въведе в defaultdb. Влизаме директно в системата, защото разполагаме с клиентския ключ и сертификата на root потребител, в който сме генерирали Стъпка 6.

cockroach sql --certs-dir certs # # Добре дошли в CollroachDB SQL черупката. # Всички изявления трябва да бъдат прекратени с точка и запетая. # За да излезете, напишете: \ q. # # Версия на сървъра: CockroachDB CCL v20.1.7 (x86_64-unknown-linux-gnu, построен 2020/10/12 16:04:22, go1.13.9) (същата версия като клиента) # ID на клъстера: 2b9244a4-e3b6-48d7-ba44-f0a21e0f778c Няма въвеждане за терминал тип "xterm-256color"; с помощта на настройки за ням терминал. # # Въведете \? за кратко въведение. # [имейл защитен]: 26257 / defaultdb>

На подканата продължете да издавате следната заявка. Можете да използвате вашия потребителско име и парола тук.

[имейл защитен]: 26257 / defaultdb> СЪЗДАЙТЕ ПОТРЕБИТЕЛ geeksadmin С ПАРОЛА 'SafePassword'; СЪЗДАВАНЕ НА РОЛЯ [защитен по имейл]: 26257 / defaultdb> GRANT admin TO geeksadmin;

Забележка: Администраторската роля е създадена по подразбиране и не може да бъде отхвърлена. Потребителите, принадлежащи към администраторската роля, имат всички привилегии за всички обекти на базата данни в клъстера.

След като приключите, върнете се към администраторския потребителски интерфейс, опреснете и въведете идентификационните данни, които току-що сте създали.

Трябва да бъдете въведени.

Стъпка 8: Използване на CockroachDB

След като клъстерът е добре настроен, можем да тестваме дали създаването на данни на един възел разпределя е и към други възли. В този случай всички възли трябва да имат достъп до един и същ набор от данни, след като са създадени. За да можем да спестим време, можем да се възползваме от примерните данни на CockroachDB, за да осмислим това. Влезте хлебарка-db03, възела, който използвахме за генериране на сертификати, заедно с клиентски сертификат и ключ за основния потребител и генериране на примерни данни, както следва:

пример за данни за хлебарки startrek | хлебарка sql --certs-dir certs

Командата по-горе създава примерна база данни, наречена стар Трек и вече можем да стартираме SQL клиента и да видим кои бази данни са във вашия клъстер. Уверете се, че останалите възли имат директорията за сертификати, в която сме създали Етап 1 със съответните им сертификати заедно с двата клиентски файла (клиент.корен.crt и клиент.корен.ключ) създадохме в Стъпка 6. Влезте хлебарка-db02, и потвърдете съдържанието на папката certs:

ls сертификати ca.crt клиент.корен.crt клиент.корен.ключов възел.crt възел.ключ

Изглежда добре! Продължете да влизате в defaultdb и проверете дали примерната база данни е достъпна и от там

## На хлебарка-db02 $ таракан sql --certs-dir сертификати [имейл защитен]: 26257 / defaultdb> ПОКАЗВАНЕ НА БАЗИТЕ ДАННИ; database_name ----------------- defaultdb postgres startrek система (4 реда) Време: 5.638902ms

Само за да се гарантира, че същата база данни може да бъде достъпна от третата хлебарка-db01 възел, нека влезем в него и изброим базите данни, както по-горе. Уверете се, че сте копирали (клиент.корен.crt и клиент.корен.ключ) в директорията си за сертификати.

## На таракан-db01 $ таракан sql --certs-dir certs> ПОКАЖИ БАЗАТА ДАННИ; database_name ----------------- defaultdb postgres startrek система (4 реда) Време: 5.638902ms

Би трябвало да можете да видите базата данни startrek, изброена по-горе, която съдържа нашите примерни данни. Екранна снимка на същото се споделя по-долу.

Ако искате да увеличите броя на възлите си, просто трябва да направите същите стъпки, както беше направено на възли два и три в този пример. Тоест инсталирайте CockroachDB Binaries, след което ги присъединете към първия възел, използвайки файла Systemd. По този начин вашият клъстер се мащабира хоризонтално. Научете още повече за тази уникална база данни, като разгледате официалния уебсайт на CockroachDB.

За заключение

Вече е очевидно, че можем да имаме данни, разпределени в броя на възлите, които бихте искали да имате. Клъстерът на нашия три възел CockroachDB е разпределен и оцелява в момента. Можете да свържете създаване на бази данни и да свържете приложението си към него. Ако сте били в среда на Postgres, няма какво да се притеснявате, тъй като CockroachDB работи с драйвери за PostgreSQL.

И накрая, надяваме се, че ръководството е било полезно и сте извлекли нещо от него. В противен случай благодаря, че останахте до края и оценяваме вашата непрекъсната подкрепа. Намерете други ръководства по-долу, които могат да предизвикат интереса ви.

Инсталирайте клъстер за база данни TiDB с един възел на CentOS 8

Инсталирайте базата данни RavenDB NoSQL на Ubuntu 20.04

Инсталирайте PostgreSQL Database Server на Ubuntu 20.04 (Фокусна ямка)

Управлявайте MySQL / MariaDB и PostgreSQL сървър за бази данни с Adminer

Инсталирайте платформата за управление на проекти на Taiga на Ubuntu 20.04
В днешната статия ще разгледаме всички стъпки, необходими за настройка на работеща платформа за управление на проекти на Taiga в Ubuntu 20.04. Taiga е...
Записвайте терминални сесии на Linux и генерирайте gif изображения
Е, вие получихте този изискан команден изход от вашия терминал и искате да направите анимирано изображение от него?. Terminalizer е инструмент за кома...
Защитете платформата за управление на проекти в Taiga с Let's Encrypt SSL
В предишните ни статии разгледахме инсталирането на Taiga Project Management Tool на CentOS 8 и Ubuntu 20.04 Linux сървъри. В този пост в блога ще ви ...