网关kong,docker方式安装和使用

1 docker方式启动项目

1.1下载docker-compose

docker-compose2.2.2.zip
或者

curl -L https://github.com/docker/compose/releases/download/1.25.1-rc1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

1.2修改docker-compose.yml

version: '3'
services: 
  kong-database:
    image: postgres:9.6
    restart: always  #每次总是启动
    networks: 
      - kong-net
    environment:
      POSTGRES_USER: kong
      POSTGRES_DB: kong
      POSTGRES_PASSWORD: kong
    ports:
      - "5432:5432"
#######################
# 执行数据库迁移
######################
  kong-migration:
    image: kong:latest
    command: "kong migrations bootstrap"
    networks: 
      - kong-net
    restart: on-failure
    environment:
      - KONG_DATABASE=postgres
      - KONG_PG_DATABASE=kong
      - KONG_PG_PASSWORD=kong
      - KONG_PG_HOST=kong-database
    links: 
      - kong-database #连接的是kong-database服务的
    depends_on:
      - kong-database #依赖于kong-database服务

#####################
# kong gateway
#####################
  kong:
    image: kong:latest
    restart: always
    networks:
      - kong-net
    environment:
      KONG_DATABASE: postgres
      KONG_PG_HOST: kong-database
      KONG_PG_PASSWORD: kong
      KONG_PROXY_LISTEN: 0.0.0.0:8000
      KONG_PROXY_LISTEN_SSL: 0.0.0.0:8443
      KONG_ADMIN_LISTEN: 0.0.0.0:8001
    depends_on:
      - kong-migration
    links: 
      - kong-database
    healthcheck:
      test: ["CMD", "curl", "-f", "http://kong:8001"]
      interval: 5s
      timeout: 2s
      retries: 15
    ports:
      - "8001:8001"
      - "8000:8000"
      - "8443:8443"
#######################
#以下两个是konga  GUI
#######################
  konga-prepare:
    image: pantsel/konga:latest
    command: "-c prepare -a postgres -u postgresql://kong:kong@kong-database:5432/konga"  #注意是用户名:密码@数据库服务名称:端口
    networks:
      - kong-net
    restart: on-failure
    links:
      - kong-database
    depends_on:
      - kong        #依赖kong服务
      - kong-database #依赖kong-database服务

  konga:
    image: pantsel/konga:latest
    restart: always
    networks:
      - kong-net
    environment:
      DB_ADAPTER: postgres
      DB_HOST: kong-database
      DB_USER: kong
      DB_DATABASE: konga
      DB_PASSWORD: kong #必须加上密码,不然会失败
    depends_on:
      - kong
      - kong-database
    ports:
      - "1337:1337"
networks:
  kong-net:
    driver: bridge


1.3编写快捷脚本

#使用说明,用来提示输入参数
usage() {
	echo "Usage: sh 执行脚本.sh [init|start|stop|rm]"
	exit 1
}

init(){
	docker-compose up -d 
}

start(){
	docker-compose up -d kong-database kong konga
}

#关闭所有模块
stop(){
	docker-compose stop
}

#删除所有模块
rm(){
	docker-compose rm
}

#根据输入参数,选择执行对应方法,不输入则执行使用说明
case "$1" in
"init")
	init
;;
"start")
	start
;;
"stop")
	stop
;;
"rm")
	rm
;;
*)
	usage
;;
esac

1.4 脚本使用

使用之前授权 chmod +x start.sh

#初始化
./start.sh init
#停止
./start.sh stop
#删除
./start.sh rm
#启动
./start.sh start

2 konga的配置和使用

进入网页 ip:1337
初次进入需要进行配置,需要注意的是Kong Admin URL需要写ip:8001 ,因为docker启动的kong的端口为8001
在这里插入图片描述

2.1 创建service,设置路由规则

是抽象层面的服务,他可以直接映射到一个物理服务 (host 指向 ip + port),也可以指向一个 upstream 来做到负载均衡。通俗说,这个service就是后台访问接口配置。

2.1.1 创建Test Service,设置路由规则

(1)创建service

在这里插入图片描述
各个选项含义如下:
在这里插入图片描述

(2)添加route路由

把到网关的路由匹配到指定service
在这里插入图片描述

在这里插入图片描述
各个选项含义如下:
在这里插入图片描述

(3)之后访问,ip:8000/test ,会直接跳转到百度首页。

2.1.1 指向负载均衡

(1)新建Upstreams,

在这里插入图片描述
需要注意这里的Name后续会用到,用作跟service的联系。

####(2)新建Targets,输入ip:端口号
在这里插入图片描述

在这里插入图片描述

(3)将service指向的host改为Upstreams的Name

在这里插入图片描述

参考文章:
docker-compose安装Kong网关Konga教程
网关服务Kong和konga介绍安装使用教程
konga添加service和rouce详解
【kong系列二】之 kong的负载均衡配置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值