k8s & kong 里怎么方便添加一个 path 用于返回字符串?

2020-11-27 18:17:56 +08:00
 zealinux

需求:

比如访问: http://example.com/abAB 返回是固定的一行文本字符串 (这个文本是微信给的,path 也是固定的,其实是用来验证域名所有者的)

现在 example.com 域名是定位到 k8s 里的 kong

kong 和应用服务都是部署在 k8s 里的。 域名也是 DNS 解析到 kong 的 LB 上的,

想到的一个方法

再在 k8s 里部署个 nginx (唯一作用就是这一个 path ), 然后用 kong 设置 route 绑定到这个 nginx 服务。但感觉有点复杂。

问题:有没有更好的方式?


不想在 k8s 的外面部署 nginx,即域名不能改 DNS 解析。

2035 次点击
所在节点    Kubernetes
6 条回复
chazyu1996
2020-11-27 18:39:30 +08:00
ingress
zzzmj
2020-11-27 19:46:06 +08:00
可以使用 kong 的 pre-function 插件 给 kong 注册一个 KongPlugin plugin 选择 pre-function,然后编写一个 lua 脚本即可
zzzmj
2020-11-27 19:48:47 +08:00
k8s yaml 如下,在 ingress 层加 annotation 即可

---
apiVersion: configuration.konghq.com/v1
kind: KongPlugin
metadata:
name: plugin name
plugin: pre-function
config:
functions:
- |
local path = kong.request.get_path()
if string.sub(path, -14) == "文件名.txt" then
return kong.response.exit(200, "微信要求返回的内容")
end
zealinux
2020-11-30 13:58:13 +08:00
@zzzmj 感谢,

我执行时报错了,不知道哪里错了。
kubectl create -f wechat-verify-domain.yaml

The KongPlugin "wechat-verify-domain" is invalid: plugin: Required value
zzzmj
2020-11-30 17:26:46 +08:00
zzzmj
2020-11-30 17:28:53 +08:00
看看第二个 tab Kubernetes 里怎么写的 yaml,照着写一个试试

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/729957

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX