KONG-部署

前言:

本人因。。。。

介绍:

1.nginx是模块化设计的反向代理软件,C语言开发的

2.openresty是以nginx为核心的web开发平台,可以解析并执行lua脚本

3.kong是一个openresty应用,就是一个api -gateway

4.openresty与lua的联系类似于jvm和java的联系;但是openresty是基于nginx,主要用于web、api 之类的应用

个人理解:

kong 以 nginx 为核心主要实现反向代理和流量控制

通过nginx模块也可以实现反向代理和流量控制,但是过于繁杂,最重要的是需要人为的去更改代理和流量的规则,而kong则会动态的调整代理和流量的规则;

开发人员写一个接口想让外部访问,自动去找kong注册kong就会生成相应的规则,大大降低了运维的繁杂工作

一、部署kong

有两种部署方式,本文采用都基于postgresql数据库(可更换),本文只列举一种(”生产“)

1.创建docker网络

docker network create kong-net

2.运行postgresql数据库

docker-run:

docker run -d --name=kong-database --network=kong-net -p 5432:5432 -e POSTGRES_USER="kong" -e POSTGRES_DB="kong" -e "POSTGRES_HOST_AUTH_METHOD=trust" --restart always postgres:9.6

 docker-compose:

version: "3"
service:
  postgresql:
    container_name: kong-database
    image: postgres:9.6
    ports:
      - 5432:5432
    environment:
      POSTGRES_USER: "kong"
      POSTGRES_DB: "kong"
    restart: always
    networks:
      - kong-net
    

 3.初始化数据库

docker-run:

docker run --rm --network=kong-net -e "KONG_DATABASE=postgres" -e "KONG_PG_HOST=kong-database" -e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" kong:latest kong migrations bootstrap

docker-compose:

version: "3"
service:
  postgresql-init:
    image: kong:latest
    networks:
      - kong-net
    environment:
      KONG_DATABASE: "postgres"
      KONG_PG_HOST: "kong-database"
      KONG_CASSANDRA_CONTACT_POINTS: "kong-database"
    command: [kong,migrations,bootstrap]

 4.运行kong

注:管理端口8001

docker-run:

docker run -d --name=kong --network=kong-net -e "KONG_DATABASE=postgres" -e "KONG_PG_HOST=kong-database" -e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" -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 -p 8443:8443 -p 8444:8444 -p 8001:8001 --restart always kong:latest

 docker-compose:

version: "3"
service:
  kong:
    container_name: kong
    networks:
      - kong-net
    environment:
      KONG_DATABASE: "postgres"
      KONG_PG_HOST: "kong-database"
      KONG_CASSANDRA_CONTACT_POINTS: "kong-database"
      KONG_PROXY_ACCESS_LOG: "/dev/stdout"
      KONG_ADMIN_ACCESS_LOG: "/dev/stdout"
      KONG_PROXY_ERROR_LOG: "/dev/stderr"
      KONG_ADMIN_ERROR_LOG: "/dev/stderr"
      KONG_ADMIN_LISTEN: "0.0.0.0:8001,0.0.0.0:8444 ssl"
    ports:
      - 8000:8000
      - 8443:8443
      - 8444:8444
      - 8001:8001
    restart: always 
    image: kong:latest

5.部署konga

---创建konga库

docker-run:

docker run --rm pantsel/konga:latest -c prepare -a postgres -u postgresql://kong:@数据库IP地址:端口/konga

---运行konga

docker-run :

docker run -d -p 1337:1337 --network kong-net -e "TOKEN_SECRET=P@ssw0rd" -e "DB_ADAPTER=postgres" -e "DB_URL=postgresql://kong:@kong-database:5432/konga" -e "NODE_ENV=production" --name=konga pantsel/konga

docker-compose:

version: "3"
service:
  konga:
    image: pantsel/konga
    container_name: konga
    ports:
      - 1337:1337
    networks:
      - kong-net
    environment:
      TOKEN_SECRET: "P@ssw0rd"
      DB_ADAPTER:"postgres"
      DB_URL: "postgresql://kong:@kong-database:5432/konga"
      NODE_ENV: "production"
    resoures:
      resources:
        limits:
           cpus: '2'
           memory: 2G
        reservations:
           cpus: '0.5'
           memory: 200M

 访问konga:

ip+port

创建管理账号

 登录

 添加被管理的kong

扩展:

部署psotgresql管理界面

docker run -d -p 8009:80 --name=pgadmin --network=kong-net --link kong-database:kong-database -e "PGADMIN_DEFAULT_EMAIL=admin@1000phone.cn" -e "PGADMIN_DEFAULT_PASSWORD=p@ssw0rd" --restart always -d dpage/pgadmin4

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值