Go微服务: 基于Docker搭建Kong网关环境

概述

  • 在当今的微服务架构中,API网关扮演着至关重要的角色,它作为系统的统一入口
  • 负责处理所有内外部请求,实现路由转发、负载均衡、安全控制、限流熔断等多种功能
  • Kong,作为一个开源、高性能、可扩展的API网关,凭借其强大的插件系统和易于部署的特性,成为了众多企业和开发者的首选
  • Kong的插件架构使得其功能扩展变得非常简单,用户可以根据自己的需求选择合适的插件来满足业务需求
  • 在微服务架构日益盛行的今天,API网关成为了连接客户端与后端服务的关键组件
  • Kong作为一款高性能、可扩展的API网关,凭借其强大的功能和灵活的插件机制,成为了许多企业的首选

环境搭建

1 )准备相关镜像

  • $ docker pull postgres:13
  • $ docker pull kong/kong-gateway:3.7.0.0

2 )创建专属docker网络

  • $ docker network create kong-net

3 ) 启动 PostgreSQL 容器

docker 复制代码
docker run -d --name kong-database \
 --network=kong-net \
 -p 5432:5432 \
 -e "POSTGRES_USER=kong" \
 -e "POSTGRES_DB=kong" \
 -e "POSTGRES_PASSWORD=kongpass" \
 postgres:13

4 ) 准备 Kong 数据库

docker 复制代码
docker run --rm --network=kong-net \
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=kong-database" \
-e "KONG_PG_PASSWORD=kongpass" \
-e "KONG_PASSWORD=test" \
kong/kong-gateway:3.7.0.0 kong migrations bootstrap

5 ) 启动 Kong 网关容器

docker 复制代码
docker run -d --name kong-gateway \
--network=kong-net \
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=kong-database" \
-e "KONG_PG_USER=kong" \
-e "KONG_PG_PASSWORD=kongpass" \
-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" \
-e "KONG_ADMIN_GUI_URL=http://localhost:8002" \
-e KONG_LICENSE_DATA \
-p 8000:8000 \
-p 8443:8443 \
-p 8001:8001 \
-p 8444:8444 \
-p 8002:8002 \
-p 8445:8445 \
-p 8003:8003 \
-p 8004:8004 \
kong/kong-gateway:3.7.0.0
  • 注意,这里的 KONG_LICENSE_DATA 是可选的,可以不用添加
  • 如果有企业版, 则填入 license 作为环境变量
    • $ export KONG_LICENSE_DATA='{"license":{"payload":{"admin_seats":"1","customer":"Example Company, Inc","dataplanes":"1","license_creation_date":"2017-07-20","license_expiration_date":"2017-07-20","license_key":"00141000017ODj3AAG_a1V41000004wT0OEAU","product_subscription":"Konnect Enterprise","support_plan":"None"},"signature":"6985968131533a967fcc721244a979948b1066967f1e9cd65dbd8eeabe060fc32d894a2945f5e4a03c1cd2198c74e058ac63d28b045c2f1fcec95877bd790e1b","version":"1"}}'
    • 上述只是 官方提供的一个 example
    • 有则,可选填入

验证安装

  • $ curl -i -X GET --url http://localhost:8001/services

    ts 复制代码
    HTTP/1.1 200 OK
    Date: Fri, 31 May 2024 00:09:57 GMT
    Content-Type: application/json; charset=utf-8
    Connection: keep-alive
    Access-Control-Allow-Origin: http://localhost:8002
    X-Kong-Admin-Request-ID: 53c753455d4d5616aea80450a1497b62
    vary: Origin
    Access-Control-Allow-Credentials: true
    Content-Length: 23
    X-Kong-Admin-Latency: 634
    Server: kong/3.7.0.0-enterprise-edition
  • 出现以上200就是安装成功了

进入 Kong Manager

默认是不需要密码登录的,如果需要配置用户登录,可以在下面进行配置

之后,我们可以进行相关的配置了

如果需要开通 企业版,可以体验更多功能

相关推荐
ladymorgana3 小时前
【docker】修改 MySQL 密码后 Navicat 仍能用原密码连接
mysql·adb·docker
有点小帅得平哥哥3 小时前
本地部署index-tts并且通过docker做成镜像
docker·index-tts
小张是铁粉6 小时前
docker学习二天之镜像操作与容器操作
学习·docker·容器
烟雨书信6 小时前
Docker文件操作、数据卷、挂载
运维·docker·容器
IT成长日记6 小时前
【Docker基础】Docker数据卷管理:docker volume prune及其参数详解
运维·docker·容器·volume·prune
这儿有一堆花6 小时前
Docker编译环境搭建与开发实战指南
运维·docker·容器
LuckyLay6 小时前
Compose 高级用法详解——AI教你学Docker
运维·docker·容器
Uluoyu6 小时前
redisSearch docker安装
运维·redis·docker·容器
IT成长日记10 小时前
【Docker基础】Docker数据持久化与卷(Volume)介绍
运维·docker·容器·数据持久化·volume·
热爱生活的猴子10 小时前
阿里云服务器正确配置 Docker 国内镜像的方法
服务器·阿里云·docker