我正在尝试使用Kubernetes的C#客户端来定义一个部署规范。我的规范的字段值是由其他应用程序生成的。因此,部署有时会失败,我会得到一个Unprocessable entity(Microsoft.Rest.HttpOperationException)错误。但是,确实很难确定哪个字段会导致无法处理的实体错误。
谁能告诉我怎样才能识别出错误的字段?
下面是跟踪信息:
Microsoft.Rest.HttpOperationException: Operation returned an invalid status code 'UnprocessableEntity'
at k8s.Kubernetes.CreateNamespacedDeploymentWithHttpMessagesAsync(V1Deployment body, String namespaceParameter, String dryRun, String fieldManager, String pretty, Dictionary`2 customHeaders, CancellationToken cancellationToken)
at k8s.KubernetesExtensions.CreateNamespacedDeploymentAsync(IKubernetes operations, V1Deployment body, String namespaceParameter, String dryRun, String fieldManager, String pretty, CancellationToken cancellationToken)
at k8s.KubernetesExtensions.CreateNamespacedDeployment(IKubernetes operations, V1Deployment body, String namespaceParameter, String dryRun, String fieldManager, String pretty)发布于 2019-06-19 12:00:58
通过打印出Microsoft.Rest.HttpOperationException的Response.Content字段,我能够获得更详细的错误信息。
try
{
// Code for deployment
}
catch(Microsoft.Rest.HttpOperationException e)
{
Console.WriteLine(e.Response.Content);
}发布于 2019-06-18 10:23:45
所有的Kubernetes请求都要通过kube-apiserver。部署规范需要符合API规范文档中的here。
您可以从查看kube-apiserver日志开始。如果您有一个有效的部署(您是否有一个部署YAML清单文件?),您也可以向后工作。例如,您可以尝试从部署的YAML清单中删除一些字段,然后运行kubectl apply -f deployment.yaml查看是否可以重现该错误。
https://stackoverflow.com/questions/56640917
复制相似问题