3

我正在尝试使用 Kong 插件进行 k8s 入口定制。具体来说,我使用的是 Kong 入口控制器和“request-transformer-advanced”插件(参考: https ://docs.konghq.com/hub/stone-payments/kong-plugin-url-rewrite/ )

Kong 插件页面(以上参考)讨论了使用带有有效负载的 URL 调用来安装和配置插件。但是,我熟悉的大多数 k8s 配置都是通过 YAML 进行的(例如,https: //kubernetes.io/docs/concepts/services-networking/ingress/ )

Kong 插件是否也可以通过 YAML 进行配置?一些第三方网站提到了这样的配置:

apiVersion: configuration.konghq.com/v1
kind: KongPlugin
metadata:
  name: deploymentname187
config:
  config.replace.uri: /
plugin: kong-plugin-url-rewrite

Kong 插件(URL 调用或 YAML 应用程序)的最佳实践是什么?

4

2 回答 2

1

Kong 插件页面讨论了使用带有有效负载的 URL 调用来安装和配置插件。但是,我熟悉的大多数 k8s 配置都是通过 YAML

我一直在检查Kong 的安装指南,它指定:

为 Kubernetes 设置 Kong 非常简单: $ kubectl apply -f http://.../all-in-one-dbless.yaml

所以从技术上讲,这里我们只是从他们的仓库中获取纯 YAML 文件。

结果,Custom Resource Definitions安装了一些(以及所有需要的东西namespace,例如等)。那里特别描述了以下 CRD:

apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  name: kongplugins.configuration.konghq.com
spec:
...
  names:
    kind: KongPlugin

Kong 插件是否也可以通过 YAML 进行配置?

安装插件后,您可以以声明方式管理配置。完全按照您一直在引用的Kong 插件页面上指定的那样:

在服务声明 (YAML) 上启用插件 例如, 通过将此部分添加到声明性配置文件中来在服务上配置此插件:

plugins:
- name: kong-plugin-url-rewrite
service: <service>
config: 
  url: http://new-url.com

<service> 是 此插件配置将针对的服务的id 或 。name

你的下一个问题是一个非常基于意见的问题

Kong 插件(URL 调用或 YAML 应用程序)的最佳实践是什么?

正如 WantIt 所说,您可以通过安装kubectl -f URLkubectl -f local_YAML结果相同(如果 URL 包含相同的 YAML)。

于 2020-08-31T13:24:38.097 回答
1

这取决于。如果您通过存储库将 kong 配置和其他 kong 实体存储在 Kubernetes 中,那么使用 YAML 文件是有意义的。

另一方面,如果您通过手动调用 kubectl apply -f 来安装 Kong,那么您可以继续使用 URL。

于 2020-08-08T02:56:27.263 回答