标签归档:Kong安装

Kong 1.4 发布!自动检测Cassandra Topology 更改,自定义Host Header以及更多功能!

原文地址:https://konghq.com/blog/kong-gateway-1-4-released-auto-detect-cassandra-topology-changes-custom-host-header-much/

我们很高兴地宣布1.4系列的第一个版本已经发布! 我们的工程团队和出色的社区成员在此版本中添加了许多新功能,改进和修复。

请阅读以下内容,了解Kong Gateway 1.4中最相关的更改以及如何充分利用这些新增功能。 有关完整的详细信息,请参阅更改日志;有关如何从以前的Kong版本进行升级的说明,请参阅升级路径

自动检测Cassandra Topology 更改

从Kong Gateway 1.4开始,将自动检测对Apache Cassandra群集拓扑所做的任何更改,从而避免Kong重新启动。

如何利用此新功能:

新的配置cassandra_refresh_frequency设置在检查Cassandra集群拓扑结构更改之前,Kong必须等待多长时间。默认频率是每60秒检查一次,但是可以根据需要增加、减少甚至禁用这个值。

上游的Hostname属性

Kong中定义的任何上游现在都可以使用一个名为hostname的可选属性,该属性定义在通过Kong服务器代理连接时将使用的Host header。

主要优点:

服务器通常会监听与解析名称不同的服务器名称,并且此新属性可以保证Kong在代理连接和积极检查主机的运行状况时将使用正确的名称。

DAO属性的新变更

新的属性转换已添加到DAO模式中,使开发人员能够添加在插入或更新数据库条目时运行的函数

新的状态接口

通过新的状态接口,插件可以将端点添加到已经存在的/status端点,从而公开不敏感的健康数据,从而避免公开Kong的管理API。

主要优点

  • 用户可以同时公开Kong的健康数据并保护Kong的Admin API。
  • 对于使用禁用的管理界面运行的Kong节点,执行基于HTTP的运行状况检查更加容易。

Kong Gateway 1.4中的其他新功能

新的Admin API响应headerX-Kong-Admin-Latency

  • 这个新的响应header报告了对Kong的Admin API的每个请求处理了多长时间。

新的配置选项router_update_frequency

  • 这个新的配置选项允许设置检查路由器和插件更改的频率。
  • 这样可以避免在频繁更改Kong路由或插件时性能下降。
  • 此选项使管理员可以选择延迟路由器和插件配置更改的可用性,还是增加数据库负载。

限速插件中的Service-level 支持

  • 除了使用者,凭证和IP级别外,限速插件现在还具有服务级别的支持。

Kong Gateway 1.4中的其他改进和错误修复

Kong Gateway 1.4还改善了限速插件内存的使用,使用共享字典的TTL终止了其local策略计数器,以避免在内存中保留不必要的计数器。

此版本中存在一些重要的错误修复,例如服务网格弃用的开始,它将被替换为Kuma(kuma.io)向前发展。 已知服务网格会导致向上游的HTTPS请求忽略proxy_ssl *指令,因此在Kong Gateway的下一个主要版本中将停止使用该服务网格。 在此版本中,默认情况下禁用此功能,以避免出现此问题,并且仍可以使用新的配置选项service_mesh启用它。

另一个相关的修复与使用日志插件记录NGINX产生的错误有关,该错误过去曾错误地将某些请求属性报告为请求方法,并且现在可以正常工作。

我们还解决了一个问题,即在删除所有Kong workers时,目标不能在所有Kong员工中正确更新的情况下,在频繁使用情况下,将流量与这些被删除目标进行了平衡。

与往常一样,此处提供Kong Gateway 1.4的文档。 此外,我们将在后续帖子和社区电话中讨论1.4中的关键功能,敬请期待!

感谢我们的用户,贡献者和核心维护者社区,感谢您对Kong开源平台的持续支持。

请尝试一下Kong Gateway 1.4,并确保让我们知道您的想法

Kong社区

像往常一样,随时在我们的社区论坛Kong Nation上提问。 从您的反馈中吸取教训,将使我们能够更好地了解关键任务用例并不断改进Kong。

Happy Konging!

在 CentOS 安装 Kong

安装包

首先下载配置的相应软件包:

企业试用用户应从其欢迎电子邮件中下载其包,并在步骤1之后将其许可保存到/etc/kong/license.json

YUM Repositories

