CockroachDB là cơ sở dữ liệu SQL nguồn mở và gốc đám mây do CockroachLabs phát triển. Đây là cơ sở dữ liệu SQL phân tán được xây dựng trên kho lưu trữ khóa-giá trị và giao dịch. CockroachDB là cơ sở dữ liệu SQL có khả năng mở rộng đã được so sánh với cơ sở dữ liệu Google Spanner. Cơ sở dữ liệu này dựa trên giao thức PostgreSQL và sẵn sàng cho sản xuất.
Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách thiết lập Cụm CockroachDB an toàn trên Ubuntu 18.04. Bạn sẽ học cách thiết lập cụm an toàn, truy cập bảng điều khiển quản trị CockroachDB, tạo người dùng mới trên CockroachDB, tạo và hiển thị cơ sở dữ liệu trên CockroachDB.
Cài đặt gói chrony cho tất cả các máy chủ bằng lệnh sau.
Sau khi cài đặt hoàn tất, hãy vào thư mục cấu hình '/etc/chrony/' và chỉnh sửa tệp 'chrony.conf'.
Xóa nhóm NTP mặc định và thay thế bằng nhóm quốc gia của riêng bạn.
Lưu và đóng.
Bây giờ hãy khởi động lại dịch vụ chrony rồi thêm chrony vào dịch vụ khởi động.
Kết quả là, thời gian giữa các máy chủ sẽ được đồng bộ hóa với cùng các máy chủ nhóm NTP.
Tạo một thư mục mới có tên là 'binary' và truy cập vào đó.
Tải xuống tệp nhị phân cockroachdb đã nén cho Linux và giải nén.
Bây giờ hãy sao chép tệp nhị phân 'cockroach' vào thư mục '/etc/local/bin'.
Sau đó, bạn có thể chạy lệnh 'cockroach' và khám phá lệnh cơ bản để được trợ giúp, kiểm tra phiên bản, v.v.
CockroachDB đã được cài đặt trên tất cả các máy chủ.
Chúng ta sẽ tạo chứng chỉ và khóa CA, cũng như tạo chứng chỉ cho người dùng root và chứng chỉ cho mỗi nút trên cụm.
Tạo thư mục chứng chỉ '~/.cockroach-certs' và biến môi trường cho thư mục đó.
Và bạn sẽ nhận được 'ca.key' và 'ca.crt' trong thư mục '~/.cockroach-certs'.
Sau đó, sao chép chứng chỉ ca và khóa vào tất cả các máy chủ bằng lệnh scp như bên dưới.
Sao chép vào máy chủ 'node2'.
Sao chép vào máy chủ 'node3'.
Bây giờ hãy đảm bảo chứng chỉ CA và khóa được tải lên tất cả các máy chủ lưu trữ.
Tạo chứng chỉ máy khách trên tất cả các máy chủ bằng lệnh cockroach sau.
Và bạn sẽ nhận được chứng chỉ máy khách cho người dùng gốc 'client.root.crt' và 'client.root.key'.
Trên 'node1', hãy tạo chứng chỉ máy chủ bằng lệnh sau.
Thay đổi địa chỉ IP bằng địa chỉ của riêng bạn.
Trên 'node2', hãy tạo chứng chỉ máy chủ bằng lệnh sau.
Thay đổi địa chỉ IP bằng địa chỉ của riêng bạn.
Trên 'node3', tạo chứng chỉ máy chủ bằng lệnh sau.
Thay đổi địa chỉ IP bằng địa chỉ của riêng bạn.
Bây giờ bạn sẽ nhận được chứng chỉ máy chủ 'node.crt' và 'node.key' trong thư mục '~/.cockroach-certs'.
Chạy lệnh sau trên máy chủ 'node1'.
Đảm bảo không có lỗi.
Sau đó, kiểm tra trạng thái nút cụm bằng cách chạy lệnh cockroach bên dưới.
Bạn sẽ nhận được node1 có địa chỉ IP 10.5.5.21 đang hoạt động với CockroachDB v2.1.6.
Đảm bảo CA và chứng chỉ máy chủ nằm trong thư mục ~/.cockroach-certs.
Bây giờ hãy chạy lệnh sau để thêm 'node2' với địa chỉ IP là 10.5.5.22. Thêm nó vào cụm CockroachDB.
Sau khi hoàn tất, hãy đến 'node3' và chạy lệnh sau.
Thay đổi địa chỉ IP bằng own.
Bây giờ 'node2' và 'node3' đã được thêm vào Secure CockroachDB Cluster. Kiểm tra nó từ máy chủ 'node1' bằng lệnh sau.
Và bạn sẽ nhận được ba máy chủ khác nhau đang chạy cockroach v2.1.6.
https://10.5.5.21:8080/
Và bạn sẽ nhận được trang đăng nhập CockroachDB như bên dưới.
Để đăng nhập vào bảng điều khiển, chúng ta cần tạo một người dùng trên cơ sở dữ liệu CockroachDB.
Quay lại thiết bị đầu cuối 'node1' của bạn và đăng nhập vào shell SQL cockroachdb bằng lệnh sau.
Bây giờ hãy tạo một người dùng mới có tên là 'hakase' với mật khẩu 'hakase-labs123@#' bằng cách sử dụng truy vấn bên dưới.
Nhập '\q' để thoát khỏi CockroachDB SQL shell.
Bây giờ hãy quay lại trình duyệt web và nhập người dùng 'hakase' với mật khẩu 'hakase-labs123@#' trên trang đăng nhập và nhấp vào nút Đăng nhập.
Và bạn sẽ nhận được bảng điều khiển quản trị CockroachDB như bên dưới.
Trên 'node1', truy cập shell CockroachDB SQL bằng lệnh sau.
Tạo hai cơ sở dữ liệu 'hakasedb' và 'hakasedb2' bằng các truy vấn bên dưới.
Bây giờ hãy in danh sách cơ sở dữ liệu và đảm bảo bạn nhận được hai cơ sở dữ liệu mà chúng ta vừa tạo.
Tiếp theo, hãy đăng nhập vào máy chủ 'node2' và truy cập shell CockroachDB SQL bằng lệnh sau.
Kiểm tra danh sách cơ sở dữ liệu.
Và bạn sẽ nhận được 'hakasedb' và 'hakasedb2' đã được sao chép vào máy chủ 'node2'.
Và cuối cùng, quá trình cài đặt và cấu hình Secure CockroachDB Cluster bằng Ubuntu 18.04 đã hoàn tất thành công.
Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách thiết lập Cụm CockroachDB an toàn trên Ubuntu 18.04. Bạn sẽ học cách thiết lập cụm an toàn, truy cập bảng điều khiển quản trị CockroachDB, tạo người dùng mới trên CockroachDB, tạo và hiển thị cơ sở dữ liệu trên CockroachDB.
Điều kiện tiên quyết
Để chạy Cụm CockroachDB, chúng ta cần nhiều máy chủ. Và chúng ta sẽ sử dụng ba máy chủ Ubuntu 18.04 với tên máy chủ chi tiết và địa chỉ IP như bên dưới.
Mã:
node1 10.5.5.21
node2 10.5.5.22
node3 10.5.5.23
Chúng ta sẽ làm gì?
- Thiết lập Máy chủ NTP với Chronysystemctl restart chrony
systemctl enable chrony - Tải xuống và Cài đặt CockroachDB
- Tạo Chứng chỉ
- Khởi tạo Cụm CockroachDB
- Thêm Nút vào Cụm CockroachDB
- Kiểm tra
Bước 1 - Thiết lập Máy chủ NTP với Chrony
Đầu tiên, chúng ta phải đồng bộ hóa thời gian giữa các máy chủ trên cụm. Vì vậy, chúng ta cần cài đặt gói NTP trên tất cả các máy chủ. Và đối với hướng dẫn này, chúng tôi sẽ sử dụng chrony.Cài đặt gói chrony cho tất cả các máy chủ bằng lệnh sau.
Mã:
sudo apt install chrony -y
Mã:
cd /etc/chrony/
vim chrony.conf
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
Bây giờ hãy khởi động lại dịch vụ chrony rồi thêm chrony vào dịch vụ khởi động.
Mã:
systemctl restart chrony
systemctl enable chrony
Bước 2 - Tải xuống và cài đặt CockroachDB
Trong bước này, chúng tôi sẽ tải xuống và cài đặt CockroachDB trên tất cả các máy chủ. Vì vậy, hãy chạy tất cả các lệnh trên tất cả các máy chủ cụm của bạn.Tạo một thư mục mới có tên là 'binary' và truy cập vào đó.
Mã:
mkdir -p binary; cd binary
Mã:
wget https://binaries.cockroachdb.com/cockroach-latest.linux-amd64.tgz
tar -xvzf cockroach-latest.linux-amd64.tgz
Mã:
cp cockroach-*/cockroach /usr/local/bin/
Mã:
phiên bản cockroach
Bước 3 - Tạo chứng chỉ
Bây giờ chúng tôi sẽ tạo một số chứng chỉ để bảo mật Cụm CockrouchDB. Chúng ta có thể sử dụng OpenSSL hoặc dòng lệnh cockroach để tạo tệp chứng chỉ.Chúng ta sẽ tạo chứng chỉ và khóa CA, cũng như tạo chứng chỉ cho người dùng root và chứng chỉ cho mỗi nút trên cụm.
Tạo thư mục chứng chỉ '~/.cockroach-certs' và biến môi trường cho thư mục đó.
Mã:
mkdir -p ${HOME}/.cockroach-certs/
export COCKROACH_CERTS_DIR='${HOME}/.cockroach-certs/'
Tạo CA và sao chép vào tất cả các nút
Trên máy chủ 'node1', hãy tạo cơ quan cấp chứng chỉ bằng lệnh cockroach bên dưới.
Mã:
cockroach cert create-ca \
--certs-dir=$COCKROACH_CERTS_DIR \
--ca-key=$COCKROACH_CERTS_DIR/ca.key
Sau đó, sao chép chứng chỉ ca và khóa vào tất cả các máy chủ bằng lệnh scp như bên dưới.
Sao chép vào máy chủ 'node2'.
Mã:
scp ~/.cockroach-certs/ca.crt ~/.cockroach-certs/ca.key [emailprotected]:~/.cockroach-certs/
Mã:
scp ~/.cockroach-certs/ca.crt ~/.cockroach-certs/ca.key [emailprotected]:~/.cockroach-certs/
Tạo chứng chỉ máy khách
Sau khi tạo cơ quan cấp chứng chỉ, chúng ta cần tạo chứng chỉ máy khách. Chứng chỉ máy khách sẽ được sử dụng để bảo mật thông tin liên lạc giữa shell SQL tích hợp và cụm.Tạo chứng chỉ máy khách trên tất cả các máy chủ bằng lệnh cockroach sau.
Mã:
cockroach cert create-client \
root \
--certs-dir=$COCKROACH_CERTS_DIR \
--ca-key=$COCKROACH_CERTS_DIR/ca.key
Tạo chứng chỉ máy chủ
Chứng chỉ máy chủ sẽ được sử dụng để bảo mật thông tin liên lạc giữa các máy chủ trên cụm CockroachDB. Và để tham gia cụm bảo mật, bạn cần tạo chứng chỉ máy chủ cho từng máy chủ.Trên 'node1', hãy tạo chứng chỉ máy chủ bằng lệnh sau.
Mã:
cockroach cert create-node \
localhost \
$(hostname) \
10.5.5.21 \
--certs-dir=$COCKROACH_CERTS_DIR \
--ca-key=$COCKROACH_CERTS_DIR/ca.key
Trên 'node2', hãy tạo chứng chỉ máy chủ bằng lệnh sau.
Mã:
cockroach cert create-node \
localhost \
$(hostname) \
10.5.5.22 \
--certs-dir=$COCKROACH_CERTS_DIR \
--ca-key=$COCKROACH_CERTS_DIR/ca.key
Trên 'node3', tạo chứng chỉ máy chủ bằng lệnh sau.
Mã:
cockroach cert create-node \
localhost \
$(hostname) \
10.5.5.23 \
--certs-dir=$COCKROACH_CERTS_DIR \
--ca-key=$COCKROACH_CERTS_DIR/ca.key
Bây giờ bạn sẽ nhận được chứng chỉ máy chủ 'node.crt' và 'node.key' trong thư mục '~/.cockroach-certs'.
Bước 4 - Khởi động Secure CockroachDB Cluster
Sau khi tạo một số chứng chỉ SSL, chúng ta sẽ khởi tạo Secure CockroachDB Cluster từ máy chủ 'node1'.Chạy lệnh sau trên máy chủ 'node1'.
Mã:
cockroach start \
--background --certs-dir=$COCKROACH_CERTS_DIR \
--advertise-host=10.5.5.21 --listen-addr=10.5.5.21
Sau đó, kiểm tra trạng thái nút cụm bằng cách chạy lệnh cockroach bên dưới.
Mã:
cockroach node status --host=10.5.5.21
Bước 5 - Thêm Node vào Cluster
Tiếp theo, chúng ta sẽ thêm 'node2' và 'node3' vào cụm bảo mật CockroachDB.Đảm bảo CA và chứng chỉ máy chủ nằm trong thư mục ~/.cockroach-certs.
Mã:
ls -lah ~/.cockroah-certs/
Mã:
cockroach start \
--background --certs-dir=$COCKROACH_CERTS_DIR \
--advertise-host=10.5.5.22 --listen-addr=10.5.5.22 \
--join=10.5.5.21:26257
Mã:
cockroach start \
--background --certs-dir=$COCKROACH_CERTS_DIR \
--advertise-host=10.5.5.23 --listen-addr=10.5.5.23 \
--join=10.5.5.21:26257
Bây giờ 'node2' và 'node3' đã được thêm vào Secure CockroachDB Cluster. Kiểm tra nó từ máy chủ 'node1' bằng lệnh sau.
Mã:
cockroach node status --host=10.5.5.21
Bước 6 - Kiểm tra
Đối với bước cuối cùng này, chúng tôi sẽ kiểm tra cài đặt CockroachDB Secure Cluster của mình bằng cách truy cập bảng điều khiển quản trị và kiểm tra việc sao chép cơ sở dữ liệu giữa các máy chủ.Kiểm tra Bảng điều khiển CockroachDB
CockroachDB cung cấp giao diện người dùng bảng điều khiển đẹp mắt để theo dõi cụm. Mở trình duyệt web của bạn và nhập địa chỉ IP máy chủ theo sau là cổng 8080.https://10.5.5.21:8080/
Và bạn sẽ nhận được trang đăng nhập CockroachDB như bên dưới.
Để đăng nhập vào bảng điều khiển, chúng ta cần tạo một người dùng trên cơ sở dữ liệu CockroachDB.
Quay lại thiết bị đầu cuối 'node1' của bạn và đăng nhập vào shell SQL cockroachdb bằng lệnh sau.
Mã:
cockroach sql --certs-dir=$COCKROACH_CERTS_DIR \
--host=10.5.5.21
Mã:
CREATE USER hakase WITH PASSWORD 'hakase-labs123@#';
Bây giờ hãy quay lại trình duyệt web và nhập người dùng 'hakase' với mật khẩu 'hakase-labs123@#' trên trang đăng nhập và nhấp vào nút Đăng nhập.
Và bạn sẽ nhận được bảng điều khiển quản trị CockroachDB như bên dưới.
Kiểm tra sao chép cơ sở dữ liệu
Bây giờ chúng ta sẽ kiểm tra sao chép cơ sở dữ liệu giữa các máy chủ trên Cụm CockroachDB bằng cách tạo cơ sở dữ liệu trên 'node1' và kiểm tra cơ sở dữ liệu từ 'node2' hoặc 'node3'.Trên 'node1', truy cập shell CockroachDB SQL bằng lệnh sau.
Mã:
cockroach sql --certs-dir=$COCKROACH_CERTS_DIR \
--host=10.5.5.21
Mã:
create database hakasedb;
create database hakasedb2;
Mã:
show databases;
Tiếp theo, hãy đăng nhập vào máy chủ 'node2' và truy cập shell CockroachDB SQL bằng lệnh sau.
Mã:
cockroach sql --certs-dir=$COCKROACH_CERTS_DIR \
--host=10.5.5.22
Mã:
show databases;
Và cuối cùng, quá trình cài đặt và cấu hình Secure CockroachDB Cluster bằng Ubuntu 18.04 đã hoàn tất thành công.