我正在尝试在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才能工作?).
也
我正在使用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参数).
我发现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客户端时,它很慢.我把客户 …