问题标签 [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 回答
229 浏览

kubernetes - 通过客户端调用部署yaml go示例

我正在尝试通过客户端调用更新部署 go for k8。但是我很难通过client-go API更新deployment.yaml文件的任何代码示例,以等效于kubectl apply -f deployment.yaml

0 投票
2 回答
847 浏览

kubernetes - 如何通过在golang中传递像kubectl这样的yaml文件来创建kubernetes对象

我正在创建一个工具,它将使用 yaml 文件创建 kubernetes 对象。我是用golang写的。该工具希望实现与kubectl apply -f test.yaml

0 投票
2 回答
1418 浏览

kubernetes - 使用 Kubernetes client-go 如何以编程方式检查 Node 是否“就绪”?

看起来我可能需要遍历v1.Node->NodeStatus->Conditions[]切片并按转换时间排序并查找最近的定时条件是否为NodeConditionType == "Ready". 我想知道是否有更好的方法或者该方法是否有缺陷?

0 投票
1 回答
849 浏览

kubernetes - Kuberentes client-go 方法来排空一个节点

是否有一个 go 客户端来耗尽 Kubernetes 节点。我正在使用现有的 kubernetes E2E 框架编写 E2E 测试用例,我需要涵盖用于存储的节点耗尽场景。

0 投票
1 回答
2643 浏览

kubernetes - Go mod 下载抱怨构建限制

我一生都无法弄清楚为什么会这样。另一个人声称这对他有用,而且我有一个环境问题。然而,每隔十几个项目对我来说都运行良好。

所以只是为了好玩,我从一个完全原始的围棋环境开始。(rm -rf ~/go)

没有 go.mod/go.sum 文件。没有其他回购。没有多余的文件或任何类型的文件。除了我的克隆回购之外,我的路径中绝对没有任何内容。

我克隆了我的 repo,然后启用了 go 模块,“go get k8s.io/code-generator”,我每次都会收到这个错误:

因此,这次我使用 go.mod 文件重复上述测试,该文件指定了所需的 k8s.io/code-generator 版本(1.13.1)。同样的错误。

有人知道这里有什么交易吗?我怀疑这是与 macOS 相关的问题或其他问题。

0 投票
0 回答
1868 浏览

go - 如何使用 client-go 部署 yaml 文件中描述的 pod?

在不使用 kubectl 的情况下,我想使用 client-go 来部署 yaml 文件中描述的部署/服务。哪种方法最好:客户集、休息还是动态?我不想解析 yaml 文件并在客户端中设置部署对象的每个属性。那么有没有办法只加载 yaml 配置(可能转换为 json 格式)并直接应用它?

0 投票
1 回答
971 浏览

kubernetes - 使用 k8s client-go 获取命名空间配额

我正在寻找一种使用 client-go 获取命名空间资源配额的方法,类似于kubectl describe ns my-namespace-name.

我已经尝试过ns, err := k8client.CoreV1().Namespaces().Get("my-namespace-name", metav1.GetOptions{}),但它没有提供配额信息。

也尝试过ns, err := k8client.CoreV1().ResourceQuotas("my-namespace-name").Get("name", metav1.GetOptions{}),但我不知道name在.Get() 中将什么作为参数。尝试了命名空间名称,尝试了https://kubernetes.io/docs/reference/kubectl/overview/#resource-types中的几种资源类型,但没有遇到类似resourcequotas "namespaces" not foundresourcequotas "limits.cpu" not found

也试过ns, err := k8client.CoreV1().ResourceQuotas("my-namespace-name").List(metav1.ListOptions{})了,但没有返回结果。

任何关于如何获得它的想法将不胜感激!

0 投票
1 回答
149 浏览

go - 如何操作 Kubernetes PodSpec 对象

我正在寻找有关 golang 代码的帮助,以根据用户输入修改 podspec。

这是我的流量。

用户提供了一个不完整的 yaml 文件来创建部署。假设它们缺少/更新环境变量信息。用户还提供了一个变量 foo [{name: "abc", value: "xyz"}, {name: "ab", value: "12"}],其中包含环境变量信息。在创建部署之前,我需要读取 yaml 文件并合并变量。

到目前为止,这就是我想出的,阅读 yaml 文件。

从 dep 我可以找到 podspec。现在我需要根据用户输入 foo 来更新对象。不确定我是否可以使用 XXX_Merge 功能。请推荐并尽可能提供 XXX_Merge 函数的工作示例指针。https://godoc.org/k8s.io/apiserver/pkg/apis/example/v1#PodSpec.XXX_Merge

请让我知道是否有其他方法。

0 投票
1 回答
5138 浏览

go - 如何使用假客户端为客户端编写简单的测试?

问题

我正在寻找正确的方法来测试下面的代码,我找不到任何示例我该怎么做。只有main_test.go,但它缺少 main.go,对我来说,如何使用它并不明显。我也经历了 Github问题,但找不到任何有用的东西。

功能:

测试:

我认为我的测试应该如下所示,但是我该如何使用config := fake.NewSimpleClientset(),我应该将它传递给GetNamespaceCreationTime函数吗?

0 投票
2 回答
2163 浏览

go - 如何从 kubectl describe pods 中检索所有数据来自集群内 client-go api 调用

我需要获取一些 pod 信息,这些信息将用于在集群中运行的一些单元测试。我需要 kubectl describe po 提供的所有信息,但来自集群 api 调用。

我有一些工作代码可以对 apis/metrics.k8s.io/v1beta1/pods 进行 api 调用,并在 minikube 上安装了 metrics-server 以进行测试,这些都可以正常工作并给我这样的输出:

正如我所说,我真正需要的是通过“描述 pods”类型调用获得的信息。浏览了 kubernetes 源代码后,这个 NodeDescriber 看起来像是正确的函数类型,但是对于如何集成/实现它以获得所需的结果,我有点茫然。

kubernetes/pkg/printers/internalversion/describe.go

4f2d7b9 中的第 2451 行

func (d *NodeDescriber) Describe(namespace, name string, describerSettings...etc)

我是 Go 新手,对 Kubernetes 不是特别熟悉。任何关于如何去做的指示将不胜感激。