首页 > 其他分享 >Kong入门学习实践(2)实验环境搭建

Kong入门学习实践(2)实验环境搭建

时间:2023-06-13 22:56:01浏览次数:45  
标签:入门 database Kong kong PG KONG ####################################### 搭建

最近在学习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

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

标签:入门,database,Kong,kong,PG,KONG,#######################################,搭建
From: https://www.cnblogs.com/edisonchou/p/edc_kong_learning_notes_chap2.html

相关文章

  • Redis入门 – Jedis存储Java对象 - (Java序列化为byte数组方式)
     Redis入门–Jedis存储Java对象-(Java序列化为byte数组方式) 在Jedis开发中,我们很多时候希望直接把一个对象放到Redis中,然后在需要的时候取出来。Redis的key和value都支持二进制安全的字符串,存储Java对象不是问题,下面我们看一下如何来实现。 1要存储的对象现在写一个很土的J......
  • Vulhub靶场搭建
    如何安装Vulhub1,环境准备VMware虚拟机linux镜像(centos7)2,配置yum源为阿里云,安装软件时经常出现Couldnotresolvehost:mirrorlist.centos.org:Unkownerror的问题,根本原因是国外网站的yum不稳定。一,靶场搭建1,备份文件cp/etc/yum.repos.d/CentOS-Base.repo/etc/yum.repos.d/......
  • windows下使用minio搭建s3存储,使用laravel和postman进行测试
    1、下载服务端https://dl.min.io/server/minio/release/windows-amd64/minio.exe2、启动服务minio.exeserverd:\data\minio--console-address:9090 可以看到上面有两块ip,分别是9000和9000端口,其中9090是后台管理端地址的端口,9000是前台接口端口3、创建bucket4......
  • Docker搭建lnmp环境
    使用的服务器配置很低,而且快要到期了。到时候更换服务器再搭建lnmp,也挺花时间的,所以这里先未雨绸缪一波。参考自博客园首先使用命令行依次配置nginx/php-fpm/mysql,然后再使用docker-compose重新配置一次。Nginx:dockerpullnginx //简单的拉取镜像dockercreate--nametemp......
  • 使用nginx搭建https服务器
    最近在研究nginx,整好遇到一个需求就是希望服务器与客户端之间传输内容是加密的,防止中间监听泄露信息,但是去证书服务商那边申请证书又不合算,因为访问服务器的都是内部人士,所以自己给自己颁发证书,忽略掉浏览器的不信任警报即可。下面是颁发证书和配置过程。首先确保机器上安装了op......
  • javascript反编译工具javascript-obfuscator的环境搭建
    javascript-obfuscator的项目和文档地址:https://github.com/javascript-obfuscator/javascript-obfuscatorwindows端安装nodejs环境打开nodejs安装包,一直点NEXT,默认设置安装即可。安装后:#测试nodejs和npm是否已安装npm-v#如果有输出版本号,例如输出9.5.0,表示安装成功#查看......
  • (转)我所理解的Entitas——入门(一)
    关于ECS框架ECS框架被大家所熟知是源于2017年GDC大会上《守望先锋》针对他们关于ECS架构的做了一次技术分享,在此之前ECS框架只是并未被广泛使用和流传。和传统的OOP框架以类为基础将数据和逻辑放在类中处理的方式不同,ECS是以功能为基础,遵循组合优于继承的原则将功能分开处理。这样......
  • 搭建springbootweb环境
    搭建springboot环境(idea环境)实现步骤:1.基础环境配置2.maven配置3.编写第一个程序helloworld(可能有两个小问题)4.运行(jar包运行,命令行运行)一.基础环境配置进入idea,点击file->new->project,在弹出的页面上,选择springinitiallzr并进行相关的配置点击next点击create,完成sp......
  • 重磅再推 | 基于OpenSearch向量检索版+大模型,搭建对话式搜索
    面向企业开发者的PaaS方案一周前,阿里云OpenSearch发布的LLM智能问答版,面向行业搜索场景,提供企业专属问答搜索服务。作为一站式免运维的SaaS服务,智能问答版基于内置的LLM大模型提供问答能力,为企业快速搭建问答搜索系统,详见链接:<https://developer.aliyun.com/article/1239380>除了Sa......
  • 直播平台搭建,js 实现模糊搜索功能
    直播平台搭建,js实现模糊搜索功能封装一个公用的方法: //list是已有的数据,search是模糊搜索的关键字exportfunctionfuzzySearch(list,search){letdata=[];if(list.length!=0&&search){letstr=`\S*${search}\S*`;letreg=newRegExp(str);list.map(item=>{if(......