前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【玩转Lighthouse】使用Docker部署云原生API网关Kong

【玩转Lighthouse】使用Docker部署云原生API网关Kong

原创
作者头像
用户1358150
发布2022-04-16 14:26:32
1.1K0
发布2022-04-16 14:26:32
举报
文章被收录于专栏:Serverless 实战应用

Kong简介

Kong
Kong

Kong是一款云原生(cloud-native)、平台无关(platform-agnostic)、可扩展(scalable)的 API 网关,以通过插件实现的高性能和可扩展性而著称。

通过提供代理、路由、负载平衡、运行状况检查、身份验证等功能,Kong可以作为中心层轻松协调微服务或传统API流量。

用Kong作为您的API网关好处多多,赶紧将它部署到您的轻量应用服务器吧~

部署方法

创建专用网络

在Docker中创建Kong的专用网络:

代码语言:shell
复制
docker network create kong-net

此时我们创建了一个名为kong-net的专用网络。

拉取相关镜像

通过以下命令拉取Kong相关镜像:

代码语言:shell
复制
docker pull kong
docker pull postgres:9.6
docker pull pantsel/konga

其中kong镜像为Kong的主镜像;postgres:9.6镜像为PostgreSQL数据库,用于存储Kong的数据;pantsel/konga镜像为Konga面板,用于为Kong提供基于Web的图形化管理面板。

创建Kong专用数据库(PostgreSQL)

代码语言:shell
复制
docker run -d \
--name kong-database \
--network kong-net \
-e "POSTGRES_USER=konguser" \
-e "POSTGRES_DB=kong" \
-e "POSTGRES_PASSWORD=kongpw" \
--restart always \
postgres:9.6

此时将创建一个容器名为kong-database,连接到网络kong-net,数据库用户名为konguser,数据库名为kong,数据库用户对应密码为kongpw的PostgreSQL容器。

对数据库进行初始化

对数据库进行初始化,创建表结构:

代码语言:shell
复制
docker run --rm \
--network kong-net \
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=kong-database" \
-e "KONG_PG_USER=konguser" \
-e "KONG_PG_PASSWORD=kongpw" \
kong \
kong migrations bootstrap

其中KONG_PG_HOST环境变量指定为数据库的主机,此处填写其容器名kong-database即可;KONG_PG_USER环境变量填写数据库的用户名;KONG_PG_PASSWORD环境变量填写数据库用户对应的密码。

运行Kong

注意:此处默认操作系统为Debian/Ubuntu,如果是其他系统请查看下面的说明。

代码语言:shell
复制
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_PASSWORD=kongpw" \
-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" \
-e "KONG_LUA_SSL_TRUSTED_CERTIFICATE=/etc/ssl/certs/ca-certificates.crt" \
-v /etc/ssl/certs:/etc/ssl/certs \
-p 80:8000 \
-p 443:8443 \
-p 127.0.0.1:8001:8001 \
-p 127.0.0.1:8444:8444 \
--restart always \
kong

此时访问http://IP/即可发现Kong已经部署成功,如下图所示:

访问http://IP/
访问http://IP/

其他系统的用户请按照以下说明进行部署:

  • CentOS/Fedora/RHEL 7

KONG_LUA_SSL_TRUSTED_CERTIFICATE=/etc/ssl/certs/ca-certificates.crt替换为KONG_LUA_SSL_TRUSTED_CERTIFICATE=/etc/ssl/certs/ca-bundle.crt

  • CentOS/Fedora/RHEL 8

KONG_LUA_SSL_TRUSTED_CERTIFICATE=/etc/ssl/certs/ca-certificates.crt替换为KONG_LUA_SSL_TRUSTED_CERTIFICATE=/etc/ssl/certs/tls-ca-bundle.pem。并且将-v /etc/ssl/certs:/etc/ssl/certs替换为-v /etc/pki/ca-trust/extracted/pem:/etc/ssl/certs

运行Kong管理面板(Konga)

代码语言:shell
复制
docker run -d \
--name konga \
--network kong-net \
-e "TOKEN_SECRET=your_token_secret" \
-e "NODE_ENV=production" \
-p 8007:1337 \
--restart always \
pantsel/konga

此时访问http://IP:8007/即可进入Konga管理面板。第一次访问会引导你进行注册。注册的第一个用户为管理员用户。此时便可以愉快地管理Kong了。

Konga管理面板
Konga管理面板

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Kong简介
  • 部署方法
    • 创建专用网络
      • 拉取相关镜像
        • 创建Kong专用数据库(PostgreSQL)
          • 对数据库进行初始化
            • 运行Kong
              • 运行Kong管理面板(Konga)
              相关产品与服务
              轻量应用服务器
              轻量应用服务器(TencentCloud Lighthouse)是新一代开箱即用、面向轻量应用场景的云服务器产品,助力中小企业和开发者便捷高效的在云端构建网站、Web应用、小程序/小游戏、游戏服、电商应用、云盘/图床和开发测试环境,相比普通云服务器更加简单易用且更贴近应用,以套餐形式整体售卖云资源并提供高带宽流量包,将热门软件打包实现一键构建应用,提供极简上云体验。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档