命令记不住

登陆

Kong2.3.3 安装部署

Kong安装部署

一、容器部署

1.安装docker服务

[root@tike ~]# cd /etc/yum.repos.d/ && wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

[root@tike yum.repos.d]# yum install docker-ce  -y

[root@tike ~]# cat   /etc/docker/daemon.json
{
 "graph": "/apsarapangu/dockerstorage",
 "registry-mirrors": ["https://oz89b7jo.mirror.aliyuncs.com"],
 "live-restore": true
}

[root@tike yum.repos.d]# systemctl status  docker.service
[root@tike yum.repos.d]# systemctl start  docker.service
[root@tike yum.repos.d]# systemctl enable  docker.service

2.创建KONG网络

[root@tike ~]# sudo docker network create kong-net
[root@tike ~]# sudo docker network list

3.创建数据库

[root@tike ~]#  docker run -d --name kong-database \
 --network=kong-net \
 -p 5432:5432 \
 -e "POSTGRES_USER=kong" \
 -e "POSTGRES_DB=kong" \
 -e "POSTGRES_PASSWORD=kong" \
 postgres:9.6
# 验证
[root@tike ~]# docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED         STATUS         PORTS                                       NAMES
efc1d27bfc10   postgres:9.6   "docker-entrypoint.s…"   4 seconds ago   Up 2 seconds   0.0.0.0:5432->5432/tcp, :::5432->5432/tcp   kong-database

4.初始化Kong数据库

[root@tike ~]# docker run --rm \
--network=kong-net \
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=kong-database" \
-e "KONG_PG_PASSWORD=kong" \
-e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \
kong:latest kong migrations bootstrap
# 验证
# psql -U kong
kong-# \list
kong-# \c kong
kong-# \d

5.创建Kong

[root@tike ~]# docker run -d --name kong \
--network=kong-net \
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=kong-database" \
-e "KONG_PG_PASSWORD=kong" \
-e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \
-e "KONG_PROXY_ACCESS_LOG=/dev/stdout" \
-e "KONG_ADMIN_ACCESS_LOG=/dev/stdout" \
-e "KONG_PROXY_ERROR_LOG=/dev/stderr" \
-e "KONG_ADMIN_ERROR_LOG=/dev/stderr" \
-e "KONG_ADMIN_LISTEN=0.0.0.0:8001, 0.0.0.0:8444 ssl" \
-p 8000:8000 \
-p 8443:8443 \
-p 8001:8001 \
-p 8444:8444 \
kong:latest

6.部署KongA

1.初始化数据库
[root@tike ~]# docker run --rm --network=kong-net pantsel/konga -c prepare -a postgres -u postgresql://kong:kong@kong-database:5432/konga_db

2.创建KongA
[root@tike ~]# docker run -p 1337:1337 \
 --network=kong-net \
 -e "DB_ADAPTER=postgres" \
 -e "DB_HOST=kong-database" \
 -e "DB_USER=kong" \
 -e "DB_PASSWORD=kong" \
 -e "DB_DATABASE=konga_db" \
 -e "KONGA_HOOK_TIMEOUT=120000" \
 -e "NODE_ENV=production" \
 --name konga \
 pantsel/konga

7.Web页面进行访问

ip:1337

参考

二、物理部署

8.kong脚本安装

脚本安装kong-2.3.3

#! /bin/bash

##### 安装postgres
#注意kong对postgres有版本要求:9.5+
#https://www.postgresql.org/download/linux/redhat/
# Install the repository RPM:
curl -o pg.rpm https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
yum install -y pg.rpm
yum install -y postgresql96
yum install -y postgresql96-server

#修改 PGSQL 的目录和监听host,默认端口5432
#如果启动不想在命令行以 -h *启动,则在vim /var/lib/pgsql/9.6/data/postgresql.conf,修改#listen_address = "*"
mkdir -p /data/postgres/data/
chown postgres.postgres /data/postgres/data/
sed -i 's@ExecStart=.*@ExecStart=/usr/pgsql-9.6/bin/postmaster -D /data/postgres/data/ -h *@g' /usr/lib/systemd/system/postgresql-9.6.service
sed -i 's@Environment=PGDATA=.*@Environment=PGDATA=/data/postgres/data/@g' /usr/lib/systemd/system/postgresql-9.6.service

