小编Joh*_*ell的帖子

如何允许在 minikube 节点内使用私有的不安全注册表?

我知道这个问题的各种排列大约有一千个答案,但我尝试过的大约十五个答案都没有奏效。

我在 Mac OS Sierra 上运行并使用 Minikube 0.17.1 以及 kubectl 1.5.3。

我们运行自己的私有 Docker 注册表,该注册表不安全,因为它不向互联网开放。(这不是我的选择或在我的控制范围内,因此不公开讨论)。这是我第一次涉足 Kubernetes 以及实际上的容器编排。我对 Docker 的总体了解也处于中等水平,所以我在这里被术语/平台淹没了。

当我执行时

kubectl run perf-ui --image=X.X.X.X/performance/perf-ui:master
Run Code Online (Sandbox Code Playgroud)

我懂了

XXXX/performance/perf-ui:master 的映像拉取失败,这可能是因为此请求没有凭据。详细信息:(守护程序的错误响应:获取https://XXXX/v1/_ping:拨打 tcp XXXX:443:getsockopt:连接被拒绝)

我们有一个 Ubuntu 盒子,可以访问相同的注册表(不使用 Kubernetes,只使用 Docker),运行得很好。这可能是由于

DOCKER_OPTS="--insecure-registry XXXX"

位于 /etc/default/docker.

我使用 Docker for Mac 的 UI 进行了类似的更改。我不知道此更改在配置文件中持续存在。进行此更改后,docker pull 在我的笔记本电脑上工作了!再次强调,这只是使用 Docker,而不是 Kubernetes。有趣的是,当我进入 Minikube VM 时,我在 Mac 上遇到了相同的“连接被拒绝错误”(因为它尝试通过 HTTPS 访问),并且在更改后拉取起作用了。我觉得我正在做某事。

使用 sshing 进入 minikube(虚拟机创建了我的 minikube 启动)后

minikube ssh
Run Code Online (Sandbox Code Playgroud)

我将以下内容添加到 /var/lib/boot2docker/profile

export EXTRA_ARGS="$EXTRA_ARGS --insecure-registry 10.129.100.3
export DOCKER_OPTS="$DOCKER_OPTS --insecure-registry 10.129.100.3
Run Code Online (Sandbox Code Playgroud)

正如您可以推断的那样,没有任何效果。我知道我尝试过其他事情,但它们也失败了。

我知道这不是最全面的解释,但过去 4 个小时我一直在深入研究这个问题。

最重要的是,docker …

macos kubernetes minikube

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

当使用window.open()时,如果新窗口也冻结了父窗口

非常简单的问题,真的.我到处都找到了一个我没有运气的确切问题的人......

在标签"A"中,我打电话window.open().新选项卡(选项卡"B")开始加载,其脚本包含一些ajax.它所做的ajax调用需要很长时间(这是故意的,因为我试图处理冗长的ajax调用).当标签"B"在超过10秒后冻结时,标签"A"也会冻结.

我一直试着打电话window.open("url", "_blank");,window.open("url");似乎都没有解决问题.

为了让事情更加混乱,我尝试了实验,使标签"B"打开,ajax 不会超时,一切正常.然后我更改选项卡"B"中的URL参数(这是通过ajax发送数据库参数并且是冗长请求的原因)并且当它按预期超时时它仍然冻结窗口"A".

我确定我错过了什么.window.open()调用完成后,选项卡"B"与选项卡"A"有什么关系.我不明白他们是如何依旧相互联系的.虽然所有这些都在其他标签上进行,但工作正常.

为了记录我在Mac上使用Chrome但看到了类似的"量子纠缠",让我们在Safari中也称之为"量子纠缠".

此外,两个页面都使用DataTables jQuery插件.它是在API中进行的ajax调用.我无法想象DataTables如何成为这里的罪魁祸首,不过......

任何想法,SO社区???

提前致谢!

javascript ajax datatables window.open

4
推荐指数
3
解决办法
2172
查看次数

Docker daemon.json 日志配置无效

我有一个 mongodb docker 容器(从 docker repo 下载的库存)。它的日志大小不受限制(/var/lib.docker/containers/'container_id'/'container_id'-json.log)

这最近导致服务器填满,所以我发现我可以指示 docker 守护进程限制容器日志文件的最大大小以及拆分后将保留的日志文件数。(请原谅天真。这是一个工具环境,因此可以将事情设置为满足即时需求,而缺乏计划通常是痛苦的)

停止容器是不可取的(尽管它不会带来世界末日),因此这样做可能是一个合适的计划 G。

通过实验,我发现运行同一个 docker 镜像的不同实例并包含--log-opt max-size=1m --log-opt max-file=3docker run命令中可以很好地完成我想要的。

我了解到我可以将它包含在 docker daemon.json 文件中,以便它可以在所有容器中全局工作。我尝试将以下内容添加到文件“/etc/docker/daemon.json”

{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  }
}
Run Code Online (Sandbox Code Playgroud)

