API网关Kong系列(二)部署
部署环境:
[OS]
centos 6.8(如果是centos6.5,请自行先升级到6.8,否则不支持docker)
[Docker]
Client version: 1.7.1
Client API version: 1.19
推荐使用Docker engine 1.9以上版本,支持docker-compose
[Kong]
Version: 0.9.9
由于众所周知的原因,国内链接dockerhub以及github都有不同程度的问题,建议用daocloud.io的docker镜像加速服务提高image pull的速度
部署过程
1.部署数据库
kong支持2类数据库 cassandra 和 postgres,这边应用场景不大,所以使用postgres
使用命令:
sudo docker run -d \
--name kong-database \
--restart=always \
-p 5432:5432 \
-e POSTGRES_USER=kong \
-e POSTGRES_DB=kong \
-v /var/lib/containers/kong/data:/var/lib/postgresql/data \
postgres
完成后容器自动启动
P.S:注意最后 volume的映射,将容器内数据库映射到了本地/var/lib/containers/kong/data下做持久化用,如果迁移的时候不要忘记了挪数据
2.部署kong服务
sudo docker run -d \
--name kong-core \
--restart=always \
-p 8001:8001 \
-p 20802:8443 \
-p 20801:8000 \
-p 7946:7946 \
-p 7946:7946/udp \
--link kong-database:kong-database \
-e KONG_DATABASE=postgres \
-e KONG_PG_HOST=kong-database \
-v /etc/localtime:/etc/localtime:ro \
-v /etc/letsencrypt:/etc/letsencrypt:ro \
-v /usr/local/container/kong/kong.conf:/usr/local/kong/kong.conf:ro \
-v /usr/local/container/kong/nginx-kong.conf/:/usr/local/kong/nginx-kong.conf:ro \
kong
配置SSL:
这里使用letsencrypt的免费证书,如何生成,见另一篇文章
sudo vi /usr/local/container/kong/kong.conf
1.修改ssl_cert_key为你的私钥pem(这边路径对应上面的 /etc/letsencrypt/live/your.domain.com/privkey.pem)
2.修改ssl_cert为你的证书 pem(这边路径对应上面的 /etc/letsencrypt/live/your.domain.com/fullchain.pem)
sudo vi /usr/local/container/kong/nginx-kong.conf
1.修改 ssl_certificate_key 为你的私钥pem(这边路径对应上面的 /etc/letsencrypt/live/your.domain.com/privkey.pem)
2.修改 ssl_certificate 为你的证书 pem(这边路径对应上面的 /etc/letsencrypt/live/your.domain.com/fullchain.pem)
完成后进入容器:
sudo docker exec -it kong-core /bin/bash
重新加载配置
kong reload
退出容器
exit
P.S:
1.这里先将时区修正下,如果不对的话 ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime (否则会由于服务端/客户端时间不一致影响之后的 hmac-sha1插件的验证)
2.kong.conf以及nginx-kong.conf是为了之后配置ssl使用,挂载为readOnly,初次启动的时候先根据kong默认的,建立起这2个文件,否则如果不生成文件就启动会发生问题,也可以第一次run的时候先不要加载为ro,让它自动生成,然后rm掉这个容器,重新挂载为ro再启动一下,那本地就会先自动生成了。最后对这两个文件chomd 700。
3.部署kong-dashboard
为方便通过ui增改插件,装一个方便的插件ui
sudo docker run -d \
--name kong-ui \
--restart=always \
--link kong-core:kong-core \
-p 8080:8080 \
pgbi/kong-dashboard
启动后Kong node URL,输入上面 link过的kong-core(这里就是"kong-core")名称(我之前尝试用ip什么都不太正常)
备注 docker-compose.yml
1 version: "2"2 3 services:4 kong-database:5 image: postgres6 container_name: kong-database7 restart: always8 ports:9 - "5432:5432"
10 environment:
11 - POSTGRES_USER=kong
12 - POSTGRES_DB=kong
13 volumes:
14 - "/var/lib/containers/kong/data:/var/lib/postgresql/data"
15 kong:
16 image: kong:0.9.9
17 container_name: kong-core
18 environment:
19 - KONG_DATABASE=postgres
20 - KONG_PG_HOST=kong-database
21 restart: always
22 ports:
23 - "20801:8000"
24 - "20802:8443"
25 - "8001:8001"
26 - "7946:7946"
27 - "7946:7946/udp"
28 links:
29 - kong-database
30 volumes:
31 - "/etc/localtime:/etc/localtime:ro"
32 - "/etc/letsencrypt:/etc/letsencrypt:ro"
33 - "/usr/local/container/kong/kong.conf:/usr/local/kong/kong.conf:ro"
34 - "/usr/local/container/kong/nginx-kong.conf/:/usr/local/kong/nginx-kong.conf:ro"
35 kong-ui:
36 image: pgbi/kong-dashboard
37 container_name: kong-ui
38 restart: always
39 links:
40 - kong-core
41 ports:
42 - "8080:8080"
API网关Kong系列(二)部署相关推荐
- API网关Kong(二):Kong与Kubernetes集成的方法
作者: 李佶澳 转载请保留:原文地址 发布时间:2018-09-30 16:07:13 +0800 说明 先说组成 控制平面与数据平面 CustomResourceDefinitions 开始 ...
- API网关Kong系列(一)初识
最近工作需要,加上国内Kong的文章相对缺乏(搜来搜去就那么两篇文章),而且官方文档在某些demo上也有一些过时的地方,遂提笔记录下这些,希望能有帮助. 先随大流介绍下KONG(主要参考官网): 官方 ...
- 开源API网关Kong基本介绍和安装验证
本文将介绍开源API网关Kong.在GitHub搜索API网关类的开源产品,可以看到Kong网关常年都是排第一的位置,而且当前很多都有一定研发能力的企业在API网关产品选项的时候基本也会选择Kong网 ...
- 开源syslog服务器_开源API网关Kong基本介绍和安装验证
今天准备介绍下开源API网关Kong,在Gtihub搜索API网关类的开源产品,可以看到Kong网关常年都是排第一的位置,而且当前很多都有一定研发能力的企业在API网关产品选型的时候基本也会选择Kon ...
- API网关Kong(三):功能梳理和插件使用-基本使用过程
作者: 李佶澳 转载请保留:原文地址 发布时间:2018-10-10 14:37:53 +0800 说明 Kong的Admin API Kong定义的资源之间的关联关系 使用过程了解 先了解下 ...
- API 网关 Kong 实战
1.Kong 介绍 Kong 是一款基于 OpenResty(Nginx + Lua 模块)编写的高可用.易扩展的,由 Mashape 公司开源的 API Gateway 项目.Kong 是基于 NG ...
- .Net Core微服务入门——Ocelot API网关接入(二)
Net Core微服务入门--Ocelot API网关接入(二) 我们先接入Consul,实现服务发现 服务发现 1.引入 Ocelot.Provider.Consul 包 2.修改ocelot.js ...
- 开源API网关Kong
开源API网关Kong Kong 是一个在 Nginx 运行的 Lua 应用程序,由 lua-nginx-module 实现.Kong 和 OpenResty 一起打包发行,其中已经包含了 lua-n ...
- 微服务API网关-kong初探
一 概述 Kong是一个clould-native.快速的.可扩展的.分布式的微服务抽象层(也称为API网关.API中间件或在某些情况下称为服务网格)框架.更确切地说,Kong是一个在Nginx中运行 ...
最新文章
- 从Google代码库找到的好东西
- mysql 查看当前连接数 和 最大连接数
- 【自动驾驶】31.【相机外参标定】、【相机障碍物后处理】【地面的2D点反投影到3D】的过程对比
- HDU - 2050 折线分割平面(规律题)
- 有一个1,2,3....49 的数组,通过控制台显示为7行7列的,并且里面的数据时随机的代码...
- Android之给ImageView添加点击效果
- Spring 集成web环境
- 最常见的水平拆分规则
- 单词字符的one-hot编码
- 怎么安装python3.7 setuptools与pip_python3之安装、pip、setuptools
- Android:RGB颜色对照表
- 眼图在通信系统中有什么意义_OA协同办公系统存在的意义是什么?协同OA的显着优势又在哪儿?...
- 【20211206】【信号处理】时频分析 —— 短时傅里叶变换(STFT)
- Leftist Heaps 习题解
- 年薪15万的80后小本科:只要6分钟,告诉你少走6年弯路
- 《惢客创业日记》2019.01.23(周三) 太苦涩的人生也会让人麻木
- PHP管理虚拟机,用phpvirtualbox管理vbox虚拟机
- [大数据文章之其四] 概率数据结构简介
- Angular2+ 属性绑定
- n-魔方阵(找规律)
热门文章
- es6学习笔记-module_v1.0_byKL
- 在VMware上装苹果系统后全屏
- 高手快帮忙,关于replace和正者表达式的问题
- 几种优化方法的Matlab实现
- OpenCV学习记录(一):使用haar分类器进行人脸识别
- linux下修改MySQL 密码
- Linux arm9 设置中断向量表,STM32学习笔记之中断向量表,MDK程序启动分析
- mysql分库分表风险_数据库分库分表存在的问题及解决方案
- 您没有权限来打开应用程序_苹果建议:除非应用程序无响应,否则不要滑动强制退出...
- 石头扫地机器人加速异响_米家扫地机器人有异响怎么办