小编spi*_*nus的帖子

如何使用API​​在pod(kubernetes)中执行命令?

我正在尝试在contianer中执行命令(使用kubernetes 1.1.2在GKE上的Kubernetes POD中).

阅读文档我明白我可以使用GET或POST查询在API端点上打开websocket连接来执行命令.当我使用GET时,它不能完全工作,返回错误.当我尝试使用POST时,类似的东西可能会起作用(但事实并非如此):

curl 'https://admin:xxx@IP/api/v1/namespaces/default/pods/hello-whue1/exec?stdout=1&stderr=1&command=ls' -H "Connection: upgrade" -k -X POST -H 'Upgrade: websocket'
Run Code Online (Sandbox Code Playgroud)

对此的回应是

unable to upgrade: missing upgrade headers in request: http.Header{"User-Agent":[]string{"curl/7.44.0"}, "Content-Length":[]string{"0"}, "Accept":[]string{"*/*"}, "Authorization":[]string{"Basic xxx=="}, "Connection":[]string{"upgrade"}, "Upgrade":[]string{"websocket"}}
Run Code Online (Sandbox Code Playgroud)

看起来应该足以升级post请求并开始使用websocket流,对吧?我错过了什么?

我还指出,使用POST打开websocket可能违反了websocket协议(只有GET才能工作?).

google-cloud-platform kubernetes google-kubernetes-engine

8
推荐指数
1
解决办法
3374
查看次数

如何在jenkins gerrit触发器上发布自定义标签上的投票?

我正在使用jenkins gerrit-trigger插件.它确实触发了这项工作.问题是,工作完成后,jenkins无法发送评论,因为我在gerrit中没有"经过验证"的标签.

我发现在配置中有Gerrit Reporting Values部分(Jenkins - > Manager - > Gerrit Trigger - >点击你的gerrit"编辑"按钮).在该部分中,有"验证"和"代码审查"的硬编码子部分.另一个小节是"Gerrit Verified Commands",其命令如下:

gerrit review <CHANGE>,<PATCHSET> --message 'Build Successful <BUILDS_STATS>'  --verified <VERIFIED> --code-review <CODE_REVIEW>
Run Code Online (Sandbox Code Playgroud)

我如何在这里添加自定义标签?

我试图将命令更改为:

gerrit review <CHANGE>,<PATCHSET> --message 'Build Successful <BUILDS_STATS>'  --acceptance-tests $ACCEPTANCE_TESTS_VOTE --code-quality $CODE_QUALITY_VOTE
Run Code Online (Sandbox Code Playgroud)

来自docs:

变量将具有上面定义的值.该变量将具有构建结果的URL.

您还可以使用以$ ENV_VAR语法启动的构建中的任何环境变量.

如何添加新的"参数"或如何传递环境变量?

我试图使用EnvInject插件,但似乎环境变量没有填充值(来自jenkins的错误消息说没有$ VAR参数).

gerrit jenkins jenkins-plugins

7
推荐指数
2
解决办法
4374
查看次数

如何加速python网络?

我发现python网络很慢.

我有一台服务器(用C语言编写).我用我的客户端(python)测试了它.我能达到2MB/s.它让我担心所以我检查了这个:

host1(客户端): cat some_big_file | nc host2 9999

host2(服务器): nc -l 0.0.0.0 9999 | pv > /dev/null

我达到了大约120MB/s(1Gb)的速度.

服务器不是瓶颈,我们在生产中使用它,它可以处理更多.但是要确保我复制简单的python gevent服务器进行测试.它看起来像这样:

  #!/usr/bin/env python
  from gevent.server import StreamServer
  from gevent.pool import Pool

  def handle(socket, address):
       while True:
           print socket.recv(1024)

  pool = Pool(20000)
  server = StreamServer(('0.0.0.0', 9999), handle, spawn=pool)
  server.serve_forever()
Run Code Online (Sandbox Code Playgroud)

接下来的措施是发送nc (host1)gserver (host2).

host1:cat some_big_file | nc host2 9999 host2:./gserver.py | pv > /dev/null

输出host2:[ 101MB/s].不错.

但是,当我使用我的python客户端时,它很慢.我把客户 …

python sockets performance network-programming python-2.7

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