如何使用Kubernetes secret使Nginx可配置?
2020-4-9 7:56:22
收藏:0
阅读:152
评论:2
我已经使用lua-resty-openidc作为入口控制器的工作openresty。 现在,nginx.conf是硬编码在我的镜像中,大概长成这样:
server {
server_name _;
listen 80;
location /OAuth2Client {
access_by_lua_block {
local opts = {
discovery = "/.well-known/openid-configuration",
redirect_uri = "/authorization-code/callback",
client_id = "clientID",
client_secret = "clientSecret",
scope = "openid profile somethingElse",
}
...
}
proxy_pass http://clusterIp/OAuth2Client;
}
}
由于Nginx不支持环境变量,有没有一种简单的方法使我的nginx.conf是可配置的,例如:
server {
server_name ${myServerName};
listen ${myServerPort};
location /${specificProjectRoot} {
access_by_lua_block {
local opts = {
discovery = "${oidc-provider-dev-url}/.well-known/openid-configuration",
redirect_uri = "${specificProjectRoot}/authorization-code/callback",
client_id = "${myClientId}",
client_secret = "${myClientSecret}",
scope = "${myScopes}",
}
...
}
proxy_pass http://${myClusterIP}/${specificProjectRoot};
}
}
这样,无论是哪个命名空间的团队,都可以重用我的镜像,只需提供一个包含其项目具体配置的kubernetes secret即可。
点赞
用户9962007
虽然 envsubst 是将 Kubernetes 对象与容器文件连接在一起的好方法,但 Kubernetes 本地的 ConfigMap 正是为此目的精心设计的:将非敏感的键值数据传递到容器,包括像 nginx.conf 这样的整个文件。
以下是一个特别针对 NGINX 的 ConfigMap 和 Deployment 配对的工作示例(包括问题和答案):
2022-06-20 07:11:44
评论区的留言会收到邮件通知哦~
推荐文章
- Lua 虚拟机加密load(string.dump(function)) 后执行失败问题如何解决
- 我想创建一个 Nginx 规则,禁止访问
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?

您需要在运行时从模板版本中渲染
nginx.conf(正如 Juliano 的评论所述)。为此,您的Dockerfile可以如下所示:FROM nginx COPY nginx.conf.template /etc/nginx/ CMD ["/bin/bash", "-c", "envsubst < /etc/nginx/nginx.conf.template > /etc/nginx/nginx.conf && exec nginx -g 'daemon off;'"]请注意,它将
nginx.conf.template复制到您的镜像中,这将是带有形式为${MY_SERVER_NAME}的变量的模板配置,其中MY_SERVER_NAME通过您的 Kubernetes 清单从配置映射或秘密等中被注入为环境变量。