然后我向守护进程发送了一个 -SIGHUP。我确实观察到守护进程的日志吐出一些关于重新加载配置的信息,它提到了我进行编辑的确切文件路径。(注意:这个文件以前不存在。我创建了它并添加了内容。)这对正在运行的 Mongo 容器的日志输出没有影响。

重新加载守护程序后,我还尝试再次实例化Mongo 容器的不同实例,但它也没有观察到守护程序应具有的日志记录指令。我看到它的日志通过了 10m 标记并继续前进。

我的问题是:

  1. 是否应该通过守护程序更新日志记录以影响正在运行的容器?
  2. 如果没有,有没有办法告诉容器在仍在运行时重新加载此信息?(我明白了,docker update但这似乎不是可以更新的配置选项之一。
  3. 我的配置有问题吗?我测试了一个无意义的指令,看看错误是否会默默地失败,而他们没有。不在模式中的指令在守护进程的日志中引发了错误。这表明我添加的内容(如上所示)至少是预期的,但可能不完整或其他内容。这些命令似乎在运行命令中有效,但在配置中无效。此外,我最初尝试将“3”作为数字包含在内,这也引发了一个错误,当我对其进行字符串化时该错误消失了。
  4. 我确实在文件“/var/lib.docker/containers/'container_id'/hostconfig.json”中看到了 Mongo 容器的不同实例,其中我在其运行命令中包含了这些设置可见的指令。为 Mongo 容器的生产实例手动编辑此文件以匹配不同的概念验证容器配置是否有效/安全?

请参阅下面的一些系统详细信息:

  • Docker 版本 1.10.3,构建 20f81dd
  • Ubuntu 14.04.1 LTS …

linux ubuntu mongodb docker

4
推荐指数
2
解决办法
1990
查看次数

Nginx 反向代理到 Django 接收“上游从上游读取响应标头时过早关闭的连接”

长话短说

当 Nginxupstream prematurely closed connection while reading response header from upstream尝试通过 HTTP 反向代理到本地 Django 实例(没有 WSGI 中间件)时记录日志时,会发生什么 http/tcp 现象?

长版

冒着激怒社区的风险,我不会包含任何配置,因为虽然我确信它是相关的,但我正在尝试理解这种现象背后的理论。

我和一些队友维护一个网络服务器供内部使用。在/我们的内部工具世界中,事物永远不会产品化。我们通常会尽一切努力为我们的同事提供一些价值。风险和可用资源都很低。

因此,我们在独立建立 Python 2 Django 服务器时犯了一个大罪。没有 WSGI 中间件,没有额外的进程。我已经看到了警告,但我们已经做了我们已经做的事情。

我最近在这个令人讨厌的东西面前建立了一个 Nginx 实例,使我们能够以零停机时间“热交换”我们的 Web 应用程序实例。我仍然没有在中间插入任何东西。Nginx 只是反向代理,通过本地主机 http 到侦听本地主机非标准端口的 Django 实例。

进行此更改后,我们开始看到来自 Nginx 的 502 突发。有几个页面是“实时”的,因为它们会进行一些轮询来检查事物的更新。因此,对于我们拥有的用户数量来说,有“大量”的流量。

我实际上认为无论什么问题在引入 Nginx 之前就已经存在了,但是由于浏览器直接收到错误,它只是重试并且用户看不到问题,而现在他们收到了丑陋的 502 错误消息。

现在的问题是:如果我在 Nginx error.log 中看到upstream prematurely closed connection while reading response header from upstream这实际上意味着什么?我在这个网站上看到了很多关于配置更改建议的线程,这些建议似乎都不适合我,但我正在寻找的是理论。

这个错误是什么意思?当 Nginx 尝试将请求代理给 Django 时,它到底经历了什么?Django 拒绝连接吗?Django 会在连接完成之前关闭连接吗?

如果 Django 正在做这些事情,为什么?是否内存不足、线程不足、是否有某种原因限制线程数量等?

作为临时的周末修复的盲目尝试,我建立了应用程序的第二个实例,并将 Nginx 配置为对它们进行循环负载平衡。它似乎有效,但直到周一早上高峰负载到来时我才能确定。 …

django nginx python-2.x

4
推荐指数
1
解决办法
7347
查看次数

JMS使用什么应用程序协议?

我在Grad School和专业经验中学到了很多关于网络协议的知识,并且使用AJAX等编程方式发送了HTTP请求.

我专业工作的项目使用JMS进行沟通,我很好奇它是如何工作的.

当使用REST(例如)时,可以在URI或消息头中使用参数发出HTTP请求,以便调用服务并进一步描述其需求.

我工作的导师和我正在讨论JMS是如何工作的,而我正在努力在应用程序层面理解消息的实际发送方式.据我所知,JMS(我意识到JMS有很多实现),它是如何格式化发送数据的规范.

消息本身是否仍然通过HTTP(S)发送?它可能是SMTP吗?

足不出户极度深,我想了解一个会,在代码级别,从一个服务发送一个JMS消息到另一个?

我是否正确地考虑过这个问题?可以通过多种不同方式完成吗?是否有一个在行业中使用的惯例?

如果有人可以为我阐明JMS,我会很感激.

谢谢!

java architecture jms

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