Облачная экосистема. Евгений Сергеевич Штольц
Чтение книги онлайн.
Читать онлайн книгу Облачная экосистема - Евгений Сергеевич Штольц страница 3
clusterrolebinding.rbac.authorization.Kubernetes.io/dev_essch-cluster-admin-binding created
dev_essch@cloudshell:~ (cockroachdb-1)$ kubectl describe \
clusterrolebinding.rbac.authorization.Kubernetes.io/dev_essch-cluster-admin-binding
Name: dev_essch-cluster-admin-binding
Labels: < none>
Annotations: < none>
Role:
Kind: ClusterRole
Name: cluster-admin
Subjects:
Kind Name Namespace
–– – –
User [email protected]
Используя сервис, мы можем подсоединиться к любому инстанцу базы данных и проверить его работу с помощью примера из документации. Создадим временный под для подключения к нему:
dev_essch@cloudshell:~ (cockroachdb-1)$ kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S)
cockroachdb ClusterIP None < none> 26257/TCP,8080/TCP
cockroachdb-public ClusterIP 10.31.250.213 < none> 26257/TCP,8080/TCP
kubernetes ClusterIP 10.31.240.1 < none> 443/TCP
Теперь, мы может запустить контейнер с базой дынных. Команда состоит из двух частей: создание контейнера и команды, выполняемой при его старте, разделённые "–"
dev_essch@cloudshell:~ (cockroachdb-1)$ kubectl run cockroachdb -it \
–-image=cockroachdb/cockroach:v19.2.7 \
–-rm \
–-restart=Never \
–– sql –insecure –host=cockroachdb-public
root@cockroachdb-public:26257/defaultdb> CREATE DATABASE test;
CREATE DATABASE
Time: 34.273044ms
root@cockroachdb-public:26257/defaultdb> CREATE TABLE test.accounts (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
balance DECIMAL
);
CREATE TABLE
Time: 29.327958ms
root@cockroachdb-public:26257/defaultdb> INSERT INTO test.accounts (balance)
VALUES
(1000.50), (20000), (380), (500), (55000);
INSERT 5
Time: 22.540767ms
root@cockroachdb-public:26257/defaultdb> SELECT * FROM test.accounts;
id | balance
+–+–+
405a6d86-a4e4-4a45-92b5-cd009cbfe5c1 | 20000
6af6fca8-cf8e-4e6f-a89b-839c45bdbbb7 | 380
6ee4c045-caaa-4954-acb9-af3e9a109e25 | 55000
719c99f5-fb1a-48a5-b233-c8027236dab7 | 1000.50
d658e9ef-520a-4551-9dad-16ad1ded0f48 | 500
(5 rows)
Time: 2.696122ms
root@cockroachdb-public:26257/defaultdb>exit
Теперь наша база данных работает и наполнена тестовыми результатами. Эти результаты можно посмотреть в админке. В документации демонстрируется проброс порта, но мы таки образом не получаем IP-адрес и годится только для тестов:
dev_essch@cloudshell:~ (cockroachdb-1)$ kubectl port-forward cockroachdb-0 8080 &
[1] 386
dev_essch@cloudshell:~ (cockroachdb-1)$ Forwarding from 127.0.0.1:8080 -> 8080
dev_essch@cloudshell:~ (cockroachdb-1)$ curl 127.0.0.1:8080 | grep '.js'
Handling connection for 8080
< script src="protos.dll.js" type="text/javascript">< /script>
< script src="vendor.dll.js" type="text/javascript">< /script>
< script src="bundle.js" type="text/javascript">< /script>
dev_essch@cloudshell:~ (cockroachdb-1)$ kill -9 %1
dev_essch@cloudshell:~ (cockroachdb-1)$ curl 127.0.0.1:8080
curl: (7) Failed to connect to 127.0.0.1 port 8080: Connection refused
[1]+ Killed kubectl port-forward cockroachdb-0 8080
Чтобы открыть доступ к сервису, нужно изменить его тип на LoadBalancer и через минуту появится внешний IP-адрес. Тем самым мы отвяжемся от IP-адреса машины, который может изменить при переезде виртуальные машины с одной машины на другую, к IP-адресу балансировщика. IP-адрес не меняется, тем самым его можно связать с внешним IP-адресом, доступным из интернета, что и делает платформа автоматически:
Конец ознакомительного фрагмента.
Текст предоставлен ООО «ЛитРес».
Прочитайте эту книгу