/usr/pgsql-9.6/bin/postgresql96-setup initdb

#trust:凡是连接到服务器的,都是可信任的。只需要提供 PostgreSQL 用户名,可以没有对应的操作系统同名用户。
#password 和 md5:对于远程访问,需要提供 PostgreSQL 用户名和密码。对于本地连接,提供 PostgreSQL 用户名密码之外,还需要有操作系统访问权(用操作系统同名用户验证)。password 和 md5 的区别,就是远程访问时传输的密码是否用 md5 加密。
#ident:对于远程访问,从 ident 服务器获得客户端操作系统用户名,然后把操作系统用户名作为数据库用户名进行登录对于本地连接,实际上使用了 peer。
#peer:对于本地访问,通过客户端操作系统内核来获取当前系统登录的用户名,并作为 PostgreSQL 用户名进行登录。
cat > /data/postgres/data/pg_hba.conf << EOF
#TYPE		DATABASE			  USER				ADDRESS	  								METHOD
local   all             all                                     peer
host    all             all             127.0.0.1/32            md5
host    all             all             172.0.0.0/8             md5
host    all             all             192.0.0.0/8             md5
host    all             all             127.0.0.1/32            ident
host    all             all             172.0.0.0/8             ident
host    all             all             ::1/128                 ident
EOF

cat /data/postgres/data/pg_hba.conf

systemctl daemon-reload
systemctl enable postgresql-9.6
systemctl start postgresql-9.6

ps -ef | grep postgres

#创建kong数据库
#su postgres    #postgres.postgres是PostgreSQL的系统管理员
psql
#设置用户 `postgres` 的密码,仅首次需要
#\password postgres # 注意开头的 \ 必须有!
create user kong with password 'kong';
create database kong owner kong;
grant all privileges on database kong to kong;
\q;

#psql -U kong -d kong -h 127.0.0.1 -p 5432 本地访问method为trust,才能无密码访问



#####安装kong

curl -L -o kong.rpm https://www.4wei.cn/files/kong-2.3.3.el7.amd64.rpm
yum install -y kong.rpm --nogpgcheck

# 修改配置文件
# admin http:8001, admin https:8444
# proxy http:8000, proxy https:8443
cat > /etc/kong/kong.conf <<EOF
admin_listen = 0.0.0.0:8001 reuseport backlog=16384, 0.0.0.0:8444 http2 ssl reuseport backlog=16384
database = postgres
pg_host = 172.30.26.2
pg_port = 5432
pg_timeout = 5000
pg_user = kong
pg_password = kong
pg_database = kong
EOF

# 迁移数据库,只需要在一台机器上执行就行
# KONG_PASSWORD=kongadmin@tikr /usr/local/bin/kong migrations bootstrap -c /etc/kong/kong.conf

kong start -c /etc/kong/kong.conf

#test proxy
curl http://localhost:8000
#test admin
curl -i -X GET --url http://localhost:8001/services


9.KongA脚本安装

#! /bin/bash

##### 安装konga

#### konga基于nodejs开发,源码安装需要提前安装nodejs,建议docker安装;另外konga不支持PostgreSQL高版本,建议使用9.x版本的。

useradd tikr
echo tikr@rmrb | passwd tikr --stdin
echo "tikr ALL=(ALL) NOPASSWD: ALL">/etc/sudoers.d/tikr

cat /etc/passwd | grep tikr

#docker install konga
docker run -p 8080:8080 -d \
    -e "PORT=8080" \
    -e "TOKEN_SECRET=tikr@rmrb" \
    -e "DB_ADAPTER=postgres" \
    -e "DB_HOST=172.30.26.2" \
    -e "DB_PORT=5432" \
    -e "DB_USER=kong" \
    -e "DB_PASSWORD=kong" \
    -e "DB_DATABASE=kong" \
    -e "DB_PG_SCHEMA=" \
    -e "NODE_ENV=development" \
    --name konga \
    hub-mirror.c.163.com/pantsel/konga

推荐阅读