你也可以通过YUM安装Kong;按照下面“Set Me Up”部分中的说明进行操作。

注意:确保生成的.repo文件的baseurl字段包含您的CentOS版本;例如:

baseurl=https://kong.bintray.com/kong-rpm/centos/6

或者

baseurl=https://kong.bintray.com/kong-rpm/centos/7

安装

  1. 安装Kong 如果要下载程序包,请执行:
     $ sudo yum install epel-release
     $ sudo yum install kong-1.3.0.*.noarch.rpm --nogpgcheck
    

    如果您正在使用存储库,请执行:

      $ sudo yum update -y
      $ sudo yum install -y wget
      $ wget https://bintray.com/kong/kong-rpm/rpm -O bintray-kong-kong-rpm.repo
      $ export major_version=`grep -oE '[0-9]+\.[0-9]+' /etc/redhat-release | cut -d "." -f1`
      $ sed -i -e 's/baseurl.*/&\/centos\/'$major_version''/ bintray-kong-kong-rpm.repo
      $ sudo mv bintray-kong-kong-rpm.repo /etc/yum.repos.d/
      $ sudo yum update -y
      $ sudo yum install -y kong
    
  2. 准备数据库或声明性配置文件 无论是否有数据库,Kong都可以运行。使用数据库时,您将使用 kong.conf 配置文件在启动时设置Kong的配置属性,并将数据库用作所有已配置实体的存储,例如Kong代理所在的 Routes 和 Services 。

    不使用数据库时,您将使用kong.conf的配置属性和kong.yml文件来将实体指定为声明性配置。

    使用数据库

    配置Kong以便它可以连接到您的数据库。Kong支持PostgreSQL 9.5+Cassandra 3.x.x作为其数据存储。

    如果您使用Postgres,请在开始Kong之前配置数据库和用户,即:

     CREATE USER kong; CREATE DATABASE kong OWNER kong;
    
    然后执行Kong的数据迁移:
    
      $ kong migrations bootstrap [-c /path/to/kong.conf]
    

    对于Kong 小于0.15的注意事项:如果Kong版本低于0.15(最高0.14),请使用up子命令而不是bootstrap。另请注意,如果Kong 小于0.15,则不应同时进行迁移;只有一个Kong节点应该一次执行迁移。对于0.15,1.0及以上的Kong,此限制被取消。

    不使用数据库

    如果要在无DB模式下运行Kong,则应首先生成声明性配置文件。以下命令将在当前文件夹中生成kong.yml文件。它包含有关如何填写它的说明。

     $ kong config init
    

    填写kong.yml文件后,编辑您的kong.conf文件。将数据库选项设置为off,将declarative_config选项设置为kong.yml文件的路径:

     database = off
      declarative_config = /path/to/kong.yml
    
  3. 启动Kong
     $ kong start [-c /path/to/kong.conf]
    
  4. 使用Kong Kong正在运行
      $ curl -i http://localhost:8001/

使用源码安装 Kong

无论是否有数据库,Kong都可以运行。

使用数据库时,您将使用kong.conf配置文件在启动时设置Kong的配置属性,并将数据库用作所有已配置实体的存储,例如Kong代理所在的 Routes 和 Services 。

不使用数据库时,您将使用kong.conf的配置属性和kong.yml文件来将实体指定为声明性配置。

