问题标签 [kubernetes-go-client]

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 回答
462 浏览

kubernetes - 从同一节点的 pod 内部获取 NodeIP 或 HostIP

我有一个场景,我想从托管在同一节点(daemonset pod)上的 pod 内部获取节点的 IP 地址。因为,我想检查一下 - 如果pod-A已经存在于同一个节点上(使用该节点的 IP 地址识别)然后等待它终止,否则再次创建pod-A。在尝试在 K8s go-client 中实现相同功能时,我无法找到从当前调度该 pod 的 pod 内部获取节点 IP 的方法。我遇到的最好的方法是这种方法:https ://github.com/kubernetes/kubernetes/blob/v1.20.4/pkg/util/node/node.go#L149但问题是它需要传递节点名称也随之而来。有没有其他方法可以从 Pod 内部获取相同的信息?

0 投票
2 回答
155 浏览

kubernetes - 获取我的 k8s 微服务应用程序的非命名空间依赖项

如果我在命名空间中有一个微服务应用程序,我可以使用 k8s api 轻松获取该命名空间中的所有命名空间资源。但是,我无法查看微服务应用程序正在使用哪些非命名空间资源。如果我想查看我的非命名空间资源,我只能一次查看它们,而没有指示哪些是微服务应用程序中的依赖项。

如何找到与我的申请相关的依赖项?我希望能够引用应用程序的命名空间资源正在使用的 PersistentVolumes、StorageClasses、ClusterRoles 等内容。

0 投票
1 回答
377 浏览

kubernetes - 如何为某个资源 Kubernetes Go Operator 生成事件

我正在用 Go 编写一个 Kubernetes Operator,我想以与 Pod 相同的方式生成事件,即在协调的每个点我想编写一个可以使用kubectl describe myresource.

我找到了可以让我这样做的包,但我不明白如何使用它:https ://github.com/kubernetes/client-go/blob/master/tools/record/event.go

示例骨架代码:

0 投票
1 回答
410 浏览

kubernetes - 如何使用 kubernetes go-client 进行模拟工作

我正在寻找一种kubectl auth can-i get pods --as system:serviceaccount:default:test使用 kubernetes go-client 运行的方法。

到目前为止,我得到了以下代码,但它不起作用,因为与kubectl auth can-i. 我知道这是关于冒充,所以我正在添加rest.ImpersonationConfig,但它仍然无法正常工作。

重现步骤:

代码:

0 投票
2 回答
47 浏览

go - 如何获取运行进程的 kubernetes 角色或服务帐户

我正在使用 k8s go-client 做很多事情,但应用程序的用户看到的错误似乎是由于他们的实例正在运行的服务帐户的错误配置引起的,例如尝试访问他们正在使用的资源不允许,我想在启动应用程序时显示警告,或者至少能够访问绑定到运行代码的 pod 的服务帐户的角色的允许资源/组。有没有办法做到这一点?

0 投票
1 回答
178 浏览

go - 如何通过客户端获取 Kubernetes 节点的状态?

我想通过 go 客户端获取节点列表及其在 Kubernetes 中的状态。我正在使用 clientset.CoreV1().Nodes().List(metav1.ListOptions{}) ,并且能够获取节点列表和一些信息,例如节点标签,但我找不到status.phase那里(对于给我状态的 pod)。

我搜索并找到了NodeConditionhttps://github.com/kubernetes/api/blob/9b64426eca51a74faa7cc9bd732a533d339c69c2/core/v1/types.go#L4911)但我找不到任何关于如何使用它的文档,我无法做到自己工作。有人可以告诉我如何通过客户端获取节点的状态吗?

0 投票
2 回答
464 浏览

kubernetes - 如何使用 Kubernetes go-client 库找到 Pod 的控制器(部署/DaemonSet)?

使用以下代码,我可以获取集群中运行的所有 Pod。如何使用 Kubernetes go-client 库找到 Pod 控制器(部署/DaemonSet)?

0 投票
1 回答
46 浏览

go - 如何使用 client-go 获取 Node 状态

我目前这里有一个节点(node *corev1.Node),我希望得到节点的状态以知道它是否异常,所以我这样做

我不知道这是对的。如果是,有没有更好的方法来解决它?

0 投票
0 回答
32 浏览

go - 想要使用 golang 控制器监控响应对象

我有以下伪代码:

resp := a.CreateResource(a,b,c)

resp.status 对象有几种状态,如创建、挂起、可用。

我想添加控制器观察器,它将持续观察 resp.status 的变化,无论何时发生状态变化,都需要在日志或指标中捕获。

我正在使用以下方法:

我想知道,我如何以这样的方式编写,它像轮询代理一样运行并检查状态变化。

模块参考 - sigs.k8s.io/controller-runtime/pkg/controller 和 k8s.io/client-go/kubernetes

0 投票
0 回答
527 浏览

go - kubernetes go-client:如何使用 kubeconfig 文件刷新令牌

尝试使用 kubeconfig 文件连接到 kubernetes 集群时,出现以下错误

Response: {"error":"invalid_request","error_description":"Refresh token is invalid or has already been claimed by another client."}

以下是执行的指令序列

  1. 使用 kubeconfig 文件创建客户端集
  1. 连接到命名空间
  1. 如果出错,获取最新的 kubeconfig 文件

  2. 从第 1 步执行

如果我重新启动服务器并尝试运行此代码,它就可以工作。但我需要一种方法让它在不重新启动服务器的情况下工作。