【问题标题】:k8s Ingress with Kong - Plugin Application and Configuration via cURL vs YAMLk8s Ingress with Kong - 通过 cURL 与 YAML 的插件应用程序和配置
【发布时间】:2020-11-28 00:29:51
【问题描述】:

我正在尝试使用 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 应用程序?

【问题讨论】:

    标签: kubernetes-ingress kong kong-plugin kong-ingress


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      我一直在检查Kong's installation guide,它指定:

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

      所以从技术上讲,这里我们只是从他们的 repo 中获取纯 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 plugin page 上的完全一致:

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

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

      &lt;service&gt; 是此插件配置所针对的 Service 的 idname

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

      Kong 插件的最佳实践是 URL 调用还是 YAML 应用程序?

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-02-24
        • 2019-07-24
        • 2018-10-15
        • 2021-12-14
        • 2022-01-22
        • 1970-01-01
        • 2019-03-24
        • 2021-06-23
        相关资源
        最近更新 更多