我正在使用 Kubernetes v1.7 运行一个多容器 pod - 一个应用程序容器和一个 sidecar。我想重新启动 Pod,以防应用程序容器死亡。如何实现这一目标?
我有一个与此类似的原型文件。
syntax = "proto3";
package proto;
import "github.com/gogo/protobuf/gogoproto/gogo.proto";
import "google/protobuf/struct.proto";
message JobCreateRequest {
string Name = 1 [(gogoproto.jsontag) = "name", (gogoproto.moretags)= "validate:\"required,max=100\""];
string Description = 2 [(gogoproto.jsontag) = "description", (gogoproto.moretags) = "validate:\"required,max=100\""];
google.protobuf.Value Data = 3 [(gogoproto.jsontag) = "data", (gogoproto.moretags) = "validate:\"required\""];
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用“encoding/json”库将 json 以下解组到 protobuf 中:
{
"name": "India",
"description": "test job",
"data": {
"id": 1
}
}
Run Code Online (Sandbox Code Playgroud)
将请求json解码为protobuf的代码是:
json.NewDecoder(r.Body).Decode(req)
Run Code Online (Sandbox Code Playgroud)
但是 JobCreateRequest 结构中的结果 Data 字段始终设置为nil。在 protobuf 中使用 struct Value 的正确方法是什么?
我在维基百科关于“系统调用”的部分阅读,当“用户级”线程进行系统调用时,最终“内核”线程实际执行请求。那么这是否意味着用户线程被取消调度并使用内核线程进行上下文切换?如果是,结果如何返回给用户线程?
我对维基百科上的这一行感到困惑:“多对一模型:来自进程中任何用户线程的所有系统调用都由单个内核级线程处理。”
我试图通过以下方式从作为Future的函数返回一个元组:
def f:Future[(List[Int],List[String])] = Future{
(List(1,2,3),List("Hello","World"))
}
Run Code Online (Sandbox Code Playgroud)
我从main打电话如下:
var (a,c) = f
Run Code Online (Sandbox Code Playgroud)
这给了我以下错误
Error: constructor cannot be instantiated to expected type;
found : (T1, T2)
required: scala.concurrent.Future[(List[Int], List[String])]
Run Code Online (Sandbox Code Playgroud)