Cách cài đặt CockroachDB Cluster trên Debian 12

theanh

Administrator
Nhân viên
CockroachDB là một cơ sở dữ liệu SQL phân tán và có thể mở rộng mã nguồn mở dành cho các ứng dụng đám mây. CockroachDB cung cấp tính nhất quán ở cấp độ tiếp theo, một cơ sở dữ liệu SQL được sao chép và một kho dữ liệu giao dịch.

CockroachDB lưu trữ dữ liệu của bạn ở nhiều vị trí giúp việc phân phối dữ liệu nhanh hơn. Ngoài ra, CockroachDB dễ dàng mở rộng và cung cấp khả năng sẵn sàng cao và khả năng chịu lỗi cho các ứng dụng của bạn.

Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt CockroachDB trên máy chủ Debian 12. Sau đó, chúng tôi sẽ chỉ cho bạn cách khởi tạo cụm CockroachDB với nhiều máy chủ Debian.

Điều kiện tiên quyết​

Trước khi tiếp tục, hãy đảm bảo bạn có những điều sau:
  • Hai hoặc nhiều máy chủ Debian 12 kết nối với nhau qua mạng cục bộ.
  • Một người dùng không phải root có quyền quản trị viên.
  • Một FQDN được cấu hình trên mỗi máy chủ.

Cài đặt CockroachDB​

CockroachDB là một hệ thống cơ sở dữ liệu SQL phân tán và có thể mở rộng. Trước khi triển khai cụm CockroachDB, bạn phải cài đặt ứng dụng CockroachDB trên mỗi máy chủ của mình.

Bây giờ bạn sẽ cài đặt CockroachDB trên mỗi máy chủ Debian của mình.

Trước tiên, hãy tạo một người dùng hệ thống mới là cockroach với thư mục home mặc định /opt/cockroachdb.
Mã:
sudo adduser --home /opt/cockroachdb --system --group cockroach
sudo chown -R cockroach:cockroach /opt/cockroachdb
Tải xuống phiên bản mới nhất của CockroachDB bằng lệnh curl bên dưới. Hãy nhớ truy cập trang tải xuống CockroachDB để lấy liên kết đến phiên bản mới nhất của CockroachDB.
Mã:
curl https://binaries.cockroachdb.com/cockroach-v23.1.14.linux-amd64.tgz --output cockroach-v23.1.14.linux-amd64.tgz
Sau khi tải xuống, hãy giải nén tệp cockroach-v23.1.14.linux-amd64.tgz và sao chép tệp nhị phân CockroachDB vào /usr/bin/ thư mục.
Mã:
tar -xzf cockroach-v23.1.14.linux-amd64.tgz
cp -i cockroach-v23.1.14.linux-amd64/cockroach /usr/bin/
Cuối cùng, hãy xác minh phiên bản CockroachDB bằng lệnh bên dưới.
Mã:
cockroach --version
Bạn có thể thấy bên dưới rằng CockroachDB v23.1.14 đã được cài đặt, đây là phiên bản mới nhất tại thời điểm hiện tại.


1-check-version.png


Thiết lập UFW​

Sau khi cài đặt CockroachDB, bạn phải cài đặt UFW để bảo mật máy chủ của mình. Sau đó, mở các cổng TCP 8080 và 26257 sẽ được cụm CockroachDB sử dụng.

Cài đặt gói UFW vào máy chủ Debian của bạn bằng lệnh bên dưới.
Mã:
sudo apt install ufw -y

2-install-ufw.png



Bây giờ, hãy thêm cấu hình OpenSSH và bật UFW bằng cách thực hiện lệnh bên dưới. Nhập y để bắt đầu và bật UFW.
Mã:
sudo ufw allow OpenSSH
sudo ufw enable
Sau khi UFW được bật, bạn sẽ thấy đầu ra 'Tường lửa đang hoạt động và được bật khi khởi động hệ thống'.


3-enable-ufw.png



