Cách cài đặt cụm CockroachDB trên Ubuntu 22.04

theanh

Administrator
Nhân viên
CockroachDB là cơ sở dữ liệu SQL phân tán miễn phí và gốc đám mây được sử dụng để xây dựng và quản lý các dịch vụ đám mây hiện đại, có thể mở rộng. Nó giúp bạn vượt qua các lỗi phần mềm và phần cứng. Nó lưu trữ các bản sao dữ liệu ở nhiều vị trí để cung cấp quyền truy cập nhanh chóng. Nó được xây dựng trên kho lưu trữ khóa-giá trị giao dịch và có tính nhất quán cao và có khả năng tồn tại sau các lỗi đĩa, máy và trung tâm dữ liệu với độ trễ gần như bằng không và không cần can thiệp thủ công.

Hướng dẫn này sẽ giải thích cách thiết lập cụm CockroachDB ba nút trên máy chủ Ubuntu 22.04.

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

  • Ba máy chủ chạy Ubuntu 22.04.
  • Mật khẩu gốc được cấu hình trên mỗi máy chủ.
Trong hướng dẫn này, chúng ta sẽ sử dụng thiết lập sau:

tên máy chủ Địa chỉ IP

node1 192.168.10.10

node2 192.168.10.11

node3 192.168.10.12

Cập nhật hệ thống của bạn​

Trước khi bắt đầu, chúng tôi khuyên bạn nên cập nhật và nâng cấp tất cả các nút lên phiên bản mới nhất. Bạn có thể cập nhật từng nút một bằng cách chạy lệnh sau:
Mã:
apt update -y
apt upgrade -y
Sau khi tất cả các nút được cập nhật, hãy khởi động lại chúng để áp dụng các thay đổi.

Thiết lập đồng bộ hóa thời gian​

Trước khi bắt đầu, bạn sẽ cần thiết lập đồng bộ hóa thời gian giữa tất cả các nút. Bạn có thể thực hiện bằng cách sử dụng chrony.

Trước tiên, hãy cài đặt chrony bằng lệnh sau:
Mã:
apt install chrony -y
Sau khi cài đặt, hãy chỉnh sửa tệp cấu hình chrony bằng lệnh sau:
Mã:
nano /etc/chrony/chrony.conf
Tìm nhóm mặc định và thay thế chúng bằng nhóm sau dòng:
Mã:
pool 0.id.pool.ntp.org iburst maxsources 4
pool 1.id.pool.ntp.org iburst maxsources 1
pool 2.id.pool.ntp.org iburst maxsources 1
pool 3.id.pool.ntp.org iburst maxsources 2
Lưu và đóng tệp sau đó khởi động lại dịch vụ chrony và cho phép nó bắt đầu khi khởi động lại hệ thống bằng lệnh sau:
Mã:
systemctl restart chrony
systemctl enable chrony
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.

Cài đặt CockroachDB trên tất cả các nút​

Trong phần này, chúng tôi sẽ cài đặt CockroachDB trên tất cả các nút. Chạy các lệnh sau trên tất cả các nút để cài đặt CockroachDB.

Đầu tiên, tải xuống phiên bản mới nhất của CockroachDB từ trang web chính thức của họ bằng lệnh sau:
Mã:
wget https://binaries.cockroachdb.com/cockroach-latest.linux-amd64.tgz
Sau khi tải xuống hoàn tất, hãy giải nén tệp đã tải xuống bằng lệnh sau:
Mã:
tar -xvzf cockroach-latest.linux-amd64.tgz
Tiếp theo, sao chép tệp nhị phân CockroachDB vào thư mục /usr/local/bin với lệnh sau lệnh:
Mã:
cp cockroach-*/cockroach /usr/local/bin/
Tiếp theo, xác minh phiên bản CockroachDB bằng lệnh sau:
Mã:
cockroach version
Bạn sẽ nhận được thông báo sau đầu ra:
Mã:
Build Tag: v22.2.2
Build Time: 2023/01/04 17:23:00
Distribution: CCL
Platform: linux amd64 (x86_64-pc-linux-gnu)
Go Version: go1.19.1
C Compiler: gcc 6.5.0
Build Commit ID: 07a53a36601e9ca5fcffcff55f69b43c6dfbf1c1
Build Type: release
Lúc này, CockroachDB đã được cài đặt trên tất cả các nút. Bây giờ bạn có thể tiến hành bước tiếp theo.

