1、部署过程
单节点安装
集群节点安装
2、日志
3、基本镜像配置
一、本指南介绍如何使用Docker容器化平台部署Kaa群集。
部署的群集将包括:
Kaa nodes
One Zookeeper node
One SQL Database node – MariaDB/PostgreSQL
One NoSQL Database node – MongoDB/Cassandra
二、部署过程:
在您的机器上部署一个Kaa群集:
1、安装Docker Engine
如果使用Linux,则可以通过运行安装脚本来安装Docker Engine。
wget -qO- https://get.docker.com/ | sh
重要信息:如果使用Windows,则还必须安装Python。
2、安装DockerСompose。
3、从官方网站下载Kaa debian软件包或在本地构建您的Kaa项目(使用位于server / node / target /中的kaa-node.deb)。
将kaa-node.deb文件放在server / containers / docker /目录中。
4、在server / containers / docker目录下运行以下命令。
docker build --build-arg setupfile=kaa-node.deb -t kaa-node:0.10.1 .
或者,您可以运行以下命令。
build.sh
三、单个节点的安装
要安装单个节点:
1、通过在server / containers / docker / docker-compose-1-node / kaa-example.env文件中指定TRANSPORT_PUBLIC_INTERFACE参数来获取您的公共主机。
Linux / macOS
ip route get 8.8.8.8 | awk '{print $NF; exit}'
Windows
netsh interface ip show address "Ethernet" | findstr "IP Address"
2、打开docker-compose-1-node目录中的所有目录。
cd docker-compose-1-node/$SQL-NoSQL/
以下SQL-NoSQL数据库可用:
mariadb-mongodb
mariadb-cassandra
postgresql-mongodb
postgresql-cassandra
3、运行以下命令。
docker-compose up
如果要将Docker容器作为守护程序运行,请运行:
docker-compose up -d
集群节点安装
:
四、要安装群集节点:
1、指定要使用的SQL-NoSQL数据库。 为此,请从server / containers / docker / using-compose目录运行以下命令。
python launch-kaa.py SQL-NoSQL
参见下面的例子。
python launch-kaa.py mariadb-mongodb
以下SQL-NoSQL数据库可用:
mariadb-mongodb
mariadb-cassandra
postgresql-mongodb
postgresql-cassandra
如果要在集群模式下部署Kaa,请使用附加选项运行上一个命令。
docker ps -a
python launch-kaa.py SQL-NoSQL NODE_COUNT
参见下面的例子。
python launch-kaa.py mariadb-mongodb 3
2、执行以下命令访问正在运行的容器。
docker exec -it usingcompose_KAA_SERVICE_NAME_1 /bin/bash -c "export TERM=xterm; exec bash"
KAA_SERVICE_NAME是kaa-docker-compose.yml文件中指定的Kaa服务名称。
3、等待几秒钟,直到kaa-node服务启动,并在localhost:8080打开浏览器。 请参阅kaa节点容器日志以检查服务是否已启动。
五、logs(日志)
当您将Docker容器作为守护程序运行时,不会显示其输出。 要访问它,运行
docker-compose -f kaa-docker-compose.yml -p usingcompose exec KAA_SERVICE_NAME sh /kaa/tail-node.sh
KAA_SERVICE_NAME是kaa-docker-compose.yml文件中指定的Kaa服务名称。
或者,您可以运行view-kaa-node-logs.sh来获得相同的结果。
您也可以使用下面的命令。
docker logs DOCKER_SERVICE_NAME
要获取所有Docker容器的名称,请运行:
docker ps -a
要获取正在运行的所有Docker容器的名称,请执行以下命令。
docker ps
使用以下环境变量完成基本映像配置。
Variable | Default | Note / Possible values |
---|---|---|
SERVICES_WAIT_TIMEOUT | -1 (forever) | Seconds (integer) before timeout while waiting for ZK/SQL/NoSQL to be ready, otherwise abort. 10: wait 10 seconds. 0: don’t wait -1: wait forever. |
ZOOKEEPER_NODE_LIST | localhost:2181 | comma separated list |
SQL_PROVIDER_NAME | mariadb | mariadb , postgresql |
JDBC_HOST | localhost | |
JDBC_PORT | if mariadb: 3306 if postgresql: 5432 | |
JDBC_USERNAME | sqladmin | |
JDBC_PASSWORD | admin | |
JDBC_DB_NAME | kaa | |
CASSANDRA_CLUSTER_NAME | Kaa Cluster | |
CASSANDRA_KEYSPACE_NAME | kaa | |
CASSANDRA_NODE_LIST | localhost:9042 | comma separated list |
CASSANDRA_USE_SSL | false | |
CASSANDRA_USE_JMX | true | |
CASSANDRA_USE_CREDENTIALS | false | |
CASSANDRA_USERNAME | (empty) | |
CASSANDRA_PASSWORD | (empty) | |
MONGODB_NODE_LIST | localhost:27017 | |
MONGODB_DB_NAME | kaa | |
MONGODB_WRITE_CONCERN | acknowledged | |
NOSQL_PROVIDER_NAME | mongodb | mongodb , cassandra |
CONTROL_SERVER_ENABLED | true | true/false |
BOOTSTRAP_SERVER_ENABLED | true | true/false |
OPERATIONS_SERVER_ENABLED | true | true/false |
THRIFT_HOST | localhost | |
THRIFT_PORT | 9090 | |
ADMIN_PORT | 8080 | |
SUPPORT_UNENCRYPTED_CONNECTION | true | true/false |
TRANSPORT_BIND_INTERFACE | 0.0.0.0 | |
TRANSPORT_PUBLIC_INTERFACE | current public host | |
METRICS_ENABLED | true | true/false |