Cách triển khai cụm Secure CockroachDB trên máy chủ Ubuntu

theanh

Administrator
Nhân viên
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.

Đ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
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'.
Mã:
cd /etc/chrony/
 vim 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.
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.

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
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.


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
Tải xuống tệp nhị phân cockroachdb đã nén cho Linux và giải nén.
Mã:
wget https://binaries.cockroachdb.com/cockroach-latest.linux-amd64.tgz
 tar -xvzf cockroach-latest.linux-amd64.tgz
Bây giờ hãy sao chép tệp nhị phân 'cockroach' vào thư mục '/etc/local/bin'.
Mã:
cp cockroach-*/cockroach /usr/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.
Mã:
phiên bản cockroach
CockroachDB đã được cài đặt trên tất cả các máy chủ.


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
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'.
Mã:
scp ~/.cockroach-certs/ca.crt ~/.cockroach-certs/ca.key [emailprotected]:~/.cockroach-certs/
Sao chép vào máy chủ 'node3'.
Mã:
scp ~/.cockroach-certs/ca.crt ~/.cockroach-certs/ca.key [emailprotected]:~/.cockroach-certs/
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​

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
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'.


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
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.
Mã:
cockroach cert create-node \
 localhost \
 $(hostname) \
 10.5.5.22 \
 --certs-dir=$COCKROACH_CERTS_DIR \
 --ca-key=$COCKROACH_CERTS_DIR/ca.key
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.
Mã:
cockroach cert create-node \
 localhost \
 $(hostname) \
 10.5.5.23 \
 --certs-dir=$COCKROACH_CERTS_DIR \
 --ca-key=$COCKROACH_CERTS_DIR/ca.key
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'.

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
Đả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.
Mã:
cockroach node status --host=10.5.5.21
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.


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/
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.
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
Sau khi hoàn tất, hãy đến 'node3' và chạy lệnh sau.
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
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.
Mã:
cockroach node status --host=10.5.5.21
Và bạn sẽ nhận được ba máy chủ khác nhau đang chạy cockroach v2.1.6.


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
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.
Mã:
CREATE USER hakase WITH PASSWORD 'hakase-labs123@#';
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.


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
Tạo hai cơ sở dữ liệu 'hakasedb' và 'hakasedb2' bằng các truy vấn bên dưới.
Mã:
create database hakasedb;
 create database hakasedb2;
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.
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
Kiểm tra danh sách cơ sở dữ liệu.
Mã:
show databases;
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.
 
Back
Bên trên