Docker - Kong网关部署

简介

网关是微服务中不可或缺的一部分,它承载了所有请求流量入口,参数验证拦截,用户权限验证等等。

一、拉取镜像

docker pull kong
docker pull postgres:9.6      # kong所需数据库,高于9.6安装konga比较麻烦,本文已9.6为示例
docker pull pantsel/konga     # kong管理UI

二、安装Kong

1. 创建kong-net网络,方便配置
docker network create kong-net
 2.创建postgres数据库
docker run -d \
--name kong-database \
--restart always \
--network=kong-net \                                        # 使用网络
-p 5432:5432 \                                              # 映射端口
-v /etc/localtime:/etc/localtime:ro \
-v /data/postgres/data:/var/lib/postgresql/data \           # 映射数据
-e "POSTGRES_USER=kong" \                                   # 登录账号
-e "POSTGRES_DB=kong" \                                     # 数据库名称
-e "POSTGRES_PASSWORD=WGnNcRFEquBgM0EVCP4vCM467NPrCc8O" \   # 登录密码
postgres:9.6
 3.通过临时容器进行数据库初始化
docker run --rm \
--network=kong-net \                                        # 使用相同网络
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=kong-database" \                           # 指定刚创建的数据库地址,创建一个网络的原因就是为了方便通过名称进行连接
-e "KONG_PG_USER=kong" \                                    # 登录账号
-e "KONG_PG_PASSWORD=WGnNcRFEquBgM0EVCP4vCM467NPrCc8O" \    # 登录密码
kong kong migrations bootstrap
通过账号密码登录postgres,查看数据库是否创建成功

4.启动Kong
docker run -d \
--name kong \
--restart=unless-stopped \
--network=kong-net \                                        # 使用相同网络
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=kong-database" \                           # 数据库地址,也可以考虑用 IP 方便后边与 consul 集成
-e "KONG_PG_USER=kong" \                                    # 登录账号
-e "KONG_PG_PASSWORD=WGnNcRFEquBgM0EVCP4vCM467NPrCc8O" \    # 登录密码
-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 \                                              # 映射 代理端口,8443
-p 8001:8001 \                                              # 映射 管理端口,8444
kong
访问IP:8001,显示如下表示安装成功

三、安装Konga

konga介绍:便于可以很好地通过UI观察到现在kong的所有的配置,并且可以对于管理kong节点情况进行查看、监控和预警

1.通过临时容器初始化konga数据库
docker run --rm \
--network=kong-net \
pantsel/konga -c prepare -a postgres \
-u postgresql://kong:WGnNcRFEquBgM0EVCP4vCM467NPrCc8O@kong-database:5432/konga    # postgres数据库连接字符串

2.启动Konga
docker run -d \
-p 1337:1337 \                                        # 映射端口
--restart=unless-stopped \
--network=kong-net \
-e "DB_ADAPTER=postgres" \                            # 指定konga使用的数据库类型
-e "DB_HOST=kong-database" \                          # 数据库地址,也可以考虑用 IP 方便后边与 consul 集成
-e "DB_DATABASE=konga" \                              # 刚刚上边初始化的库名
-e "DB_USER=kong" \                                   # 登录账号
-e "DB_PASSWORD=WGnNcRFEquBgM0EVCP4vCM467NPrCc8O" \   # 登录密码
-e "KONGA_HOOK_TIMEOUT=120000" \
-e "DB_PG_SCHEMA=public" \
-e "NODE_ENV=production" \
--name konga \
pantsel/konga
访问IP:1337

首次运行需要注册,登录后进行kong配置

至此安装工作已全部完成。

四、汉化教程

mkdir /data/konga          #创建一个目录进行konga汉化网站源码的保存
docker ps -a                                        # 查找konga的容器id
docker stop konga                           # 停止正在运行的容器
docker cp konga:/app/assets /data/konga     # 将容器的文件复制到本地 

docker pull jsonljd/konga-lang-plugin:latest        # 拉取语言插件镜像

docker run -d --name konga-lang-plugin \
-v /data/konga/assets:/app/assets \
jsonljd/konga-lang-plugin                           # 运行镜像,设置源码保存目录
docker rm -f konga-lang-plugin                      # 确认文件已经保存到磁盘后,删除汉化包容器

docker cp /data/konga/assets konga:/app     # 将汉化文件源码覆盖到konga容器中
docker start konga                          # 重启konga容器

分享到:
本文链接:https://blog.renzicu.com/2023/06/81.html
版权声明:本博客所有文章除特别声明外,均采用 CC BY 4.0 许可协议。转载请注明出处!
THE END
二维码
打赏
文章目录
关闭
目 录