Tiếp theo, thêm cổng TCP 8080 và 26257 vào UFW bằng lệnh sau. Các cổng TCP đó sẽ được cụm CockroachDB sử dụng.
Mã:
sudo ufw allow 8080/tcp
sudo ufw allow 26257/tcp
Cuối cùng, hãy xác minh trạng thái UFW và danh sách các quy tắc đã bật bằng lệnh bên dưới. Bạn sẽ thấy UFW có trạng thái Hoạt động và OpenSSH, cổng 8080/tcp và 26257/tcp được bật.
Mã:
sudo ufw status

4-setup-ufw.png


Tạo chứng chỉ​

Trước khi tạo chứng chỉ cho cụm CockroachDB, hãy thực hiện lệnh bên dưới để tạo các thư mục mới certs và private trong /opt/cockroachdb để lưu trữ chứng chỉ.
Mã:
mkdir -p /opt/cockroachdb/{certs,private}
Bây giờ hãy tiếp tục tạo các chứng chỉ này: Chứng chỉ CA, chứng chỉ Node và chứng chỉ Client.

Tạo CA​

Chứng chỉ CA rất quan trọng để ký cả chứng chỉ client và node. Trong phần này, bạn sẽ tạo chứng chỉ CA trên máy chủ comp1 và chứng chỉ CA cùng khóa cho máy chủ comp2 qua scp. Vì vậy, hãy đảm bảo rằng bạn có quyền truy cập SSH vào máy chủ comp2.

Thực hiện lệnh sau để tạo chứng chỉ CA trên máy chủ comp1.
Mã:
cockroach cert create-ca \
--certs-dir=/opt/cockroachdb/certs \
--ca-key=/opt/cockroachdb/private/ca.key

5-generate-ca.png



Sau khi CA được tạo, hãy sao chép cả ca.key và ca.crt vào máy chủ comp2.
Mã:
scp /opt/cockroachdb/private/ca.key [emailprotected]:/opt/cockroachdb/private/
scp /opt/cockroachdb/certs/ca.crt [emailprotected]:/opt/cockroachdb/certs/

8-copy-certs.png


Tạo máy khách​

Sau khi tạo CA, bước tiếp theo chứng chỉ bạn cần là chứng chỉ máy khách. Chứng chỉ này sẽ được sử dụng để kết nối với cụm CockroachDB theo cách an toàn thông qua TLS.

Tuy nhiên, trên máy chủ comp1, hãy thực hiện lệnh sau để tạo chứng chỉ máy khách cho người dùng root mặc định.
Mã:
cockroach cert create-client \
root \
--certs-dir=/opt/cockroachdb/certs \
--ca-key=/opt/cockroachdb/private/ca.key
Sau khi quá trình hoàn tất, chứng chỉ máy khách của bạn sẽ khả dụng tại /opt/cockroachdb/certs/client.root.crt/opt/cockroachdb/certs/client.root.key.


6-generate-client-certificate.png


Tạo Node​

Cuối cùng, bạn cần tạo chứng chỉ Node, điều này cũng phụ thuộc vào số lượng máy chủ trong cụm. Trong ví dụ này, tôi sẽ tạo chứng chỉ Niode cho máy chủ comp1 và comp2.

Thực hiện lệnh bên dưới trên máy chủ comp1 để tạo chứng chỉ Node cho comp1. Hãy nhớ thay đổi địa chỉ IP và fqdn bằng thông tin chi tiết về máy chủ của bạn.
Mã:
cockroach cert create-node \
comp1.hwdomain.lan \
192.168.5.21 \
localhost \
--certs-dir=/opt/cockroachdb/certs \
--ca-key=/opt/cockroachdb/private/ca.key

7-node-cert-comp1.png



Di chuyển đến máy chủ comp2 và thực hiện lệnh bên dưới để tạo chứng chỉ Node cho comp2. Ngoài ra, hãy thay đổi thông tin chi tiết về địa chỉ IP và fqdn của máy chủ comp2.
Mã:
cockroach cert create-node \
comp2.hwdomain.lan \
192.168.5.22 \
localhost \
--certs-dir=/opt/cockroachdb/certs \
--ca-key=/opt/cockroachdb/private/ca.key

