我正在查找Kong API网关,并通过Google Cloud Marketplace在GKE上部署了一个Kong实例。我想向此实例添加一个自定义 Kong 插件,并为我的服务启用它。我该怎么做?有什么资源可以让我了解这一点吗?谢谢。
如果您使用的是 docker
您可以使用luarocks
在 Kong 中安装任何插件
例如,这里有一个示例 docker 文件
FROM kong
ENV LUA_PATH /usr/local/share/lua/5.1/?.lua;/usr/local/kong-oidc/?.lua;;
# For lua-cjson
ENV LUA_CPATH /usr/local/lib/lua/5.1/?.so;;
# Install unzip for luarocks, gcc for lua-cjson
RUN yum install -y unzip gcc
RUN luarocks install luacov
这里有一个 oidc 插件的例子:https://github.com/nokia/kong-oidc
我们可以使用以下方法安装插件:luarocks install <plugin name>
构建您自己的自定义 docker 镜像,并使用 Kong 镜像作为基础 docker 镜像。
这里整个示例工作Dockerfile
FROM kong:latest
USER root
RUN apk update && apk add git unzip luarocks
RUN luarocks install kong-oidc
USER kong
通过这种方式,您还可以在 docker 中添加一些社区插件和企业插件。
可以将自定义插件烘焙到容器映像中,也可以修改部署清单以下载并运行配置中的command
和arguments
插件。
对于第一个选项,您只需要将安装插件并运行插件的命令添加到您的 Dockerfile,然后使用docker build
构建映像。拥有新镜像后,您可以使用kubectl set image deployment
执行滚动更新,也可以在云控制台中修改工作负载。
修改部署 YAML 会产生类似的结果,但您需要添加command
和arguments
,以便在容器启动时下载和运行自定义插件。
google-marketplace-kong-app 和 kong-dist-kubernetes repo 提供了有关如何手动构建和部署 Kong 的说明。我建议检查它们并包含您的自定义插件。