Tạo chứng chỉ​

CockroachDB cũng yêu cầu chứng chỉ máy chủ và máy khách để có kết nối an toàn. Trước tiên, hãy tạo một thư mục để lưu trữ các tệp chứng chỉ trên tất cả các nút. Chạy lệnh sau trên tất cả các nút để tạo thư mục certs:
Mã:
mkdir ~/certs
Tiếp theo, bạn sẽ cần tạo chứng chỉ CA, chứng chỉ gốc và chứng chỉ máy khách.

Tạo chứng chỉ CA​

Trên nút1, tạo chứng chỉ CA bằng cách sử dụng lệnh sau lệnh:
Mã:
cockroach cert create-ca --certs-dir=certs --ca-key=certs/ca.key
Lệnh này sẽ tạo ca.keyca.crt bên trong thư mục~/certs.

Sau đó, sao chép CA đã tạo vào cả hai nút bằng lệnh sau:
Mã:
scp ~/certs/ca.crt ~/certs/ca.key [emailprotected]:~/certs/
scp ~/certs/ca.crt ~/certs/ca.key [emailprotected]:~/certs/

Tạo chứng chỉ máy khách​

Tiếp theo, bạn sẽ cần tạo chứng chỉ máy khách để bảo mật thông tin liên lạc giữa SQL và cụm.

Chạy lệnh sau trên tất cả các nút để tạo chứng chỉ máy khách:
Mã:
cockroach cert create-client root --certs-dir=certs --ca-key=certs/ca.key
Sau khi hoàn tất, bạn có thể tiến hành tạo chứng chỉ máy chủ.

Tạo chứng chỉ máy chủ​

Tiếp theo, bạn sẽ cần tạo chứng chỉ máy chủ để bảo mật thông tin liên lạc giữa các máy chủ trên cụm CockroachDB.

Trên node1, hãy chạy lệnh sau để tạo máy chủ chứng chỉ:
Mã:
cockroach cert create-node localhost $(hostname) 192.168.10.10 --certs-dir=certs --ca-key=certs/ca.key
Trên node2, chạy lệnh sau để tạo chứng chỉ máy chủ:
Mã:
cockroach cert create-node localhost $(hostname) 192.168.10.11 --certs-dir=certs --ca-key=certs/ca.key
Trên node3, chạy lệnh sau để tạo máy chủ chứng chỉ:
Mã:
cockroach cert create-node localhost $(hostname) 192.168.10.12 --certs-dir=certs --ca-key=certs/ca.key
Điều này sẽ tạo tệp node.keynode.crt bên trong thư mục ~/certs.

Bạn có thể liệt kê tất cả các chứng chỉ bằng lệnh sau:
Mã:
cockroach --certs-dir=certs cert list
Bạn sẽ nhận được thông báo sau đầu ra:
Mã:
Certificate directory: certs Usage | Certificate File | Key File | Expires | Notes | Error
---------+------------------+-----------------+------------+--------------------------------------------+-------- CA | ca.crt | | 2033/01/17 | num certs: 1 | Node | node.crt | node.key | 2028/01/14 | addresses: localhost,vultr,192.168.10.10 | Client | client.root.crt | client.root.key | 2028/01/14 | user: root |
(3 rows)
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.

Khởi động cụm CockroachDB​

Tại thời điểm này, tất cả các chứng chỉ đã sẵn sàng để khởi động cụm CockroachDB.