9-node-cert-comp2.png


Thiết lập quyền cho chứng chỉ​

Khi đã tạo tất cả các chứng chỉ, hãy chạy lệnh sau để cho phép người dùng cockroach truy cập vào các tệp chứng chỉ. Hãy đảm bảo chạy lệnh này trên cả máy chủ comp1comp2.
Mã:
sudo chown -R cockroach:cockroach /opt/cockroachdb/certs
sudo chown -R cockroach:cockroach /opt/cockroachdb/private

Thiết lập dịch vụ Systemd​

Sau khi tạo chứng chỉ cho CockroachDB, bước tiếp theo là tạo tệp dịch vụ CockroachDB cho từng máy chủ. Sau đó, khởi động và kích hoạt dịch vụ CockroachDB.

Dịch vụ CockroachDB cho comp1​

Trên máy chủ comp1, tạo một dịch vụ systemd mới /etc/systemd/system/cockroachdb.service bằng lệnh nano editor bên dưới.
Mã:
sudo nano /etc/systemd/system/cockroachdb.service
Thêm các cấu hình dịch vụ này. Hãy đảm bảo thay đổi tham số --advertise-addr bằng địa chỉ IP comp1.
Mã:
[Unit]
Description=Cockroach Database cluster node
Requires=network.target

[Service]
Type=notify
WorkingDirectory=/opt/cockroachdb
ExecStart=/usr/bin/cockroach start --certs-dir=/opt/cockroachdb/certs --advertise-addr=192.168.5.21 --join=192.168.5.21,192.168.5.22
TimeoutStopSec=60
Restart=always
RestartSec=10
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=cockroach
User=cockroach

[Install]
WantedBy=default.target
Lưu và thoát khỏi tệp khi bạn hoàn tất.

Dịch vụ CockroachDB cho comp2​

Di chuyển đến máy chủ comp2 và thực hiện lệnh trình chỉnh sửa nano bên dưới để tạo tệp dịch vụ mới /etc/systemd/system/cockroachdb.service.
Mã:
sudo nano /etc/systemd/system/cockroachdb.service
Chèn cấu hình bên dưới và đảm bảo thay đổi tham số --advertise-addr bằng địa chỉ IP comp2.
Mã:
[Unit]
Description=Cockroach Database cluster node
Requires=network.target

[Service]
Type=notify
WorkingDirectory=/opt/cockroachdb
ExecStart=/usr/bin/cockroach start --certs-dir=/opt/cockroachdb/certs --advertise-addr=192.168.5.22 --join=192.168.5.21,192.168.5.22
TimeoutStopSec=60
Restart=always
RestartSec=10
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=cockroach
User=cockroach

[Install]
WantedBy=default.target
Khi hoàn tất, hãy lưu tệp và thoát khỏi trình chỉnh sửa.

Khởi động CockroachDB​

Sau khi tạo tệp dịch vụ CockroachDB, giờ đây bạn có thể áp dụng các thay đổi của mình, sau đó khởi động và kích hoạt dịch vụ CocroachDB.

Thực hiện lệnh sau để tải lại trình quản lý systemd và áp dụng dịch vụ mới cho CockroachDB.
Mã:
sudo systemctl daemon-reload
Bây giờ hãy khởi động và kích hoạt dịch vụ CockroachDB trên cả máy chủ comp1 và comp2 bằng lệnh bên dưới.
Mã:
sudo systemctl start cockroachdb
sudo systemctl enable cockroachdb

10-start-cockroachdb-comp1.png



Cuối cùng, hãy xác minh dịch vụ CockroachDB bằng lệnh sau để đảm bảo rằng dịch vụ đang chạy.
Mã:
sudo systemctl status cockroachdb
Vì vậy, hãy đảm bảo rằng bạn có dịch vụ CockroachDB đang chạy trên cả hai máy chủ Debian của mình.


