问题标签 [client-go]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
845 浏览

kubernetes - Kubernetes 日志拆分(Stdout/Stderr)

当我调用 kubectl logs pod_name 时,我得到了 stdout/err 的组合。是否可以指定我只想要标准输出或标准错误?同样,我想知道是否可以通过 k8s 休息接口这样做。我已经搜索了几个小时并通读了存储库,但找不到任何东西。

谢谢!

0 投票
1 回答
1571 浏览

go - 如何在 Kubernetes 中过滤已完成的作业

我正在尝试按状态过滤使用 golang kubernetes client-go lib 完成的作业。

我检查了其他解释如何使用 kubectl 获得工作的答案,如下所示:

但我不知道如何将 jsonpath 输出“转换”为过滤器或列表选项

如果我按状态阶段和标签搜索 pod,我会执行以下操作:

但是如果我要实现 jsonpath{.items[?(@.status.succeeded==1)].metadata.name}

这将遍历所有作业并检查状态下的成功键是否等于 1。适用于所有工作。

有没有办法寻找那些更“记忆友好”的工作,或者在 ListOptions 中使用 jsonpaths 的方法?

0 投票
1 回答
382 浏览

kubernetes - Kubernetes go client api 用于节点的版本

返回特定节点的版本。如何使用 client-go 执行此操作?

0 投票
1 回答
455 浏览

kubernetes - 使用 client-go 验证 kubernetes pod 是否已删除

我试图确保在继续另一个 Kubernetes 操作之前删除一个 pod。所以我的想法是调用 Pod 删除函数,然后调用 Pod 获取函数。

0 投票
1 回答
1550 浏览

kubernetes - 如何处理 K8s go client informer 错误事件

我编写了一个基于 Go 的 K8s 客户端应用程序来连接 K8s 集群。为了处理来自 K8s 集群的 Pod、Namespace 和 Node 的实时通知(添加、删除、更新),我编写了一个通知器。代码片段如下。

我想特别注意“runtime.HandleCrash()”函数,(我猜)它有助于将运行时恐慌/错误重定向到恐慌文件。

请参阅下面的一些错误,这些错误在恐慌文件中报告/收集。

我的问题是:有什么方法,我可以编写通知程序,它向我的应用程序报告/通知特定错误,而不是写入恐慌文件?这样,我的应用程序将能够更优雅地处理这个预期的事件。

有什么方法可以注册回调函数(类似于 Informer.AddEventHandler())。

在一个特定的用例中,我关闭了 K8s 集群,导致告密者将错误消息抛出到恐慌文件中,如下所示。

在我启动 K8s 集群节点的那一刻,它停止报告这些错误。

0 投票
2 回答
470 浏览

go - 无法返回任何 k8s client-go 对象

我必须遵循代码:

包分析器

我收到以下错误:

这似乎没有意义。我试图改为v1beta1.DeploymentList直接返回,但我得到了同样的错误。我以前在 Golang 中从未遇到过这种情况。

这种模式似乎是故意的k8s.io/client-go

  • 这背后的理由是什么?
  • 编写这样的函数的惯用方式是什么?
  • golang 的哪些功能/模式允许人们编写这样的函数,其他人可以调用和检查返回的对象但不能进一步返回它们?

另外,附上go.mod文件以供参考

0 投票
1 回答
257 浏览

go - clientset.AuthorizationV1().SelfSubjectAccessReviews().Create() 的意外结果

我正在尝试将kubectl auth can-i 逻辑合并到我的代码库中,但是当代码运行时,结果不是我所期望的。

我有 2 个用户(minikube / jenny)。minikube具有完整的集群范围访问权限,但jenny仅限于命名空间角色/角色绑定:

使用 cli,我得到了我期望的结果:

但在我的代码中,珍妮没有提出创建权限。response.Status.Allowed始终false适用于jenny (对于minikube始终适用)

0 投票
1 回答
1225 浏览

go - 使用client-go删除所有kubernetes资源?

是否可以使用客户端 go 删除具有特定标签的所有资源?client-go 的版本是 0.17.3

我在客户端看到每种资源类型都有一个字段,但它们有不同的接口。

是否有可能做这样的事情(从这里得到):

但是使用客户端去?

0 投票
1 回答
544 浏览

go - Openshift API query with Openshift/Client-go

Im trying to list all the build configs in openshift with help of openshift/client-go

I have got all the dependencies via glide. glide.yaml glide update -v

I see that all my packages are part of vendor. But I cant get the type changed to vendor config.

I have deleted the vendor directory in the current directory and made sure gopath have all the required dependencies as an alternative try, But that doesnt work. I also tried to link ~/go/src/github.com/openshift/client-go/vendor/* vendor but that doesnt seem to work.

I also tried the solution List Openshift objects via Go client API. Which did not work.

0 投票
1 回答
3637 浏览

go - 使用 client-go API 列出部署控制器管理的 pod 不起作用

我在 Go 中使用本机 client-go API 来获取在给定命名空间(“默认”)下由 Deployment 类型控制器管理的 Pod 列表,但返回的列表不包含 Pod 列表

https://pkg.go.dev/k8s.io/api/apps/v1?tab=doc#Deploymentobj的类型*appsv1.Deployment在哪里

函数定义为

返回的类型 - https://pkg.go.dev/k8s.io/api/core/v1?tab=doc#PodList应该包含Items []Pod我返回的信息中不可用的切片。

在 Go 代码中使用以下包