问题标签 [kubernetes-custom-resources]

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

kubernetes - 在 K8S 中为自定义资源定义添加“解释”信息

我在 K8S 中注册了自定义资源定义:

现在尝试为我的自定义资源获取“解释”:

我收到以下错误:

如何将explain信息添加到我的自定义资源定义中,或者 CRD 不支持此功能?

0 投票
1 回答
3056 浏览

kubernetes - kubernetes 自定义资源定义必填字段

我正在尝试编写一个 kubernetes crd 验证模式。我有一个结构数组(vc),并且这些结构中的一个字段是必需的(name字段)。

我尝试查看各种示例,但不name存在时不会产生错误。有什么建议有什么问题吗?

0 投票
0 回答
181 浏览

kubernetes - kubernetes 自定义资源定义以跟踪服务/命名空间的数量

我正在尝试创建一个自定义 kubernetes 控制器来跟踪 kubernetes 资源的数量,例如计算集群中创建的数量服务。

上述问题分为两部分:

  1. 首先,我需要创建一个控制器来监听服务的创建时间,让我们将此计数器称为 svc_count。这很容易,因为我可以编写一个自定义控制器来监听服务。

  2. 我需要将 svc_count 存储在 etcd 中,以便在某些用户查询 svc_count 时显示该值。所以我想到了使用CRD的。我可以按照https://github.com/yaronha/kube-crd中的示例来做到这一点。这具有用于 POST、PUT、GET 的 Rest-API 客户端。

  3. 第三部分与第 1 部分和第 2 部分相关。每当创建服务时,我需要在控制器的 ADD 事件处理程序中对 CRD 进行更改,以便用户可以看到更新。

问题/问题:我的问题是如何从自定义控制器的事件处理程序更新 CRD??。我可以将 CRD rest-api-client 保存在自定义控制器中并调用相应的更新函数吗?

请让我知道是否有其他方法可以做到这一点。

谢谢

0 投票
1 回答
262 浏览

controller - k8s Operator SDK - 如何获取实际的 CRD 状态

我希望将新规范与实际状态进行比较,看看我是否允许进行一些更改(比如升级)

我从 etcd 操作员那里找到了这个例子,我想知道是否有更常见的方法来检索我的 CRD (statefulset) 的某些资源:

示例来自:https ://github.com/coreos/etcd-operator/blob/534a00a970975a66b15e2ea3cd90eb6d5104c71b/pkg/cluster/cluster.go#L285

0 投票
1 回答
1043 浏览

kubernetes - 为什么 Kubernetes 自定义资源定义在集群范围内

您好 StackOverflow 用户,

我最近开始在 Kubernetes 领域工作,发现自定义资源定义 (CRD) 类型没有命名空间,并且可用于所有命名空间。

我想知道为什么不能将 CRD 类型限定为命名空间。任何帮助,将不胜感激!

0 投票
1 回答
583 浏览

kubernetes - 如何使用 watch api 避免丢失历史删除事件

我正在使用 watch API 实现一个自定义资源控制器。在 kubernetes 中创建/删除对象时,需要在 aws 中创建/删除对象。

当它启动手表时,它会收到一个历史事件列表。但是,我注意到如果创建一个对象然后删除,这些事件会在历史事件流中“取消”。也就是说,当我启动手表时,我没有看到给定对象的 ADDED 事件和 DELETED 事件,我根本看不到任何事件,就好像它从未存在过一样。这意味着如果一个对象在控制器关闭时被删除,它会在它重新启动时完全错过这个删除事件。

对于需要在删除 kubernetes 对象时执行操作的控制器(例如,删除 AWS 中的对象),推荐的方法是什么?有没有办法让 kubernetes 保持 DELETED 事件?是否只是期望控制器通过轮询所有命名空间中的所有对象列表而不是使用 watch API 来工作?

0 投票
0 回答
494 浏览

go - 如何在 k8s.io/code-generator 中使用切片和映射

我正在编写一个监听环境自定义资源的 Kubernetes 控制器。

pkg/apis/environment/v1alpha1/types.go有以下内容:

运行 k8s.io/code-generator/generate-groups.sh 脚本后,我得到了一个错误的pkg/apis/environment/v1alpha1/zz_generated.deepcopy.go文件。问题来自这个生成的方法:

尝试构建或运行此代码会给我以下错误

只要我在Parameters结构中包含的匿名结构中包含MapSlice ,就会遇到此错误。

解决方法

解决方法是创建一个包含映射的命名类型。例如,我像这样重构了Service结构:

生成的func (in *Service) DeepCopyInto(out *Service)并没有改变,但创建了以下 2 个新方法:

现在,我在构建和运行代码时没有任何问题。

这种解决方法很痛苦,因为我真正的Service结构比这个例子大得多。

有没有办法通过代码生成器在匿名 func 中使用地图和切片?

0 投票
2 回答
66 浏览

kubernetes - 自定义对象的大负载

虽然我可以很好地创建自定义对象,但我想知道应该如何处理对象的大型有效负载(千兆字节)。

CR 主要用于与 Kubernetes 中的垃圾收集/引用计数进行交互。

但是,通过 YAML 添加有效负载不起作用(大型有效负载内存不足):

或许可以将有效负载添加到 PV,然后在 CR 中引用该路径。然后我遇到了问题,如果 CR 最终确定(找不到有关自定义终结器的任何信息),我似乎无法清理有效负载文件。

不清楚如何将这样的概念集成到 Kubernetes 生命周期中。

0 投票
1 回答
3674 浏览

go - Kubernetes 自定义 CRD:“无法列出……:服务器找不到请求的资源”

我正在尝试创建一个 kubernetes 自定义资源定义(名为Block),但一直遇到以下错误:

List此CRD 的控制器调用引发了此问题:

对于某些上下文,这是register.go我将上述资源注册到方案构建器的文件:

这是我从前一个文件scheme.go实际运行的文件:AddToScheme

任何人都可以分享一些关于我在这里做错了什么的信息吗?

这项工作是在这篇博文之后进行的。

0 投票
1 回答
1141 浏览

java - 使用 Kubernetes 的 java-client 创建 CRD

是否可以通过从 yaml 文件中读取数据并使用Kubernetes 的Java 客户端来创建自定义资源定义?我在 sbt 和 Scala 中使用库 3.0.0 的版本。但是我无法在主库存储库中找到任何类型的自定义资源创建方法,而基本资源(如 pod)有类似的方法