欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Kong网关部署(一)

程序员文章站 2022-06-03 20:25:13
...

Kong网关部署(一)

写在前面

版本控制:

  • centos7.3
  • postgresql-11

二.安装Kong需要的数据库PostgreSQL

1. 准备:安装依赖组件
yum -y install gcc-c++ &
yum -y install pcre pcre-devel &
yum -y install zlib zlib-devel &
yum -y install openssl openssl-devel &
yum -y install wget 
2.安装及配置
  • 安装:
yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
yum install -y postgresql11 postgresql11-server
  • 数据库初始化:
/usr/pgsql-11/bin/postgresql-11-setup initdb
  • 设置数据库允许远程访问 sudo vim /var/lib/pgsql/11/data/postgresql.conf:
#listen_addresses = 'localhost'
#port=5432
修改为:
listen_addresses = '*'
port=5432
  • 修改客户端认证配置文件sudo vim /var/lib/pgsql/11/data/pg_hba.conf
#在ipv4下面修改:
#host all all 127.0.0.1/32 trust		//本地访问完全信任
host all all 0.0.0.0/0 md5				//远程访问需要密码

修改后大概就是这个样子:
# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 ident
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local   replication     all                                     peer
#host    replication     all             127.0.0.1/32            ident
#host    replication     all             ::1/128                 ident
host    all             all             0.0.0.0/0               md5
  • 启动服务
systemctl start postgresql-11
#systemctl restart postgresql-11 //重启命令
  • 设置开机自启动
systemctl enable postgresql-11

三.操作postgresql

1. 修改postgres用户密码
# PostgreSQL会创建一个默认的linux用户postgres,修改该用户密码的方法如下:
# 1. 删除用户postgres的密码
sudo  passwd -d postgres
# 2. 设置用户postgres的密码
sudo -u postgres passwd
输入新的密码即可

2. 创建用户(名字任意)
//进入postgres
sudo -u postgres psql
//创建用户
create user kong with password '123456'; 
//若要修改kong用户的密码,如下:
ALTER USER kong WITH PASSWORD 'new_password';
3. 创建叫kong的数据库(名字任意)
create database kong owner kong;
4. 赋予用户权限
grant all privileges on database kong to kong; 
5. 防火墙打开5432端口

若为本地虚拟机,可以这样打开:

firewall-cmd --permanent --add-port=5432/tcp
firewall-cmd --reload
6. postgresql常用操作
  • 查看所有数据库 \l
  • 查看所有角 色 \du

四.安装Kong

1. 下载安装包
wget https://kong.bintray.com/kong-rpm/centos/7/kong-2.0.1.el7.amd64.rpm
2. 安装
yum install epel-release
yum install kong-2.0.1.*amd64.rpm --nogpgcheck
3. 配置数据库连接
cp /etc/kong/kong.conf.default /etc/kong/kong.conf
vim /etc/kong/kong.conf

修改数据库配置:

# 修改数据库配置
database = postgres             # Determines which of PostgreSQL or Cassandra
 
pg_host = 127.0.0.1             # The PostgreSQL host to connect to.
pg_port = 5432                  # The port to connect to.
pg_user = kong                  # The username to authenticate if required.
pg_password = 你的密码            # The password to authenticate if required.
pg_database = kong              # The database name to connect to.
admin_listen = 0.0.0.0:8001, 0.0.0.0:8444 http2 ssl #外网访问
4. 初始化数据库
kong migrations bootstrap -c /etc/kong/kong.conf
5. 启动kong
kong start -c /etc/kong/kong.conf
# kong restart -c /etc/kong/kong.conf
# kong top c/kong/kong.conf
# kong start
6. 测试kong
curl -i  http://localhost:8001
7. 设置开机自启动
systemctl enable kong

五.安装Kong Dashboard可视化界面

1. 安装Node.js
# kong Dashboard是nodejs写的
sudo yum install -y nodejs
2. 安装git
#使用git方法
yum install -y git
yum install -y gcc-c++
#下载konga包并安装
git clone https://github.com/pantsel/konga.git
cd konga
npm i

npm i 时报点错不影响,那个错误忘记保留下来了,前端很多框架npm时都会报那个错误

3. 安装docker
//更新源
sudo yum update
//执行docker安装脚本
curl -sSL https://get.docker.com/ | sh
//启动docker
sudo service docker start 
4. 安装docker-compose
curl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
5. docker安装konga镜像
#docker pull konga
//阿里云镜像,更快
docker pull registry.cn-hangzhou.aliyuncs.com/zhanghongzhuang-k8s/konga:latest
6. docker创建kong数据库,并初始化
docker run --rm registry.cn-hangzhou.aliyuncs.com/zhanghongzhuang-k8s/konga -c prepare -a postgres -u postgresql://用户名:密码@ip:(prot默认是5432)5432/数据库名字

# docker run --rm konga -c prepare -a postgres -u postgresql://用户名:密码@ip:(prot默认是5432)5432/数据库名字
//例
# docker run --rm registry.cn-hangzhou.aliyuncs.com/zhanghongzhuang-k8s/konga -c prepare -a postgres -u postgresql://kong:[email protected] :5432/kong
7.创建docker-compose.yml文件

vim docker-compose.yml,内容如下:

version: '2.1'
services:
  kong:
    image: "registry.cn-hangzhou.aliyuncs.com/zhanghongzhuang-k8s/konga:latest"
    environment:
      DB_ADAPTER: postgres
      DB_HOST: 47.94.87.117
      DB_PORT: 5432
      DB_USER: kong
      DB_PASSWORD: CentOS7.3
      DB_DATABASE: kong
      NODE_ENV: production
    ports:
      - "1337:1337/tcp"
    restart: on-failure

注意,这里的version必须是docker-compose的版本要求的才行,否则报错会让你不能理解

8.运行
  1. 执行 docker-compose up -d,
  2. pingcurl -i http://47.94.87.117:1337即可查看运行结果
  3. docker-compose的命令和docker差不多

最后

  1. 参考文档:
  1. 所有操作中需要打开的防火墙:
  • 5432 postgresql数据库端口
  • 1337 这可以改变,konga界面的端口
  • 8001 我未用到这个功能