c# - 在 C#.Net 控制台应用程序中通过 Kubernetes API 执行命令“ConnectGetNamespacedPodExec”时出现“BadRequest”错误
问题描述
我正在开发一个控制台 C#.Net 工具来通过其 API 访问 Kubernetes,我能够连接到命名空间和 Pod,但我无法在 Pod 内执行命令。当我到达最后一行代码时收到错误“BadRequest”,可能是命令“ConnectGetNamespacedPodExec”的参数有问题。如果有人可以帮助我,我将不胜感激。
KubernetesClientConfiguration myConfig = new KubernetesClientConfiguration();
myConfig.SkipTlsVerify = true;
myConfig.Host = "https://myURL.com";
myConfig.ClientCertificateData = "Removed";
myConfig.ClientCertificateKeyData = "Removed";
var k8sClient = new Kubernetes(myConfig);
//List Namespaces
var NameSpacesList = k8sClient.ListNamespace();
foreach (var item in NameSpacesList.Items)
{
Console.WriteLine(item.Metadata.Name);
}
//List Pods
var PodsList = k8sClient.ListNamespacedPod(NameSpacesList.Items[5].Metadata.Name); //Karam
foreach (var item in PodsList.Items)
{
Console.WriteLine(item.Metadata.Name);
}
//This is where the error happens
var str = k8sClient.ConnectGetNamespacedPodExec(name: PodsList.Items[0].Metadata.Name, namespaceParameter: NameSpacesList.Items[5].Metadata.Name, command:"ls", stderr: true, stdin: false, stdout: true, tty: true);
我得到的错误:
mscorlib.dll 中出现“Microsoft.Rest.HttpOperationException”类型的未处理异常。附加信息:操作返回无效状态代码“BadRequest”
异常详情:
Microsoft.Rest.HttpOperationException was unhandled
HResult=-2146233088
Message=Operation returned an invalid status code 'BadRequest'
Source=KubernetesClient
StackTrace:
at k8s.Kubernetes.<ConnectGetNamespacedPodExecWithHttpMessagesAsync>d__88.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()
at k8s.KubernetesExtensions.<ConnectGetNamespacedPodExecAsync>d__121.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
at k8s.KubernetesExtensions.ConnectGetNamespacedPodExec(IKubernetes operations, String name, String namespaceParameter, String command, String container, Nullable`1 stderr, Nullable`1 stdin, Nullable`1 stdout, Nullable`1 tty)
at LMT.Program.Main(String[] args) in c:\MK\Projects\LMT\LMT\LMT\Program.cs:line 97
at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
解决方案
推荐阅读
- python - 有没有一种简单、有效的方法可以将 5000 多张图片从谷歌存储下载(打开)到 python 笔记本?
- php - 使用内置服务器将一个 php 文件链接到另一个
- python - 在 Python 3.x 中将回历(伊斯兰日期)转换为公历
- python - 使用 nltk 进行句子检测的问题
- ios - 将数据传递给两个标签栏中的两个视图控制器
- android - Flutter audioplayers apk 版本不起作用
- swift - 在 macOS 上额外添加菜单栏
- https - 我可以获得用于本地开发的 Letsencrypt 证书吗
- python - 如何在 Anaconda3 中安装 pyttsx?
- spring-boot - 配置服务器中的 Swagger 2 @ApiIgnore 属性切换