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

kubernetes - 通过在 Kubernetes 中创建命名空间自动创建资源/对象

我在想办法吗?如果我创建一个新的命名空间,那么我希望它自动为该服务帐户创建一个 RBAC 规则。

我知道一种方法是创建一个操作员,这样就有一个由协调器/api服务器跟踪的事件,它根据 CRD 创建资源。还有其他方法吗?

0 投票
1 回答
62 浏览

kubernetes-custom-resources - 在 k8s 运算符中,如何将 CRD 规范中的唯一 metadata.name 链接到我的服务器生成的唯一对象 ID

我正在开发一个新的 Operator 来管理我的业务逻辑对象的 CRD。我的业务对象存储在 Mongo 中,因此,我们需要此 BSON ID(12 个字母长度的 GUID)来对此对象进行后续更改。

问题是,如何将运营商需要创建的 CR 链接到这个上游对象?我在哪里可以存储这种独特BSON ID的 K8S 方式,以便我可以使用它进行进一步查找。

例如,这是我的上游对象之一的 CRD:

当我kubectl apply -f对此 CRD 执行操作时,它会被创建。

然后我的操作员在协调循环中选择它,然后在我的服务器中创建这个对象。服务器生成一个 BSON ID。我需要使用此 BSON ID 进行进一步查找。

如何存储特定于服务器的BSON ID,以便开发人员只需要metadata在规范中使用唯一名称,而在后台我的操作员负责将两者联系起来?

0 投票
1 回答
280 浏览

rest - 用于在 Kubernetes 的命名空间(或集群上)中列出 CustomResource 实例的 Kube API

使用命令行实用程序kubectl,我们可以列出自定义资源实例,如下所示

以类似的方式,我们是否有一个 REST API 来实现相同的功能?即API 采用CustomResource 的种类并列出所有创建的实例?

我指的是这个 API 参考: https ://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/

0 投票
1 回答
654 浏览

kubernetes - Kubernetes 中 CRD 的动态键/值输入属性

在定义 K8 CRD 时,我需要在提交资源对象时灵活地传递任何键/值对作为输入。 https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/

从上面的链接中,如果您看到属性只能容纳cronSpec,image和/或replicas. 它可以是自由形式吗?这意味着我可以传递任何键/值对,并且在我的代码中我得到一个可以包含键/值对的集合(可能是一个映射)。

https://stackoverflow.com/users/14044/mike-bryant 我用这个 CRD 试过:

使用具有如下输入的自定义对象:

但是当我用一些更新状态修补 crd 时,k8 失败并出现以下错误:

0 投票
1 回答
726 浏览

kubernetes - Kubernetes CRD 中状态的最大大小?

Kubernetes 中的 Kubernetes 规范和状态大小是否有限制?

我有一个用例,其中运算符规范是一个正则表达式,而正则表达式被扩展到许多我必须存储其状态的实际项目。

例子:

因为主题的数量是根据正则表达式计算的。我不知道其他人的数据结构可以增长到多大。所以想在某种程度上限制它。因此需要 Kubernetes 允许的最大限制方面的帮助。

此外,有必要这样来节省 Redshift 连接的数量。不能真正将问题分解为一个主题的另一个 crd。

请建议。

0 投票
1 回答
3642 浏览

kubernetes - Kubernetes:为什么修补自定义资源的 /status 子资源会更新父资源?

我试图了解 Kubernetes 的行为,因为它与自定义资源及其子资源有关——特别是status子资源。

具体来说,我想在status不修改父自定义资源的情况下更新子资源。

据我所知,这应该是可能的。我已经查看了文档 [此处][1],但我似乎无法让它按预期工作。

我正在使用 Docker Desktop 的Kubernetes1.19.3进行测试。

这是场景...

  1. 创建这个简单的 CRD:
  1. 创建演示资源:
  1. 启动代理:
  1. 建立对自定义资源的监视:

此时,您应该会看到类似以下的输出:

  1. PATCH/status资源

PATCH令人困惑的是,在父资源上提交我们的手表后会产生......

为什么要修改父资源?

如果我们检查资源,我们可以看到子资源status的资源肯定已更新:

我不知道这种行为是否是预期的,我的理解是错误的,或者我的PATCH方法是否有缺陷。

希望有人能帮忙。谢谢。

更新:

除此之外,PATCH我还可以确认PUT(虽然是更复杂的操作)表现出完全相同的行为。

例子:

¯\ (ツ)

0 投票
1 回答
437 浏览

go - 扩展 kubernetes client-go

我正在编写一个控制器来监视 kubernetes服务对象,并在它们包含某个标签时创建流量拆分。

由于原生 kubernetes go 客户端不支持 trafficsplit 对象,我不得不想办法扩展客户端,使其能够识别自定义资源。我发现这个指南很有帮助,让我可以像这样解决这个问题 -

我觉得必须有一种方法可以使用 trafficsplit 模式扩展 kubeClient 对象,而不是像我那样创建一个单独的客户端。有什么办法可以做到这一点?

0 投票
0 回答
78 浏览

kubernetes - 具有 CRD 资源和 CRD 对象的 Kubernetes Yaml

我有一个包含 CustomResourceDefinition 和 CRD 对象的 yaml 文件。但是当我尝试应用 yaml 时,有时 crd 对象创建失败,并且不存在类型 DemoRule。

尝试单独申请,效果很好。有什么方法可以在一个 yaml 中同时执行而不会出现任何错误?或者在两个部署之间添加等待?

0 投票
1 回答
81 浏览

kubernetes - 定义需要以下字段之一或没有字段的 Kubernetes 自定义资源

我尝试定义一个新的自定义资源,要求它具有 (1) 字段 A、(2) 字段 B 或 (3) 空正文之一。

例如:{A: 1}, {B: 1}, {} 可以,但 {A:1, B:2} 不行。

这是我的自定义资源以 OpenApi 模式的形式定义:

我应该如何在 oneOf 约束中包含空主体?

0 投票
1 回答
600 浏览

kubernetes - 如何使用分数格式(即 X/Y)为自定义资源显示 kubectl 列

在 Kubernetes 中,是否可以使用 CRD 的“additionalPrinterColumns”字段以分数格式(即 X/Y)显示列?

更准确地说,我想kubectl使用与下面的 READY 字段相同的格式来显示 CR 字段的描述:

您能否提供“additionalPrinterColumns”部分的内容?