docker部署kong网关

docker部署kong网关

  1. 依赖环境

    序号 名称 版本
    1 CentOS 7.9 3.10.0-1160.25.1.el7.x86_64
    2 Docker 20.10.7
    3 Kong Gateway 2.4.1.0
    4 PostgreSQL 9.6
  2. 创建Kong Gateway

    官方Docker方式安装文档

    1. 下载Kong Gateway Docker镜像

      # 下载镜像
      docker pull kong/kong-gateway:2.4.1.0-alpine
      
      # 重新打标签
      docker tag kong/kong-gateway:2.4.1.0-alpine kong-ee
      
      # 验证结果
      docker image ls
      
    2. 创建基础网络

      docker network create kong-ee-net
      
    3. 创建数据库

      docker run -d --name kong-ee-database \
      --network=kong-ee-net \
      -p 5432:5432 \
      -e "POSTGRES_USER=kong" \
      -e "POSTGRES_DB=kong" \
      -e "POSTGRES_PASSWORD=kong" \
      postgres:9.6
      
    4. 初始化数据库

      docker run --rm --network=kong-ee-net \
      -e "KONG_DATABASE=postgres" \
      -e "KONG_PG_HOST=kong-ee-database" \
      -e "KONG_PG_PASSWORD=kong" \
      -e "KONG_PASSWORD=kong" \
      kong-ee kong migrations bootstrap
      
    5. 启动Kong Gateway服务

      docker run -d --name kong-ee --network=kong-ee-net \
      -e "KONG_DATABASE=postgres" \
      -e "KONG_PG_HOST=kong-ee-database" \
      -e "KONG_PG_PASSWORD=kong" \
      -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://0.0.0.0:8002" \
      -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-ee
      
    6. 验证Kong Gateway服务

      # 验证admin管理后台服务端口,正常则返回200 OK
      curl -i -X GET --url http://0.0.0.0:8001/services
      
      # 验证Kong Manager是否启动,正常则返回200 OK
      curl -I -XGET http://0.0.0.0:8002
      # 如果访问正常则使用浏览器访问<http://kong_gateway_ipaddr:8002>验证页面是否正常
      
  3. 配置服务

    1. 注册服务

      curl -i -X POST --url http://0.0.0.0:8001/services/ --data 'name=baidu-service' --data 'url=http://www.baidu.com'
      
    2. 添加路由

      curl -i -X POST --url http://localhost:8001/services/baidu-service/routes --data 'hosts[]=baidu.com'
      
    3. 验证服务

      curl -i -X GET --url http://localhost:8000/ --header 'Host: baidu.com'
      

    经过测试总结如下:

    • “注册服务”类似于Nginx中定义upstream反向代理服务器;

    • “添加路由”类似于Nginx中Server配置段,data中到hosts类似于 server_name;

      upstream baidu-service {
          server www.baidu.com;
      }
      
      server {
          server_name baidu.com;
          proxy_pass baidu-service;
      }
      
上一篇:cl-web-crawler包的概要解读


下一篇:java基础05:包机制