php是最好的语言

安装kong api网关 和 配置动态负载均衡

一、安装kong 

docker network create kong-net


docker volume create kong-volume


docker run -d --name kong-database  --network=kong-net -p 5432:5432 -v kong-volume:/var/lib/postgresql/data -e "POSTGRES_USER=kong" -e "POSTGRES_DB=kong" -e "POSTGRES_PASSWORD=kong" postgres:9.6 #start


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



docker run -d --name kong --network=kong-net -e "KONG_DATABASE=postgres" -e "KONG_PG_HOST=kong-database" -e "KONG_PG_PASSWORD=kong" -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 8001:8001 -p 8444:8444 -p 8010-8019:8010-8019 kong:latest  #start


#http://127.0.0.1:8001/ 访问出现一串json 说明正常




二、安装konga(kong的开源ui界面)


docker volume create konga-postgresql



docker run -d --name konga-database --network=kong-net -p 5433:5432 -v konga-postgresql:/var/lib/postgresql/data -e "POSTGRES_USER=konga" -e "POSTGRES_DB=konga" -e "POSTGRES_PASSWORD=konga" postgres:9.6 # start


docker run --rm --network=kong-net pantsel/konga:latest -c prepare -a postgres -u postgres://konga:konga@konga-database:5432/konga


docker run -d -p 1337:1337 --network kong-net -e "DB_ADAPTER=postgres" -e "DB_URI=postgres://konga:konga@konga-database:5432/konga" -e "NODE_ENV=production" -e "DB_PASSWORD=konga" --name konga pantsel/konga #start


#http://127.0.0.1:1337/ 可以进入ui界面 

#进入后需要配置kong的访问地址   #Name:kong(随意)   Kong Admin URL:http://127.0.0.1:8001/





三、动态负载均衡实现 (可以使用ui 界面直接配置 一下是通过命令配置)



参照nginx负载均衡 (以下是咱们使用nginx实现负载均衡的配置)

upstream tulingmall-product-upstream{

server 192.168.65.190:8867 weight=100;

server 192.168.65.190:8868 weight=100;

}

server {

listen 80;

#server_name  www.usc.com; 

localtion /pms {

proxy_pass http://tulingmall-product-upstream;

}

}



#接下来我们用kong 实现以上nginx的配置实现 (如果curl执行报错 应该是环境不支持 百度自行调整)

#创建一个upstream

curl -X POST http://127.0.0.1:8001/upstreams --data "name=tulingmall-product-upstream"


#创建两个upstream下的target

curl -X POST http://127.0.0.1:8001/upstreams/tulingmall-product-upstream/targets --data "target=192.168.65.190:8867" --data "weight=100"

curl -X POST http://127.0.0.1:8001/upstreams/tulingmall-product-upstream/targets --data "target=192.168.65.190:8868" --data "weight=100"


#创建 service

curl -X POST http://127.0.0.1:8001/services --data "name=tulingmall-product" --data "host=tulingmall-product-upstream" --data "path=/pms"



#创建 route

curl -X POST http://127.0.0.1:8001/services/tulingmall-product/routes --data "name=tulingmall-product-route" --data "paths[]=/pms"


作者:xTao 分类:LNMP 浏览:2564 评论:0