小编mst*_*son的帖子

Helm 管理一组服务

我有一个 Kubernetes 集群,它运行许多独立的、离散的服务。我想使用 helm 来部署它们,并且我为每个单独的资源制作了一个 helm chart。

但是,现在我希望能够将集群部署为单个实体,但我不清楚 helm 如何支持将多个图表拼接在一起。

当我查看示例存储库时,它们只是在单个图表的模板文件夹中包含每个模板文件,然后是一个巨大的、庞大的 Values.yaml 文件。

对我来说,这似乎很笨拙,尤其是在 2000 行 Values.yaml 周围爬行寻找设置。

有没有办法采用如下所示的文件夹结构:

helm
|____ Service1
      |_______ values.yaml
      |_______ templates
      Service2
      |_______ values.yaml
      |_______ templates
      Service3
      |_______ values.yaml
      |_______ templates
Run Code Online (Sandbox Code Playgroud)

并将其打包到一个部署中,而无需手动合并和删除文件和值?

kubernetes kubernetes-helm

5
推荐指数
2
解决办法
4586
查看次数

在nginx反向代理后面处理flask url_for

我有一个使用 nginx 进行反向代理/ssl 终止的烧瓶应用程序,但是在烧瓶中使用 url_for 和重定向时遇到了麻烦。

nginx.conf 条目:

location /flaskapp {
  proxy_pass http://myapp:8080/;
  proxy_set_header Host $http_host;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
Run Code Online (Sandbox Code Playgroud)

这个想法是用户导航到

https://localhost:port/flaskapp/some/location/here

这应该传递给烧瓶

http://localhost:8080/some/location/here

这在导航到定义的路线时工作得相当好,但是如果路线有redirect(url_for('another_page')),浏览器将被定向到

http://localhost:8080/another_page

并且失败了,当我真正想去的 URL 是:

https://localhost:port/flaskapp/another_page

我已经针对类似情况尝试了其他几个答案,但似乎没有一个完全符合我在这里所做的。我尝试过使用_external=True、设置app.config['APPLICATION_ROOT'] = '/flaskapp'和不同proxy_set_header命令的多次迭代,但nginx.conf没有成功。

更复杂的是,我的 Flask 应用程序正在使用flask-loginCSRF cookie。当我尝试设置APPLICATION_ROOT应用程序时,停止考虑由flask-login有效设置的 CSRF cookie ,我认为这与来源有关。

所以我的问题是,我如何做到这一点,以便当 Flask 将 a 返回redirect()给客户端时,nginx 知道它给定的 URL 需要flaskapp写入其中?

nginx flask flask-login

5
推荐指数
1
解决办法
5038
查看次数

了解JavaScript中的异步/等待模式

我对JavaScript编程比较陌生,所以回调一直给我带来麻烦.我正在使用支持ES7(Meteor)的"async/await"语法的框架,但是我很难理解如何实现调用其他函数的异步函数.

我想做的事:用户输入URL,从URL获取数据,处理数据并将其放入数据库.我希望以非阻塞方式进行此操作,以便用户可以在此过程发生时继续使用该应用程序.

伪代码:

async function foo(URL) {
    try {
        //using request-promise npm package to make the request
        const data = await makeRequestPromise(URL) 
        const parsedData = await myParsingFunciton(data);
        MyDB.insert({
            parsedData,
        });
    catch (err) {
        console.log(err);
    }
Run Code Online (Sandbox Code Playgroud)

所以我有几个问题:

  • 在这个异步函数范围内发生的任何事情都是非阻塞的吗?
  • 如果是这样,我可以使用一系列同步函数,因为我无论如何都无法解析数据吗?
  • 如果我尝试等待未定义为异步的函数(例如myParsingFunction)会发生什么?我的研究似乎暗示该函数被迫返回一个承诺,但我不确定我将如何确定.在代码中这样做不会返回错误,但JavaScript似乎出乎意料地容忍返回方面的怪异.

我想补充一点,我的函数可以工作,而且事情会进入数据库,但我不知道如何测试它是否实际上是非阻塞的.

javascript async-await

3
推荐指数
1
解决办法
706
查看次数