3、kong-kong部署-基于docker部署
docker部署微服务网关
1、部署docker环境: 2、构建kong的容器网络: ·创建一个docker自定义的网络、允许容器之间相互通信 ·创建网络:docker network create kong-net ·查看docker网络:docker network list 3、搭建数据库环境:使用postgresql数据库 ·先创建一个挂载点:docker volume create kong-volume #此方法创建的挂载点默认的路径在/var/lib/docker/volumes/kong-volume ·运行postgresql容器: docker run -d --name kong-database \ --network=kong-net \ -p 5432:5432 \ -v kong-volume:/var/lib/postgresql/date \ -e "POSTGRES_USER=kong" \ -e "POSTGRES_DB=kong" \ -e "POSTGRES_PASSWORD=kong" \ postgres:9.6 4、初始化数据库和迁移数据库并生成kong数据库的表: ·docker run --rm \ --network=kong-net \ -e "KONG_DATABASE=postgres" \ -e "KONG_PG_HOST=kong-database" \ -e "KONG_PG_PASSWORD=kong" \ -e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \ kong:3.3.0 kong migrations bootstrap 5、启动kong容器 docker run -d --name kong \ --network=kong-net \ -e "KONG_DATABASE=postgres" \ -e "KONG_PG_HOST=kong-database" \ -e "KONG_PG_USER=kong" \ -e "KONG_PG_PASSWORK=kong" \ -e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \ -e "KONG_PROXY_ACCESS_LOG=/dev/stdout" \ -e "KONG_ADMIN_ACCESS_LOG=/dev/stdout" \ -e "KONG_PROXY_ERROR_LOG=/dev/stderr" \ -e "KONG_ADMIN_ERROR_LOG=/dev/stderr" \ -e "KONG_ADMIN_LISTEN=0.0.0.0:8001, 0.0.0.0:8444 ssl" \ -p 8000:8000 \ -p 8443:8443 \ -p 8001:8001 \ -p 8444:8444 \ kong:3.3.0 ———————————————————————————————————————— #解析: docker run -d --name kong \ 容器名称 --network=kong-net \ 指定的docker网络 -e "KONG_DATABASE=postgres" \ 指定的数据库类型 -e "KONG_PG_HOST=kong-database" \ 指定刚才的数据库容器名称 -e "KONG_PG_PASSWORD=kong" \ 密码 -e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \ -e "KONG_PROXY_ACCESS_LOG=/dev/stdout" \ 客户端请求日志目录 -e "KONG_ADMIN_ACCESS_LOG=/dev/stdout" \ 后台请求日志目录 -e "KONG_PROXY_ERROR_LOG=/dev/stderr" \ 客户端错误日志目录 -e "KONG_ADMIN_ERROR_LOG=/dev/stderr" \ 后台错误日志目录 -v /var/kong/logs:/usr/local/kong/logs 将kong日志目录映射到我们创建的目录,如果需要的话,开启,,这个方便分布式日志采集 -e "KONG_ADMIN_LISTEN=0.0.0.0:8001, 0.0.0.0:8444 ssl" \ -p 8000:8000 \ -p 8443:8443 \ -p 8001:8001 \ -p 8444:8444 \ kong:latest kong镜像 Kong默认端口有 8000:监听来自客户端的http,并转发给上游服务器 8443:监听来自客户端的https请求,并转发给上游服务器 8001:监听来自Admin API的http请求 8444:监听来自Admin API的https请求 —————————————————————————————————————————————————————————————— ---------------------------konga部署----------------------------- 6、部署konga ·启动konga容器数据库(创建konga用的数据库容器) ·先创建挂载卷:docker volume create konga-postgresql ·创建数据库(postgresql数据库) docker run -d --name konga-database \ --network=kong-net \ -p 5433:5432 \ -v konga-postgresq1:/var/1ib/postgresq1/data \ -e "POSTGRES_USER=onga" \ -e"POSTGRES_DB=konga" \ -e"POSTGRES_PASSWORD=konga \ postgres:9.6 7、初始化postgresql数据库 ·docker run --rm --network=kong-net pantsel/konga:latest -c prepare -a postgres -u postgres://konga:konga@konga-database:5432/konga 8、启动konga容器 docker run -d -p 1337:1337 \ --network kong-net \ -e"DB_ADAPTER=postgres" \ -e "DB_URI=postgres://konga:konga@konga-database:5432/konga" \ -e "NODE_ENV=production" \ -e"DB_PASSWORD=konga" \ --name konga \ pantse1/konga 9、访问konga:ip:1337
1、登陆后创建用户
2、创建连接kong网关节点-点击激活-左边栏就多出了一些配置项
通过curl 请求来配置nginx的负载
配置upstream curl -X POST http://localhost:8001/upstreams --data “name=helloUpstream” 新建组 配置target curl -X POST http://localhost:8001/upstreams/helloUpstream/targets --data “target=localhost:3000” --data “weight=100” 在组名下新建target,(配置权重) 配置Service curl -X POST http://localhost:8001/services --data “name=hello” --data “host=helloUpstream” 新建Service,对应组 配置route curl -X POST http://localhost:8001/routes --data “paths[]=/hello” --data “service.id= 014edc3a-0fc8-4f03-b15c-05d8bc2d8368” id是服务id 新建路由,当访问路径下hello时访问service
默认情况下,KONG监听的端口为:8000、8001、8443、8444 处理用户请求http:8000.https:8443 管理员进行管理http :8001 https:8444 8444:通过此端口,管理者可以对HTTP请求进行监控; 其中 8000/8443分别是用来监听来自客户端的Http和Https请求,等价于Nginx默认的80端口,而8001端口便是默认的管理端口,可以通过HTTP Restful API来动态管理Kong 的配置;
本文作者:little小新
本文链接:https://www.cnblogs.com/littlecc/p/17670713.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步