安装docker
-
如果是centos,最好用最新的7.6版本。
-
安装docker依赖。
yum install -y yum-utils device-mapper-persistent-data lvm2
-
设置yum源。
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
-
安装docker。
yum install docker
-
启动并加入开机启动。
systemctl start docker systemctl enable docker
-
验证安装。
docker version
安装kong
-
使用docker-compose部署kong,也可以按照官方步骤来,但是这样需要每次手动执行或者使用shell脚本。使用docker-compose可以在单机上启动一组相关容器。
-
安装docker-compose。
yum -y install epel-release yum -y install python-pip pip install docker-compose
-
在指定当前目录添加一个docker-compose.yml文件。
version: '2.1' services: kong-migrations: image: "kong:latest" command: kong migrations bootstrap depends_on: db: condition: service_healthy environment: KONG_DATABASE: postgres KONG_PG_DATABASE: kong KONG_PG_HOST: db KONG_PG_PASSWORD: kong KONG_PG_USER: kong links: - db:db kong: image: "kong:latest" depends_on: db: condition: service_healthy environment: KONG_ADMIN_ACCESS_LOG: /dev/stdout KONG_ADMIN_ERROR_LOG: /dev/stderr KONG_ADMIN_LISTEN: '0.0.0.0:8001' KONG_CASSANDRA_CONTACT_POINTS: db KONG_DATABASE: postgres KONG_PG_DATABASE: kong KONG_PG_HOST: db KONG_PG_PASSWORD: kong KONG_PG_USER: kong KONG_PROXY_ACCESS_LOG: /dev/stdout KONG_PROXY_ERROR_LOG: /dev/stderr links: - db:db ports: - "8000:8000/tcp" - "8001:8001/tcp" - "8443:8443/tcp" - "8444:8444/tcp" restart: on-failure db: image: postgres:9.6 environment: POSTGRES_DB: kong POSTGRES_PASSWORD: kong POSTGRES_USER: kong healthcheck: test: ["CMD", "pg_isready", "-U", "kong"] interval: 30s timeout: 30s retries: 3 restart: on-failure stdin_open: true tty: true
-
运行。
docker-compose up -d
-
检查,通过8001端口查看。
安装konga
-
因为kong只能通过api来管理,所以一般我们需要个图形界面来方便操作。
-
安装konga。
docker run -p 1337:1337 \ --network kong-net \ --name konga \ -e "NODE_ENV=production" \ pantsel/konga:latest
-
运行后通过1337端口访问,先注册登录。
-
在初始化界面中,填入kong的后台管理端口8001的url进行连接。也可以管理多个kong实例。
-
kong也有它的缺陷,因为默认是API的配置方式,所以备份很困难,konga刚好提供了一套kong备份机制
kong的插件开发
-
kong开放4个端口,分别用途如下:
- 8000: 监听HTTP请求,向后端服务进行转发;
- 8443: 监听HTTPS请求,同8000;
- 8001: 用户管理api访问端口;
- 8444: 监听HTTPS用于管理api端口;