问题标签 [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 投票
2 回答
4832 浏览

kubernetes - 通过 kubernetes/client-go 修补部署

很难找出问题所在。我有一个远程 kubernetes 集群,并在本地复制了配置。我知道这是正确的,因为我已经获得了其他命令来为我工作。

我无法开始工作的是部署补丁。我的代码:

我得到的只是: panic: the server rejected our request due to an error in our request

任何帮助表示赞赏,谢谢!

0 投票
1 回答
335 浏览

kubernetes - Kubernetes,代码片段通过 go 客户端动态扩展/缩小 pod

是否有任何示例代码可用于通过 go 客户端动态扩展/缩小 kubernetes 中的 pod。

0 投票
2 回答
481 浏览

go - 使用 go-client 在 Istio-resource 上设置 ObjectMeta

我正在尝试使用 Go 中的 Istio,并且正在使用 Kubernetes 和 Istio go-client 代码。

我遇到的问题是我无法指定ObjectMetaTypeMeta在我的 Istio-ServiceRole对象中。我只能指定rules,里面有哪些spec

下面你可以看到我的工作:

我想做的是让这段代码工作:

谁能指出我正确的方向?

0 投票
1 回答
1747 浏览

kubernetes - kubernetes go-client PersistentVolumeClaim 未按请求配置,卡在 Pending 状态

在我使用api.PersistentVolumeClaims(namespace).Create(createOpts)调用后使用 go-client API 时,PersistentVolumeClaim 显示为资源,但仍处于 Pending 状态。使用时我没有看到任何事件kubectl describe pvc,也没有看到正在创建的任何卷等。

我正在使用的代码如下:

我试图找到使用具有持久卷的 Create API 的好示例,但大多数示例似乎是针对观察者等的,因此我花了很长时间尝试对代码进行逆向工程,引导我明确设置,Status但这似乎影响为零。我还尝试在 Spec 中默认 VolumeMode,但没有帮助。

我读过的例子来自:

https://github.com/kubernetes/kubernetes/blob/master/pkg/controller/volume/persistentvolume/framework_test.go
https://godoc.org/k8s.io/api/core/v1#PersistentVolumeSpec
https:// github.com/vladimirvivien/k8s-client-examples/tree/master/go/pvcwatch
https://medium.com/programming-kubernetes/building-stuff-with-the-kubernetes-api-part-4-using-go -b1d0e3c1c899

有谁知道这些 API 的实际示例代码超出了 _test.go 文件中的单元测试,或者任何人都可以提供有关如何让创建过程在集群中实际滚动的任何提示?我假设当我尝试创建 Claim 资源时,会自动配置所需的下游资源,例如 Volume 等。

非常感谢您看一看,如果您走到这一步...

0 投票
1 回答
564 浏览

kubernetes-go-client - 如何扩展多个部署并等待并行部署

我想使用 kubernetes go 客户端扩展部署并等待部署成功完成。我已经创建了可行的解决方案,但想知道我是否错过了任何边缘情况或可以改进它。

我的第一个非常简单的解决方案:

这行得通,但我不喜欢轮询的想法。

第二种解决方案的灵感来自kubectl rollout status。我根据我的需要调整了代码并且它正在工作。但我不确定如何并行部署多个部署(用通道做点什么?)。

0 投票
1 回答
5458 浏览

go - kubernetes client-go:将标签选择器转换为标签字符串

在 kubernetes client-go API(或另一个使用它的库)中,是否有一个实用函数可以将 a 转换为k8s.io/apimachinery/pkg/apis/meta/v1/LabelSelector字符串以填充字段?LabelSelectork8s.io/apimachinery/pkg/apis/meta/v1/ListOptions

我挖掘了代码,client-go但找不到这样的函数。

LabelSelector.Marshall()也不给我那个(不出所料,因为这LabelSelector.String()不是他们的目的,但我还是试过了)。

背景

我有类似的规范描述k8s.io/api/extensions/v1beta1/Deployment,并希望使用它的一组选择器标签(即Selector字段)来查询它的 pod

0 投票
0 回答
545 浏览

go - 使用 kubernetes go-client 观看 persistentVolumes

在这段代码中,我正在观看服务,并且它正在工作,我的问题是,在创建 a 时如何观看事件persistentVolume?我检查了源代码,它似乎返回了一个接口,但我并不熟悉如何使它工作。

类似于他们在这里使用 pods所做的事情。

0 投票
0 回答
396 浏览

go - NewIndexerInformer 和 NewSharedIndexInformer 之间的区别

我有一个关于 和 之间的区别的问题,NewIndexerInformerNewSharedIndexInformerNewSharedIndexInformer改用NewIndexerInformer

https://github.com/kubernetes/client-go/blob/master/tools/cache/shared_informer.go#L132

https://github.com/kubernetes/client-go/blob/master/tools/cache/controller.go#L307

NewIndexerInformer我通过ResourceEventHandler但在NewSharedIndexInformer我不能,这意味着我不需要指定创建、删除等事件?

我在第 226 行和第 251 行执行以下https://pastebin.com/kqvQpDLU

提前致谢

0 投票
1 回答
998 浏览

kubernetes - 如何使用 Kubernetes Go 客户端调用 Pod 代理动词?

Kubernetes 远程 API 允许使用代理动词 HTTP 访问任意 pod 端口,即使用/api/v1/namespaces/{namespace}/pods/{name}/proxy.

Python 客户端提供corev1.connect_get_namespaced_pod_proxy_with_path()调用上述代理动词。

尽管阅读、浏览和搜索 Kubernetes 客户端-go 有一段时间了,但我仍然不知道如何使用 goclient 执行与 python 客户端相同的操作。我的另一个印象是,如果没有现成的 API corev1 调用可用,我可能需要深入了解客户端变更集的其余客户端?

如何使用其余客户端和上述路径正确构造 GET 调用?

0 投票
0 回答
122 浏览

go - 如何使用 openshift-go-client 的用户名和密码验证?

我尝试使用 Openshift go-client 来访问 Openshift 中的对象。但是我没有通过用户名和密码进行身份验证。有谁知道如何使用具有用户名和密码身份验证的客户端?创建配置时是否忘记了任何参数?

我不想通过 Kubeconfig 进行身份验证。

我已经使用用户名和密码身份验证创建了 REST 配置。或者,我尝试了 Bearer-Token 方法,它返回了预期的结果。我尝试了以下方法:

我希望请求与不记名令牌一样成功。但我总是得到一个user "system:anonymous" cannot list builds.build.openshift.io in project "namespace"错误。

有谁知道我该如何解决这个问题?

谢谢