本文已参与「新人创作礼」活动,一起开启掘金创作之路。
一、Linux中部署kong
1.安装
yum install kong-1.4.2.el7.amd64.rpm --nogpgcheck
2.kong的配置
进入kong配置文件目录
cd /etc/kong/
拷贝默认的配置到新建的kong.conf
cp kong.conf.default kong.conf
编辑kong.conf文件
vim kong.conf
log_level = debug
admin_listen = 0.0.0.0:8001, 0.0.0.0:8444 ssl
prefix =/aifs01/tools/base/kong/kong/kong_data
database = postgres
pg_host=10.10.10.2
pg_port=8432
pg_user=kong
pg_password=kong
pg_database=kong
参数说明:
prefix:kong的配置目录
database:数据库类型(默认postgres)
postgres的安装可以参考juejin.cn/post/713876…
pg_host:pgsql数据库IP地址
pg_port:pgsql数据库端口号
pg_user:pgsql数据库用户名
pg_password:pgsql数据库用户密码
pg_database:pgsql数据库名
dns_resolver:consul dns地址
dns_order:dns排序方式
3.初始化数据库
kong migrations bootstrap -c /etc/kong/kong.conf
4.启动kong,账号没有权限的话,需要自己配置权限
kong start -c /etc/kong/kong.conf
启动的时候如果报错:
修改/etc/security/limits.conf文件
vim /etc/security/limits.conf
在文件末尾添加
* soft nofile 204800
* hard nofile 204800
* soft nproc 204800
* hard nproc 204800
修改/etc/security/limits.d/20-nproc.conf文件
vim /etc/security/limits.d/20-nproc.conf
文件尾部添加(注:系统不同20-nproc.conf名称也不同 有可能是60-nproc.conf需要根据实际修改)
* soft nproc 204800
* hard nproc 204800
保存后,重新使用xshell工具登录即可生效
5.停止kong
kong start -c /etc/kong/kong.conf
6.验证kong启动成功
curl -i <http://localhost:8001/>
7.查看kong状态
curl 10.10.10.1:8001/status
二、kong集群部署
在另一台服务器上根据上述步骤部署kong,二者配置连接同一数据库,重启两个节点即可
如果在一台机器上要部署2个节点
1.复制/etc/kong.conf文件
cp /etc/kong.conf /etc/kong_2.conf
2.修改kong_2.conf文件内容与前面不同
vim /etc/kong_2.conf
log_level = debug
admin_listen = 0.0.0.0:8002, 0.0.0.0:8445 ssl
proxy_listen = 0.0.0.0:8003, 0.0.0.0:8442
prefix =/aifs01/iam/iam_soft/kong2_data
database = postgres
pg_host=10.10.10.1
pg_port=8432
pg_user=kong
pg_password=kong
pg_database=kong
3.启动
kong start -c /etc/kong/kong_2.conf
4.测试集群
通过node1来注册一个服务:
curl -i -X POST \
--url <http://10.21.171.12:8001/services/> \
--data 'name=service-stock' \
--data 'url=[http://hq.sinajs.cn](http://hq.sinajs.cn/)'
显示注册成功:
{
"host":"hq.sinajs.cn",
"created_at":1631759101,
"connect_timeout":60000,
"id":"bf61a962-4b39-41fc-b580-dbc25dced5bd",
"protocol":"http",
"name":"service-stock",
"read_timeout":60000,
"port":80,
"path":null,
"updated_at":1631759101,
"retries":5,
"write_timeout":60000,
"tags":null,
"client_certificate":null
}
通过node2来查询这个Service:
curl -i -X GET --url <http://10.21.171.12:8002/services/service-stock>
可以横向扩展任意多个node节点,只要它们连接的是同一个数据库(或集群)即可,如果kong对外希望是一个入口,则可以将这些kong节点作为反向代理的上游,通过nginx转发即可。