Consul 快速入门 - Kong最佳实践

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Consul 快速入门 - Kong最佳实践相关的知识,希望对你有一定的参考价值。

参考技术A Consul是一个服务网格(微服务间的 TCP/IP,负责服务之间的网络调用、限流、熔断和监控)解决方案,它是一个一个分布式的,高度可用的系统,而且开发使用都很简便。它提供了一个功能齐全的控制平面,主要特点是:服务发现、健康检查、键值存储、安全服务通信、多数据中心。

这里提供两台Centos:local12,local13
安装方式:

安装Consul后必须运行Agent,可以选择服务器或客户端模式。每个数据中心至少有一个服务器(推荐3~5个服务器集群)。

简单起见,先启动一个Agent的开发模式:

1、定义一个服务

2、查询一个服务

1、创建node1,consul server

2、创建node2,consul client

3、加入集群

4、查询节点

类似Redis,一般也就用来做服务配置。
简单了解下命令就好:

访问下: http://192.168.56.112:8500/ui

栏目解析:就是上面操作生成的一些东西

1、services:放置服务
2、nodes:放置consul节点
3、key/value:放置一些配置信息
4、dc1:配置数据中心

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

【API网关】| 总结/Edison Zhou


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

年终总结:Edison的2021年终总结

数字化转型:我在传统企业做数字化转型

C#刷题:C#刷剑指Offer算法题系列文章目录

.NET面试:.NET开发面试知识体系

.NET大会:2020年中国.NET开发者大会PDF资料

以上是关于Consul 快速入门 - Kong最佳实践的主要内容,如果未能解决你的问题,请参考以下文章

Zabbix最佳实践二:快速入门

Spring Boot 最佳实践快速入门

技术干货 | API网关与服务安全最佳实践

入门教程SequoiaDB+PostgreSQL数据实时检索最佳实践

基础入门_Python-模块和包.运维开发中watchdog事件监视的最佳实践?

基础入门_Python-模块和包.运维开发中inspect自省模块的最佳实践?