Trên node1, hãy chạy lệnh sau để quảng cáo Secure CockroachDB Cụm:
Mã:
cockroach start --background --certs-dir=certs --advertise-host=192.168.10.10 --join=192.168.10.10,192.168.10.11,192.168.10.12 --background
Bạn sẽ nhận được kết quả sau.
Mã:
* WARNING: Running a server without --sql-addr, with a combined RPC/SQL listener, is deprecated.
* This feature will be removed in the next version of CockroachDB.
*
*
* INFO: initial startup completed.
* Node will now attempt to join a running cluster, or wait for `cockroach init`.
* Client connections will be accepted after this completes successfully.
* Check the log file(s) for progress.
Tiếp theo, khởi tạo cụm bằng lệnh sau lệnh.
Mã:
cockroach init --certs-dir=certs --host=192.168.10.10
Theo mặc định, cụm CockroachDB lắng nghe trên cổng 26257. Bạn có thể kiểm tra bằng lệnh sau.
Mã:
ss -antpl | grep 26257
Bạn sẽ nhận được thông báo sau đầu ra.
Mã:
LISTEN 0 4096 *:26257 *:* users:(("cockroach",pid=86868,fd=25))
Bạn cũng có thể kiểm tra trạng thái của cụm bằng lệnh sau:
Mã:
cockroach node status --certs-dir=certs --host=192.168.10.10
Bạn sẽ nhận được thông báo sau đầu ra:
Mã:
id | address | sql_address | build | started_at | updated_at | locality | is_available | is_live
-----+-----------------------+-----------------------+---------+--------------------------------------+--------------------------------------+----------+--------------+---------- 1 | 192.168.10.10:26257 | 192.168.10.10:26257 | v22.2.2 | 2023-01-10 07:19:44.009519 +0000 UTC | 2023-01-10 07:20:24.521341 +0000 UTC | | true | true
(1 row)
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.

Thêm các nút còn lại vào cụm​

Tiếp theo, bạn sẽ cần thêm cả hai nút vào cụm CockroachDB.

Trên node2, hãy chạy lệnh sau để thêm nó vào CockroachDB cụm.
Mã:
cockroach start --background --certs-dir=certs --advertise-host=192.168.10.11 --listen-addr=192.168.10.11 --join=192.168.10.10:26257
Trên nút 3, hãy chạy lệnh sau để thêm nó vào cụm CockroachDB.
Mã:
cockroach start --background --certs-dir=certs --advertise-host=192.168.10.12 --listen-addr=192.168.10.12 --join=192.168.10.10:26257
Tiếp theo, quay lại nút 1 và kiểm tra trạng thái của cụm bằng lệnh sau lệnh:
Mã:
cockroach node status --certs-dir=certs --host=192.168.10.10
Bạn sẽ thấy tất cả các nút được thêm vào cụm.
Mã:
id | address | sql_address | build | started_at | updated_at | locality | is_available | is_live
-----+-----------------------+-----------------------+---------+--------------------------------------+--------------------------------------+----------+--------------+---------- 1 | 192.168.10.10:26257 | 192.168.10.10:26257 | v22.2.2 | 2023-01-10 07:19:44.009519 +0000 UTC | 2023-01-10 07:21:27.529911 +0000 UTC | | true | true 2 | 192.168.10.11:26257 | 192.168.10.11:26257 | v22.2.2 | 2023-01-10 07:21:04.206015 +0000 UTC | 2023-01-10 07:21:26.718227 +0000 UTC | | true | true 3 | 192.168.10.12:26257 | 192.168.10.12:26257 | v22.2.2 | 2023-01-10 07:21:17.704146 +0000 UTC | 2023-01-10 07:21:26.718768 +0000 UTC | | true | true
Tại thời điểm này, cụm CockroachDB đã được khởi động và lắng nghe trên cổng 8080. Bây giờ bạn có thể tiến hành bước tiếp theo.

Truy cập Bảng điều khiển CockroachDB​

CockroachDB cung cấp giao diện web đơn giản và dễ sử dụng để giám sát cụm. Trước khi truy cập giao diện web CockroachDB, bạn sẽ cần tạo một người dùng quản trị và đặt mật khẩu cho người dùng đó.