12-cockrpachdb-comp1.png




13-cockrpachdb-comp2.png


Khởi tạo cụm CockroachDB​

Bây giờ dịch vụ CockroachDB đang chạy trên mỗi máy chủ, bạn có thể tiếp tục khởi tạo cụm CockroachDB từ máy chủ comp1. Sau đó, tạo người dùng quản trị cho CockroachDB và truy cập bảng điều khiển quản trị web CockroachDB.

Trong máy chủ comp1, thực hiện lệnh sau để khởi tạo cụm CockroachDB. Bạn sẽ nhận được đầu ra "Cluster successfully initialized" khi quá trình hoàn tất.
Mã:
cockroach init --certs-dir=/opt/cockroachdb/certs --host=192.168.5.21:26257
Ngoài ra, bạn cũng có thể xác minh quá trình khởi tạo thông qua tệp nhật ký CockroachDB bằng lệnh bên dưới.
Mã:
grep 'node starting' /opt/cockroachdb/cockroach-data/logs/cockroach.log -A 11
Đầu ra 'CockroachDB node starting...' xác nhận rằng cụm đã được khởi tạo.


14-cockroachdb-cluster-initialized.png



Tiếp theo, hãy xác minh cụm CockroachDB của bạn bằng cách thực hiện lệnh sau. Tùy chọn ls được sử dụng để lấy danh sách các máy chủ trong cụm, trong khi lệnh status được sử dụng để kiểm tra trạng thái cụm CockroachDB.
Mã:
cockroach node --certs-dir=/opt/cockroachdb/certs --host=192.168.5.21 ls
cockroach node --certs-dir=/opt/cockroachdb/certs --host=192.168.5.21 status
Dưới đây, bạn có thể thấy số lượng máy chủ trong cụm CockroachDB bao gồm trạng thái của từng máy chủ.


15-check-status.png



Bây giờ cụm đang chạy, hãy thực hiện lệnh sau để đăng nhập vào máy chủ CockroachDB. Hãy chắc chắn chạy lệnh này từ máy chủ comp1 vì chứng chỉ máy khách của bạn có sẵn trên máy comp1.
Mã:
cockroach sql --certs-dir=/opt/cockroachdb/certs --host=192.168.5.21:26257
Sau khi kết nối, bạn sẽ thấy dấu nhắc CockroachDB như sau:


16-cockroachdb-sql-shell.png



Thực hiện các truy vấn sau để tạo người dùng mới bob với mật khẩu p4ssw0rd. Sau đó, cấp quyền quản trị cho người dùng bob.
Mã:
CREATE USER bob WITH PASSWORD 'p4ssw0rd';
GRANT admin TO bob;
Nhấn Ctrl+d để thoát khỏi máy chủ CockroachDB.


17-create-admin.png



Cuối cùng, hãy mở trình duyệt web trên máy cục bộ của bạn và truy cập địa chỉ IP comp1 có cổng 8080 (https://192.168.5.21:8080). Bạn sẽ được nhắc đến trang đăng nhập CockroachDB.

Đăng nhập bằng tên người dùng bob và mật khẩu p4ssw0rd.


18-login-cockroach-console.png



Sau khi đăng nhập, bạn sẽ thấy bảng điều khiển quản trị CockroachDB như thế này:


19-cockroach-console-dashboard.png


Kết luận​

Để kết thúc, bạn đã hoàn tất cài đặt cụm CockroachDB trên máy chủ Debian 12. Bạn cũng đã tạo người dùng quản trị cho CockroachDB và truy cập bảng điều khiển quản trị web CockroachDB. Bây giờ bạn có thể tạo cơ sở dữ liệu và người dùng mới, đồng thời sử dụng bảng điều khiển quản trị web CockroachDB để quản lý cài đặt CockroachDB.
 
Back
Bên trên