使用数据库

  1. 安装依赖项OpenResty 1.15.8.1。作为一个OpenResty应用程序,您必须遵循OpenResty安装说明。您将需要OpenSSL和PCRE来编译OpenResty,并至少使用以下编译选项:
      $ ./configure \
        --with-pcre-jit \
        --with-http_ssl_module \
        --with-http_realip_module \
        --with-http_stub_status_module \
        --with-http_v2_module
    

    您可能必须指定--with-openssl,并且可以添加任何其他您想要的选项,例如其他Nginx模块或自定义--prefix目录。

    OpenResty可以方便地捆绑LuaJITresty-cli,它们对于Kong来说是必不可少的。将nginx和resty可执行文件添加到$ PATH

      $ export PATH="$PATH:/usr/local/openresty/bin"
    

    Luarocks 3.1.3,使用与OpenResty捆绑的LuaJIT版本编译(请参阅--with-lua--with-lua-include配置选项)。例:

      ./configure \
        --lua-suffix=jit \
        --with-lua=/usr/local/openresty/luajit \
        --with-lua-include=/usr/local/openresty/luajit/include/luajit-2.1
    
  2. 安装 Kong现在已经安装了OpenResty,我们可以使用Luarocks来安装Kong的Lua源:
      $ luarocks install kong 1.3.0-0
    

    或者

      $ git clone git@github.com:Kong/kong.git
      $ cd kong
      $ [sudo] make install # this simply runs the `luarocks make kong-*.rockspec` command
    
  3. 添加kong.conf

    注意:如果您使用的是Cassandra,则需要执行此步骤;它是Postgres用户的可选项。

    默认情况下,Kong配置为与本地Postgres实例通信。 如果您使用的是Cassandra,或者需要修改任何设置,请下载kong.conf.default文件并根据需要进行调整。 然后,以root身份将其添加到/etc

      $ sudo mkdir -p /etc/kong
       $ sudo cp kong.conf.default /etc/kong/kong.conf
    
  4. 准备数据库配置Kong以便它可以连接到您的数据库。Kong支持PostgreSQL 9.5+Cassandra 3.x.x作为其数据存储。如果您使用的是Postgres,请在启动Kong之前配置数据库和用户:
     CREATE USER kong; CREATE DATABASE kong OWNER kong;
    

    接下来,运行Kong迁移:

      $ kong migrations bootstrap [-c /path/to/kong.conf]
    

    对于Kong < 0.15的注意事项:如果Kong版本低于0.15(最高0.14),请使用up子命令而不是bootstrap。另请注意,如果Kong < 0.15,则不应同时进行迁移;只有一个Kong节点应该一次执行迁移。对于0.15,1.0及以上的Kong,此限制被取消。

  5. 启动Kong
     $ kong start [-c /path/to/kong.conf]
    
  6. 使用KongKong正在运行
      $ curl -i http://localhost:8001/
    

不使用数据库

  1. 按照上面的列表中的步骤1和2(安装依赖项,安装Kong)。
  2. 写声明性配置文件以下命令将在当前文件夹中生成kong.yml文件。它包含有关如何填写它的说明。执行此操作时,请遵循[声明配置格式]:/1.3.x/db-less-and-declarative-config/#the-declarative-configuration-format说明。
      $ kong config init
    

    我们假设该文件名为kong.yml

  3. 添加kong.conf下载kong.conf.default文件并根据需要进行调整。特别是,确保将database配置选项设置为off,并将declarative_config选项设置为kong.yml的绝对路径
      database = off
      ...
      declarative_config = /path/to/kong.yml
    
  4. 启动Kong
     $ kong start [-c /path/to/kong.conf]
    
  5. 使用KongKong正在运行
      $ curl -i http://localhost:8001/

在 Kubernetes 上安装 Kong 和 Kong Enterprise

Kubernetes Ingress Controller for Kong

使用官方Kubernetes Ingress控制器安装Kong或Kong Enterprise。

通过README文件了解更多信息。要运行本地概念证明,请按照Minikube和Minishift教程进行操作。

Kubernetes Ingress Controller for Kong发布公告在Kong Blog上。

如有问题和讨论,请访问Kong Nation。 有关错误报告,请在GitHub上打开一个新问题

通过 Google Cloud Platform Marketplace 安装 Kong

也许在Kubernetes上尝试Kong的最快方法是通过Google Cloud Platform Marketplace和Google Kubernetes Engine - 以及Google Cloud Platform的Free Tier 和 credit,,您可以免费使用。

  1. 访问 https://console.cloud.google.com/marketplace/details/kong/kong
  2. 单击“Configure”,然后按照屏幕上的提示进行操作
  3. 有关公开Admin API的重要详细信息,请参阅https://github.com/Kong/google-marketplace-kong-app/blob/master/README.md,以便您可以配置Kong。

如果您只是在尝试使用,请考虑在完成实验后删除Google云资源,以避免持续使用Google Cloud使用费。

通过 Helm 安装 Kong

使用官方Helm chart 安装Kong或Kong Enterprise。

如有问题和讨论,请访问 Kong Nation

通过 Manifest 文件安装 Kong

可以通过Kong Kubernetes存储库中提供的清单文件在Kubernetes集群上配置Kong或Kong Enterprise的试用版。

准备

  1. 下载或克隆Kong Kubernetes存储库
  2. 一个Kubernetes集群

安装步骤

Kong Kubernetes存储库包括 Make tasks run_cassandrarun_postgresrun_dbless 以便于使用,但我们将详细说明任务在此处使用的特定YAML文件。

