kong网关部署
软件版本:
Postgresql:9.6 (不使用最新版,是因为 konga 不支持)
Kong:3.4.2
konga:0.14.7 (UI管理界面)
### Postgresql部署
## docker-compose.yml
version: '3'
services:
postgres:
image: postgres:9.6
container_name: postgres_9.6
volumes:
- /home/kong/konga_test_ctw/postgres9.6_data:/var/lib/postgresql/data
environment:
POSTGRES_USER: root #在此填写postgres的用户名
POSTGRES_DB: postgres #在此填写postgres的数据库名,默认是postgres
POSTGRES_PASSWORD: qweqweasdASD #在此填写posgres的数据库密码
ports:
- "5432:5432"
运行后需要创建用户,分别提供给kong、konga两个连接
进入容器:
psql -U root -d postgres
CREATE USER kong WITH PASSWORD 'kong';
CREATE DATABASE kong OWNER kong; CREATE USER konga WITH PASSWORD 'konga';
CREATE DATABASE konga OWNER konga;
### kong3.4.2部署 (https://docs.konghq.com/gateway/3.4.x/install/linux/rhel/)
一、安装kong
yum install -y ./kong-3.4.2.rpm
/etc/kong/可以看到kong.conf.default配置文件模板
cp kong.conf.default kong.conf
vim kong.conf
admin_listen = 0.0.0.0:8001 reuseport backlog=16384, 0.0.0.0:8444 http2 ssl reuseport backlog=16384
nginx_http_include = /etc/kong/nginx/*.kong.conf database = postgres #使用 PostgreSQL 作为数据库
pg_host = 127.0.0.1 # 数据库Ip
pg_port = 5432 # 数据库端口
pg_timeout = 5000 # 数据库Timeout 时间
pg_user = kong # 登录用户.
pg_password = kong # 登录用户密码
pg_database = kong # 连接的数据库名称 proxy_listen = 0.0.0.0:80 reuseport backlog=16384, 0.0.0.0:443 http2 ssl reuseport backlog=16384
二、初始化
kong migrations bootstrap -c /etc/kong/kong.conf
三、启动
kong start -c /etc/kong/kong.conf
四、验证
curl -i http://localhost:8001
### konga管理后台
一、初始化数据库
docker run --rm --link postgres_9.6:postgresql --net kong_default pantsel/konga:0.14.7 -c prepare -a postgres -u postgres://konga:konga@192.168.0.95:5432/konga
解析
--net postgresql-9-6_default :将当前启动容器加入到postgresql的docker网络中,注:容器网络查看命令docker inspect postgres_9.6,如下图就是容器当前的网络名称: --link postgres_9.6:postgresql :将当前启动容器连接到指定容器,--link 连接容器名称:别名 -c prepare -a postgres:必带,初始化数据库参数 -u postgres://konga:kongapassword@postgresql:5432/konga:数据库连接信息 postgres://数据库用户名称:用户密码@[Ip或 容器名称]:端口号/数据库名
二、启动konga
docker run -d -p 1337:1337 -e "DB_ADAPTER=postgres" -e "DB_HOST=192.168.0.95" -e "DB_PORT=5432" -e "DB_USER=konga" -e "DB_PASSWORD=konga" -e "DB_DATABASE=konga" -e "NODE_ENV=production" --name konga pantsel/konga:0.14.7
三、验证
http://192.168.0.95:1337

总结优化容器写法
vim docker-compose.yml version: '3'
services:
postgres:
image: postgres:9.6
container_name: postgres_9.6
restart: always
volumes:
- /home/n8n8/kong/postgres9.6_data:/var/lib/postgresql/data
environment:
POSTGRES_USER: root #在此填写postgres的用户名
POSTGRES_DB: postgres #在此填写postgres的数据库名,默认是postgres
POSTGRES_PASSWORD: qweqweasdASD #在此填写posgres的数据库密码
ports:
- "5432:5432"
konga:
image: pantsel/konga:0.14.7
container_name: konga
environment:
- DB_ADAPTER=postgres
- DB_HOST=192.168.0.95
- DB_PORT=5432
- DB_USER=konga
- DB_PASSWORD=konga
- DB_DATABASE=konga
- NODE_ENV=production
ports:
- "1337:1337"
restart: always
kong网关部署的更多相关文章
- k8s实践 - 如何优雅地给kong网关配置证书和插件。
前言 从去年上半年微服务项目上线以来,一直使用kong作为微服务API网关,整个项目完全部署于k8s,一路走来,对于k8s,对于kong,经历了一个从无到有,从0到1的过程,也遇到过了一些坎坷,今天准 ...
- API网关之Kong网关简介
1. Kong简介 那么,Kong是一个什么东东呢?它是一个开源的API网关,或者你可以认为它是一个针对API的一个管理工具.你可以在那些上游service之上,额外去实现一些功能.Kong是开源的, ...
- kong网关命令(一)
上次在虚拟机里安装kong网关后,因为版本(1.4)太高,目前Kong Dashboard无法支持, 后续发现Git上有个开源工具Kong admin ui,下载源码并部署到NGINX. 但是发现使用 ...
- 在K3s上使用Kong网关插件,开启K3s的无限可能!
我的工作中很重要的一部分是参加各种各样的技术会议.最近参加的是去年11月的北美KubeCon,在会议的最后一天,所有人都焦头烂额,我也一直机械地向不同的人重复我的自我介绍.后来,我已经十分烦躁,决定逃 ...
- Kong网关安装自定义插件
安装自定义插件需要注意kong网关的版本要求!! 下面以安装Skywalking插件为例,要求Kong网关是2.2及以上版本,https://github.com/apache/skywalking- ...
- 使用KONG网关实现接口迁移的灰度验证
在我们对一个API站点进行微服务化的过程中,使用KONG网关可以实现以下几个效果: 1. 业务线无感知,其实内部已经被Kong转到其他站点上执行了,这对业务线特别友好. 2. 可以实现租户级/接口级灰 ...
- kong网关: service+route+upstream
对于刚开始学习kong网关,总是一脑子浆糊迷迷糊糊.虽然已经安装好,但却不知道接下来如何下手, 因为包含项太多:service.routes.upstream.consumer.plugins等等.一 ...
- MacOs下安装Kong网关
写在前面: 持续记录一下自己在解决api网关kong上的各种问题. 1.关于Kong网关 这是官网地址:https://konghq.com/ 2.通过brew安装postgres 因为kong的数据 ...
- Kong网关安装之Docker版(2)
1.安装kong管理工具:konga或者kong-dashboard,这里选择konga 拉取konga镜像: sudo docker pull pantsel/konga:0.14.4 初始化kon ...
- Kong网关安装之Docker版(1)
前言: Kong 是天生的微服务网关.她的官方简介是:Kong 是一个云原生,高效,可扩展的分布式 API 网关. 自 2015 年在 github 开源后,广泛受到关注,目前已收获 1.9w+ 的 ...
随机推荐
- Uncaught (in promise) NavigationDuplicated: Avoided redundant navigation to current location: "/xxx". at createRouterError 的说明和解决
错误说明 Uncaught (in promise) NavigationDuplicated: Avoided redundant navigation to current location: & ...
- 开发日志:Kylin麒麟操作系统部署ASP.NET CORE
需求场景: 我需要部署的项目是在Windows上开发的,目标框架为.net core 6.0 因此我们需要先在kylin上部署项目运行所需要的环境. 借助百度词条,先看看Kylin是什么: 服务器资源 ...
- Oracle、达梦:数据库大小写不敏感,但是又要区分大小写敏感(默认敏感)
一. 艹,这个需求就很操蛋. 实现 SELECT * FROM T1 WHERE REGEXP_LIKE(field, '.*value.*', 'c'); 在 Oracle 数据库中使用 REGEX ...
- Debian(WSL)安装gprMax教程 - 适用于Windows系统
原文发布于:https://blog.zhaoxuan.site/archives/33.html: 第一时间获取最新文章请关注博客个人站:https://blog.zhaoxuan.site. 1. ...
- Jetbrains系列产品最新激活方法[持续更新]
Jetbrains系列产品最新激活方法[持续更新] 2021.3.4系列激活 方法一: 2021.3.4参考文章: https://www.exception.site/essay/how-to-fr ...
- c语言编译系统工作原理
c语言编译系统内部的工作原理 程序生命周期概述 一个程序的生命周期可以被分成四个部分: 创建 编译 运行 退出 以一个简单的 helloworld.c 程序为例: #include<stdio. ...
- 从需求角度介绍PasteSpider(K8S平替部署工具适合于任何开发语言)
你是否被K8S的强大而吸引,我相信一部分人是被那复杂的配置和各种专业知识而劝退,应该还有一部分人是因为K8S太吃资源而放手! 这里介绍一款平替工具PasteSpider,PasteSpider是一款使 ...
- 微信小程序报错“Component “页面路径“ does not have a method “ 方法名“ to handle event tap的
我遇到这个问题的原因是,data属性把methods包括在里面了,把methods当成了一个字段,所以就相当于没写methods属性,里面的方法就识别不了了.解决办法就是把data的后括号打在meth ...
- 数据结构(C++)--学习单链表时发现的一些小坑
基于类的链表类无相应构造函数报错 #include<bits/stdc++.h> using namespace std; const int MaxSize = 10; template ...
- Linux之top命令分析
第一行: top - 04:25:26 当前系统时间 up 3 min, 系统已经运行的时间(不间歇的运行) 1 user, 当前登录系统的用户数 load average: 0.01, 0.03, ...