Trên node1, hãy đăng nhập vào shell SQL cockroachdb bằng lệnh sau:
Mã:
cockroach sql --certs-dir=certs --host=192.168.10.10
Tiếp theo, hãy tạo một người dùng có tên là user1 và đặt mật khẩu bằng lệnh sau:
Mã:
[emailprotected]:26257/defaultdb> CREATE USER user1 WITH PASSWORD 'securepassword';
Tiếp theo, hãy thoát khỏi shell SQL sử dụng lệnh sau.
Mã:
[emailprotected]:26257/defaultdb> exit;
Bây giờ, hãy mở trình duyệt web của bạn và truy cập giao diện web CockroachDB bằng URL Bạn sẽ thấy trang sau:


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22365%22%3E%3C/svg%3E


Cung cấp tên người dùng, mật khẩu và quản trị viên của bạn nhấp vào nút ĐĂNG NHẬP. Bạn sẽ thấy bảng điều khiển CockroachDB trên trang sau:


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22371%22%3E%3C/svg%3E

Xác minh bản sao cơ sở dữ liệu trong Custer​

Tiếp theo, bạn sẽ cần xác minh xem cơ sở dữ liệu có được sao chép giữa tất cả các nút hay không.

Trên node1, hãy đăng nhập vào shell SQL bằng lệnh sau lệnh:
Mã:
cockroach sql --certs-dir=certs --host=192.168.10.10
Tiếp theo, tạo một cơ sở dữ liệu có tên là wpdb1 và wpdb2 bằng lệnh sau:
Mã:
create database wpdb1;
create database wpdb2;
Tiếp theo, xác minh cơ sở dữ liệu bằng lệnh sau lệnh:
Mã:
show databases;
Bạn sẽ thấy tất cả các cơ sở dữ liệu trong đầu ra sau:
Mã:
database_name | owner | primary_region | secondary_region | regions | survival_goal
----------------+-------+----------------+------------------+---------+---------------- defaultdb | root | NULL | NULL | {} | NULL postgres | root | NULL | NULL | {} | NULL system | node | NULL | NULL | {} | NULL wpdb1 | root | NULL | NULL | {} | NULL wpdb2 | root | NULL | NULL | {} | NULL
(5 rows)
Time: 3ms total (execution 3ms / network 1ms)
Tiếp theo, hãy đến Node2 và xác minh xem cơ sở dữ liệu đã được sao chép hay chưa.

Trên node2, hãy đăng nhập vào shell SQL bằng lệnh sau lệnh:
Mã:
cockroach sql --certs-dir=certs --host=192.168.10.11
Chạy lệnh sau để hiển thị cơ sở dữ liệu:
Mã:
show databases;
Bạn sẽ thấy wpdb1 và wpdb2 trong đầu ra:
Mã:
database_name | owner | primary_region | secondary_region | regions | survival_goal
----------------+-------+----------------+------------------+---------+---------------- defaultdb | root | NULL | NULL | {} | NULL postgres | root | NULL | NULL | {} | NULL system | node | NULL | NULL | {} | NULL wpdb1 | root | NULL | NULL | {} | NULL wpdb2 | root | NULL | NULL | {} | NULL
(5 rows)
Time: 7ms total (execution 6ms / network 1ms)
Đầu ra ở trên cho biết quá trình sao chép cơ sở dữ liệu đang hoạt động trên CockroachDB Cluster.

Kết luận​

Hướng dẫn này giải thích cách cài đặt và thiết lập CockroachDB Cluster an toàn trên máy chủ Ubuntu 22.04. Bây giờ bạn có thể mở rộng cụm của mình một cách dễ dàng bằng cách thêm các nút bổ sung vào cụm. Hãy thoải mái hỏi tôi nếu bạn có bất kỳ câu hỏi nào. Để biết thêm thông tin, bạn có thể truy cập tài liệu chính thức của CockroachDB.
 
Back
Bên trên