对于所有变体,创建Kong命名空间:

$ kubectl apply -f kong-namespace.yaml

下一步取决于您是否要使用Kong与Cassandra,Postgres或没有数据存储区:

Cassandra Backed Kong

使用此存储库中的cassandra-service.yamlcassandra-statefulset.yaml文件在集群中部署Cassandra服务和StatefulSet

$ kubectl apply -f cassandra-service.yaml
$ kubectl apply -f cassandra-statefulset.yaml

使用此存储库中的kong-control-plane-cassandra.yaml文件运行所需的迁移并部署Kong控制平面节点,包括Kong admin api

$ kubectl -n kong apply -f kong-control-plane-cassandra.yaml

使用此存储库中的kong-ingress-data-plane-cassandra.yaml文件运行Kong数据平面节点

$ kubectl -n kong apply -f kong-ingress-data-plane-cassandra.yaml

PostgreSQL Backed Kong

使用存储库中的postgres.yaml文件在集群中部署postgreSQL服务和ReplicationController

$ kubectl create -f postgres.yaml

使用此存储库中的kong-control-plane-postgres.yaml文件运行所需的迁移并部署Kong控制平面节点,包括Kong Admin API:

$ kubectl -n kong apply -f kong-control-plane-postgres.yaml

使用此存储库中的kong-ingress-data-plane-postgres.yaml文件运行Kong数据平面节点

$ kubectl -n kong apply -f kong-ingress-data-plane-postgres.yaml

Using Datastore Backed Kong

首先,让我们确保Kong控制平面和数据平面成功运行

kubectl get all -n kong
NAME                           READY   STATUS
pod/kong-control-plane         1/1     Running
pod/kong-ingress-data-plane    1/1     Running

访问Kong Admin API端口(如果运行minikube,则以下内容应该有效):

$ export HOST=$(kubectl get nodes --namespace default -o jsonpath='{.items[0].status.addresses[0].address}')
$ export ADMIN_PORT=$(kubectl get svc --namespace kong kong-control-plane  -o jsonpath='{.spec.ports[0].nodePort}')

Using Kong without a Database

对于declarative / db-less,使用此存储库中的declarative.yaml示例文件创建配置映射

$ kubectl create configmap kongdeclarative -n kong --from-file=declarative.yaml

现在使用此存储库中的kong-dbless.yaml文件部署Kong数据平面

$ kubectl apply -f kong-dbless.yaml

Using Declarative / DB Less Backed Kong

要更新declarative / db-less Kong,请编辑声明性文件,然后替换配置映射

$ kubectl create configmap kongdeclarative -n kong --from-file=declarative.yaml -o yaml --dry-run | kubectl replace -n kong -f -

现在使用声明性Kong yaml文件的md5sum进行滚动部署

$ kubectl patch deployment kong-dbless -n kong -p "{\"spec\":{\"template\":{\"metadata\":{\"labels\":{\"declarative\":\"`md5sum declarative.yaml | awk '{ print $$1 }'`\"}}}}}}"

访问Kong Admin API端口(如果运行minikube,则以下内容应该有效):

$ export HOST=$(kubectl get nodes --namespace default -o jsonpath='{.items[0].status.addresses[0].address}')=
$ export ADMIN_PORT=$(kubectl get svc --namespace kong kong-control-plane  -o jsonpath='{.spec.ports[0].nodePort}')

