新闻、帮助、产品更新动态

最新的业界新闻,产品系统更新开发动态,帮助教程和活动发布

使用Docker部署云原生API网关Kong

发布日:2022-04-23 14:37       阅读数:

Kong是一款云原生(cloud-native)、平台无关(platform-agnostic)、可扩展(scalable)的 API 网关,以通过插件实现的高性能和可扩展性而著称。
 
通过提供代理、路由、负载平衡、运行状况检查、身份验证等功能,Kong可以作为中心层轻松协调微服务或传统API流量。
 
用Kong作为您的API网关好处多多,赶紧将它部署到您的轻量应用服务器吧~
 
部署方法
创建专用网络
在Docker中创建Kong的专用网络:
docker network create kong-net
此时我们创建了一个名为kong-net的专用网络。
 
拉取相关镜像
通过以下命令拉取Kong相关镜像:
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)
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容器。
 
对数据库进行初始化
对数据库进行初始化,创建表结构:
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,如果是其他系统请查看下面的说明。
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已经部署成功,如下图所示:

其他系统的用户请按照以下说明进行部署:
 
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)
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了。


 


编辑:航网科技   来源:腾讯云

本文版权归原作者所有 转载请注明出处

联系我们

客服部:深圳市龙华区龙胜商业大厦5楼B5区

业务部:深圳市南山区讯美科技广场2栋12楼1202

资质证书

  • Copyright © 2011-2020 www.hangw.com. All Rights Reserved 深圳航网科技有限公司 版权所有 增值电信业务经营许可证:粤B2-20201122 - 粤ICP备14085080号

    在线客服

    微信扫一扫咨询客服


    全国免费服务热线
    0755-36300002

    返回顶部