最近在学习Kong网关,因此根据老习惯,我会将我的学习过程记录下来,一来体系化整理,二来作为笔记供将来翻看。由于我司会直接使用Kong企业版,学习过程中我会使用Kong开源版。

本篇,我们学习如何快速搭建一个Kong实验环境。

搭建方式

目前,我们可以选择多种部署方式,包括:宿主机部署、Docker部署、Kubernetes部署 以及 混合部署。

这里,我们的目的是学习实践,因此选择Docker部署,为了方便,我们选择基于docker compose的一键部署。首先,你需要安装docker engine及docker-compose:

# sudo curl -L "https://github.com/docker/compose/releases/download/1.28.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# sudo chmod +x /usr/local/bin/docker-compose
# docker-compose --version

All-In-One快速部署

我们需要准备一个yml模板文件:

version: "3.8"

volumes:
kong_data: {} networks:
kong-net: services:
#######################################
# Postgres: The database used by Kong
#######################################
kong-database:
image: postgres:10
container_name: kong-postgres
restart: on-failure
networks:
- kong-net
volumes:
- kong_data:/var/lib/postgresql/data
environment:
POSTGRES_USER: kong
POSTGRES_PASSWORD: ${KONG_PG_PASSWORD:-kong}
POSTGRES_DB: kong
ports:
- "5432:5432"
healthcheck:
test: ["CMD", "pg_isready", "-U", "kong"]
interval: 30s
timeout: 30s
retries: 3 #######################################
# Kong database migration
#######################################
kong-migration:
image: ${KONG_DOCKER_TAG:-kong:latest}
command: kong migrations bootstrap
networks:
- kong-net
restart: on-failure
environment:
KONG_DATABASE: postgres
KONG_PG_HOST: kong-database
KONG_PG_DATABASE: kong
KONG_PG_USER: kong
KONG_PG_PASSWORD: ${KONG_PG_PASSWORD:-kong}
depends_on:
- kong-database #######################################
# Kong: The API Gateway
#######################################
kong:
image: ${KONG_DOCKER_TAG:-kong:latest}
restart: on-failure
networks:
- kong-net
environment:
KONG_DATABASE: postgres
KONG_PG_HOST: kong-database
KONG_PG_DATABASE: kong
KONG_PG_USER: kong
KONG_PG_PASSWORD: ${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-database
healthcheck:
test: ["CMD", "kong", "health"]
interval: 10s
timeout: 10s
retries: 10
ports:
- "8000:8000"
- "8001:8001"
- "8443:8443"
- "8444:8444" #######################################
# Konga database prepare
#######################################
konga-prepare:
image: pantsel/konga:latest
command: "-c prepare -a postgres -u postgresql://kong:${KONG_PG_PASSWORD:-kong}@kong-database:5432/konga"
networks:
- kong-net
restart: on-failure
depends_on:
- kong-database #######################################
# Konga: Kong GUI
#######################################
konga:
image: pantsel/konga:latest
restart: always
networks:
- kong-net
environment:
DB_ADAPTER: postgres
DB_URI: postgresql://kong:${KONG_PG_PASSWORD:-kong}@kong-database:5432/konga
NODE_ENV: production
depends_on:
- kong-database
ports:
- "1337:1337"

备注:

(1)该yml文件定义了Kong、PostgreSQL 和 Konga 三个核心组成部分

(2)kong-migration会做Kong的数据库数据初始化操作

(3)kong-prepare会做Konga的数据库数据初始化操作

(3)该yml文件支持自定义环境变量替换当中的Kong镜像名字、PostgreSQL的密码

运行以下命令进行部署:

docker-compose up -d

Konga连接Kong

部署完成后,访问服务器的1337端口即可看到Konga的登录注册页面,首次访问需要创建一个Admin账号,随意输入即可,但密码要大于7位字符。

通过Admin账号登录之后,需要指定Kong的Admin URL让Konga能够连接Kong。这里我们绑定的Kong Admin API端口是8001(http),8444(https,但这里我们实验环境,没有配置SSL证书,因此跳过)。

点击CREATE CONNECTION之后,即可看到首页仪表盘了:

这个仪表盘主要展示了五大类的信息:

  • 连接信息:有多少活动的客户端连接数等
  • 节点信息:Kong的节点名、管理端口等
  • 定时器信息:等待运行 和 正在运行 的定时器
  • 数据库信息:当前的数据库连接信息及端口等
  • 插件信息:开启启用的插件有哪些

看到这里,我们的实验环境就初步完成了。下一篇,我们会尝试配置路由转发,欢迎持续关注。

参考资料

闫观涛,《Kong入门与实践-基于Nginx和OpenRestry的云原生微服务网关》

风起云边,《Kong - Overview》

风一样的程序员,《45张图带你从0玩转Kong Gateway

作者:周旭龙

出处:https://edisonchou.cnblogs.com

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。

Kong入门学习实践(2)实验环境搭建的更多相关文章

  1. 大数据hadoop入门学习之集群环境搭建集合

    目录: 1.基本工作准备 1.虚拟机准备 2.java 虚拟机-jdk环境配置 3.ssh无密码登录 2.hadoop的安装与配置 3.hbase安装与配置(集成安装zookeeper) 4.zook ...

  2. Nginx配置多个基于域名的虚拟主机+实验环境搭建+测试

    标签:Linux 域名 Nginx 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://xpleaf.blog.51cto.com/9 ...

  3. 操作系统内核Hack:(一)实验环境搭建

    操作系统内核Hack:(一)实验环境搭建 三四年前,心血来潮,入手<Orange's:一个操作系统的实现>学习操作系统内核,还配套买了王爽的<汇编语言(第二版)>和<80 ...

  4. 深度学习(TensorFlow)环境搭建:(二)Ubuntu16.04+1080Ti显卡驱动

    前几天把刚拿到了2台GPU机器组装好了,也写了篇硬件配置清单的文章——<深度学习(TensorFlow)环境搭建:(一)硬件选购和主机组装>.这两台也在安装Ubuntu 16.04和108 ...

  5. mininet(一)实验环境搭建

    mininet(一)实验环境搭建 mininet(二)简单的路由实验 mininet(三)简单的NAT实验 最近学习(https://github.com/mininet/openflow-tutor ...

  6. 【转】Xamarin.Android 入门之:Xamarin+vs2015 环境搭建

    Xamarin.Android 入门之:Xamarin+vs2015 环境搭建   一.前言 此篇博客主要写了如何使用搭建xamarin开发的环境,防止我自己万一哪天电脑重装系统了,可以直接看这篇博客 ...

  7. MyBatis学习系列一之环境搭建

    目录 MyBatis学习系列一之环境搭建 MyBatis学习系列二——增删改查 MyBatis学习系列三——结合Spring 学习一个新的知识,首先做一个简单的例子使用一下,然后再逐步深入.MyBat ...

  8. Hadoop学习笔记(3)——分布式环境搭建

    Hadoop学习笔记(3) ——分布式环境搭建 前面,我们已经在单机上把Hadoop运行起来了,但我们知道Hadoop支持分布式的,而它的优点就是在分布上突出的,所以我们得搭个环境模拟一下. 在这里, ...

  9. 深度学习(TensorFlow)环境搭建:(三)Ubuntu16.04+CUDA8.0+cuDNN7+Anaconda4.4+Python3.6+TensorFlow1.3

    紧接着上一篇的文章<深度学习(TensorFlow)环境搭建:(二)Ubuntu16.04+1080Ti显卡驱动>,这篇文章,主要讲解如何安装CUDA+CUDNN,不过前提是我们是已经把N ...

  10. Nutch1.7学习笔记:基本环境搭建及使用

    Nutch1.7学习笔记:基本环境搭建及使用 作者:雨水,时间:2013-10-31博客地址:http://blog.csdn.net/gobitan 说明:Nutch有两个主版本1.x和2.x,它们 ...

随机推荐

  1. C# 13 中的新增功能实操

    前言 今天大姚带领大家一起来看看 C# 13 中的新增几大功能,并了解其功能特性和实际应用场景. 前提准备 要体验 C# 13 新增的功能可以使用最新的 Visual Studio 2022 版本或 ...

  2. SQL语句(一)—— DDL

    SQL 全称 Structured Query Language,结构化查询语言.操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准 . 一.SQL 基础知识 (一)SQL 通用语法 在学 ...

  3. MCP应用docker部署,docker-compose部署

    一.概述 前面几篇文章,MCP应用直接用的python3 server.py运行的,如果服务器重启,进程就会关掉,很不方便. 所以需要使用docker部署,实现开机自启动. 二.docker部署 my ...

  4. Java 中如何判断对象是否是垃圾?不同垃圾回收方法有何区别?

    Java 中如何判断对象是否是垃圾? 在 Java 中,垃圾是指不再被引用的对象.JVM 使用以下两种方法判断对象是否是垃圾: 1. 引用计数法(Reference Counting) 工作原理 每个 ...

  5. 毒瘤idea合集

    给定 \(n,m\) ,求: \[\sum_{i=1}^{n}\sum_{i=1}^{m}max\big(gcd(i,j)^i,lcm(i,j)^j\big) \]

  6. API测试基础之http协议

    http简介: http(超文本传输协议)是一个简单的请求-响应协议,它通常运行在TCP(传输控制协议)之上.它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应.请求和响应消息的头以ASC ...

  7. 基于Vue3搭建ChantGPT前后端端源码及搭建教程-官方接口

    ChantGPT很多,网上很多说的ChantGPT搭建及源码都是假的,无法使用的,自己研究了好几天,搞定了基于Vue3搭建ChantGPT前后端端源码及搭建教程,现在分享出来,有喜欢的朋友自行下载搭建 ...

  8. 理解 C# 中的各类指针

    目录 前言 对象引用(Object Reference) 指针(Pointer) 指针的声明和使用 指针可以指向的位置 可以声明指针的位置 指向值类型变量的指针 指向对象引用的指针 指向 GC Hea ...

  9. 装在U盘或移动固态硬盘里的系统——适用于Ventoy和VirtualBox的Win to go 和 Linux to go 系统制作教程

    写在前面 前段时间, 突然想起了大学期间折腾过的双系统, 又恰逢最近学习工作需要用到Linux系统环境, 用虚拟机又感觉性能跟不上, 因此萌生了一个用移动固态硬盘安装双系统的想法. 照着网络上各位老师 ...

  10. JQuery元素滚动定位及获取元素的scrollTop,clientHeight,scrollHeight

    scrollHeight为滚动DIV的实际总体高度,获取方式为:$(obj)[0].scrollHeight clientHeight为滚动DIV的可见高度,获取方式为:$(obj)[0].clien ...