Kong Enterprise 试用用户的附加步骤

  1. 将Kong Enterprise Docker映像发布到容器注册表

    由于Kong Enterprise映像在公共Docker容器注册表中不可用,因此必须将其发布到私有存储库以与Kubernetes一起使用。虽然任何私有存储库都可以使用,但此示例使用Google Cloud Platform容器注册表,该注册表在其他步骤中自动与Google Cloud Platform示例集成。

    在下面的步骤中,将 <image ID> 替换为与docker images输出中已加载图像关联的ID。将 <project ID> 替换为您的Google Cloud Platform项目ID。

      $ docker load -i /tmp/kong-docker-enterprise-edition.tar.gz
      $ docker images
      $ docker tag <image ID> gcr.io/<project ID>/kong-ee
      $ gcloud docker -- push gcr.io/demo-cs-lab/kong-ee:latest
    
  2. 添加您的Kong Enterprise许可文件

    编辑kong_trial_postgres.yamlkong_trial_migration_postgres.yaml,将YOUR_LICENSE_HERE替换为您的Kong Enterprise License File字符串 – 它应如下所示:

      - name: KONG_LICENSE_DATA
      value: '{"license":{"signature":"alongstringofcharacters","payload":{"customer":"Test Company","license_creation_date":"2018-03-06","product_subscription":"Kong Only","admin_seats":"5","support_plan":"Premier","license_expiration_date":"2018-06-04","license_key":"anotherstringofcharacters"},"version":1}}'
    
  3. 使用Kong Enterprise图像

    编辑kong_trial_postgres.yamlkong_trial_migration_postgres.yaml并将image:kong替换为image:gcr.io/<project ID> / kong-ee,使用与上面相同的项目ID。

  4. 部署Kong Enterprise

    使用Kong Enterprise Trial目录中的kong_trial_* YAML文件,从上面的Manifest Files指令继续执行Kong或Kong Enterprise中的步骤4。 一旦Kong Enterprise运行,您应该能够通过<kong-admin-ip-address>:8002https:// <kong-ssl-admin-ip-address>:8445访问Kong Admin GUI。

 

在 Ubuntu 上安装 Kong

安装包

首先下载配置的相应软件包:

企业试用用户应从其欢迎电子邮件中下载其包,并在步骤1之后将其许可保存到/etc/kong/license.json

APT存储库

您也可以通过APT安装Kong; 按照下面页面上“Set Me Up”部分的说明,将分布设置为适当的值(lsb_release -sc)(例如,precise)和组件到main

安装

  1. 安装Kong 如果要下载程序包,请执行:
      $ sudo apt-get update
      $ sudo apt-get install openssl libpcre3 procps perl
      $ sudo dpkg -i kong-1.3.0.*.deb
    

    如果您正在使用apt存储库执行:

      $ sudo apt-get update
      $ sudo apt-get install -y apt-transport-https curl lsb-core
      $ echo "deb https://kong.bintray.com/kong-deb `lsb_release -sc` main" | sudo tee -a /etc/apt/sources.list
      $ curl -o bintray.key https://bintray.com/user/downloadSubjectPublicKey?username=bintray
      $ sudo apt-key add bintray.key
      $ sudo apt-get update
      $ sudo apt-get install -y kong
    
  2. 准备数据库或声明性配置文件无论是否有数据库,Kong都可以运行。

    使用数据库时,您将使用 kong.conf 配置文件在启动时设置Kong的配置属性,并将数据库用作所有已配置实体的存储,例如Kong代理所在的 Routes 和 Services 。

    不使用数据库时,您将使用kong.conf的配置属性和kong.yml文件来将实体指定为声明性配置。

    使用数据库

    配置Kong以便它可以连接到您的数据库。Kong支持PostgreSQL 9.5+Cassandra 3.x.x作为其数据存储。

    如果您使用Postgres,请在开始Kong之前配置数据库和用户,即:

     CREATE USER kong; CREATE DATABASE kong OWNER kong;
    
    然后执行Kong的数据迁移:
    
      $ kong migrations bootstrap [-c /path/to/kong.conf]
    

    对于Kong 小于0.15的注意事项:如果Kong版本低于0.15(最高0.14),请使用up子命令而不是bootstrap。另请注意,如果Kong 小于0.15,则不应同时进行迁移;只有一个Kong节点应该一次执行迁移。对于0.15,1.0及以上的Kong,此限制被取消。

    不使用数据库

    如果要在无DB模式下运行Kong,则应首先生成声明性配置文件。以下命令将在当前文件夹中生成kong.yml文件。它包含有关如何填写它的说明。

     $ kong config init
    

    填写kong.yml文件后,编辑您的kong.conf文件。将数据库选项设置为off,将declarative_config选项设置为kong.yml文件的路径:

     database = off
      declarative_config = /path/to/kong.yml
    
  3. 启动Kong
     $ kong start [-c /path/to/kong.conf]
    
  4. 使用KongKong正在运行
      $ curl -i http://localhost:8001/

使用 Docker 安装 Kong

有关如何在Docker中使用Kong的详细信息可以在镜像图像的DockerHub存储库中找到:kong。 我们还有一个Docker Compose template,内置编排和可扩展性。

使用数据库

这是一个快速示例,显示如何将Kong容器连接到Cassandra或PostgreSQL容器。

  1. 创建一个Docker network

    您需要创建一个自定义网络,以允许容器相互发现和通信。在此示例中,kong-net是网络名称,您可以使用任何名称。

     $ docker network create kong-net
    
  2. 启动数据库

    如果您想使用Cassandra容器:

      $ docker run -d --name kong-database \
                --network=kong-net \
                -p 9042:9042 \
                cassandra:3
    

    如果您想使用PostgreSQL容器:

      $ docker run -d --name kong-database \
                --network=kong-net \
                -p 5432:5432 \
                -e "POSTGRES_USER=kong" \
                -e "POSTGRES_DB=kong" \
                postgres:9.6
    
  3. 准备数据库

    使用临时Kong容器运行迁移:

      $ docker run --rm \
      --network=kong-net \
      -e "KONG_DATABASE=postgres" \
      -e "KONG_PG_HOST=kong-database" \
      -e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \
      kong:latest kong migrations bootstrap
    

    在上面的示例中,配置了Cassandra和PostgreSQL,但您应该使用cassandrapostgres更新KONG_DATABASE环境变量。
    对于Kong 小于0.15的注意事项:如果Kong版本低于0.15(最高0.14),请使用up子命令而不是bootstrap。另请注意,如果Kong 版本小于0.15,则不应同时进行迁移;只有一个Kong节点应该一次执行迁移。对于0.15,1.0及以上的Kong,此限制被取消。

  4. 启动Kong

    迁移运行并且数据库准备就绪后,启动一个将连接到数据库容器的Kong容器,就像临时迁移容器一样:

      $ docker run -d --name kong \
      --network=kong-net \
      -e "KONG_DATABASE=postgres" \
      -e "KONG_PG_HOST=kong-database" \
      -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
    
  5. 使用Kong

    Kong正在运行:

      $ curl -i http://localhost:8001/
    

    通过5分钟的快速入门快速学习如何使用Kong。

无数据库模式

在无DB模式下启动Kong所涉及的步骤如下:

  1. 创建一个Docker network

    这与Pg / Cassandra指南中的相同。我们也使用kong-net作为网络名称,它也可以改为其他东西。

      $ docker network create kong-net
    

    在无DB模式下运行Kong并不严格需要此步骤,但如果您希望将来添加其他内容(如Redis群集备份的速率限制插件),这是一个很好的预防措施。

  2. 创建Docker volume

    对于本指南的目的,Docker卷是主机内的一个文件夹,可以将其映射到容器中的文件夹中。卷有一个名称。在这种情况下,我们将命名我们的kong-vol

      $ docker volume create kong-vol
    

    您现在应该能够检查volume:

      $ docker volume inspect kong-vol
    

    结果应该类似于:

      [
          {
              "CreatedAt": "2019-05-28T12:40:09Z",
              "Driver": "local",
              "Labels": {},
              "Mountpoint": "/var/lib/docker/volumes/kong-vol/_data",
              "Name": "kong-vol",
              "Options": {},
              "Scope": "local"
          }
      ]
    

    注意MountPoint条目。我们将在下一步中使用该路径。

  3. 准备声明性配置文件

    声明性配置格式指南中描述了语法和属性。

    添加您需要的任何核心实体(服务,路由,插件,消费者等)。

    在本指南中,我们假设您将其命名为kong.yml。

    将其保存在上一步中提到的MountPoint路径中。

    就本指南而言,这将是/var/lib/docker/volumes/kong-vol/_data/kong.yml

  4. 在无DB模式中启动Kong

    虽然可以仅使用KONG_DATABASE=off来启动Kong容器,但通常还需要通过KONG_DECLARATIVE_CONFIG变量名称将声明性配置文件作为参数包含在内。为此,我们需要从容器中使文件“visible”。我们使用-v标志来实现这一点,它将kong-vol卷映射到容器中的/usr/local/kong/declarative文件夹。

      $ docker run -d --name kong \
      --network=kong-net \
      -v "kong-vol:/usr/local/kong/declarative" \
      -e "KONG_DATABASE=off" \
      -e "KONG_DECLARATIVE_CONFIG=/usr/local/kong/declarative/kong.yml" \
      -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
    
  5. 使用Kong

    Kong应该正在运行,它应该包含一些以Kong .yml添加的实体。

      $ curl -i http://localhost:8001/
    

    例如,获取服务列表:

      $ curl -i http://localhost:8001/services