问题标签 [operator-sdk]

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

kubernetes - 生产环境不安装operator-sdk,如何部署operator(operator-sdk v1.0创建)?

使用operator-sdk guide v1.0,部署 operator 时需要在生产环境中安装 operator-sdk。

不安装operator-sdk就可以部署operator吗?因为它会导致更多的依赖性和复杂性。

如何只生成 CRD yaml、CR yaml 和 Contoller Image?或者还有什么更方便的发布 Operator 的方式?</p>

0 投票
0 回答
187 浏览

kubernetes - 如何在操作员框架中使用leader-with-lease选举pod成为leader后执行功能?

我正在尝试运行一个容器的 3 个 pod/副本,我希望其中一个作为领导者运行,如果该特定 pod 停止或失败,其他非领导者运行的 pod 应立即领导继续执行这是领导者吊舱所必需的。只是为了清楚其他 pod 会执行,但是领导 pod 一旦获得领导权,就会执行一些其他 pod 不会执行的额外代码。这是我关注的文档的链接。

这是我运行的一个测试示例,我在运行容器应该运行的实际代码时遇到问题。

leader pod的日志如下:

我希望 pod 能够运行到“我是领导者”打印语句并执行我希望领导者 pod 执行的任务。即使我可以在某个地方传递一个函数,一旦它获得领导权就可以执行它,这对我来说没问题。目前,我在某处犯了错误,在 3 个 pod 之一获得领导权后无法做任何事情。

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

openshift - 卸载依赖操作符

olm-book 提到了安装期间的依赖关系解析,您能否也描述一下卸载/清理的工作原理。

OLM 在共享依赖项时是否保留依赖运算符的引用计数器?如何清理依赖运算符以及何时执行此操作?

olm-book:https ://operator-framework.github.io/olm-book/docs/operator-dependencies-and-requirements.html

0 投票
1 回答
987 浏览

kubernetes - Kubernetes Operator(Operator SDK、Kubebuilder VERSUS Kubernetes 客户端库)

如果这个问题已经得到回答,我很抱歉,但是在尝试了许多不同的谷歌搜索方式后,我未能得到明确的解释,所以我试图在这里寻求澄清。

我熟悉 Kubernetes 上下文中的操作员/控制器模式,并且正在尝试构建一个自定义 nodejs 控制器,该控制器使用来自Kubernetes.io的 nodejs Kubernetes 客户端库之一来处理我自己的自定义资源 (CRD) 。

在网上研究时,我遇到了 OperatorSDK 和 Kubebuilder,它们似乎是可以引导操作员/控制器的工具,提供许多功能来与 K8s Api Server 进行交互,就像 Kubernetes 客户端库一样。

OperatorSDK 和 Kubebuilder 似乎不仅仅是库所以这是我的问题

  1. 来自Kubernetes.io的OperatorSDK、KubebuilderKubernetes 客户端库之间有什么区别
  2. Kubernetes 客户端库是 OperatorSDK 和 Kubebuilder 之类的实现吗?
  3. 我是否需要使用 OperatorSDK 或 Kubebuilder 来实现我自己的控制器,因为据我所知,Kubernetes 客户端库似乎就足够了。
0 投票
1 回答
50 浏览

kubernetes - 控制器为不同命名空间中的多个运算符实例获取错误的命名空间名称

我开发了一个 k8s Operator,在第一个命名空间中部署了第一个 Operator 后,它运行良好。然后我在第二个命名空间中部署第二个操作员,我看到第二个控制器获取命名空间仍然是第一个名称的请求,但预期的命名空间应该是第二个。

请看下面的代码,当我在第二个命名空间中使用第二个运算符时,请求的命名空间仍然是第一个命名空间。

我怀疑这可能与选举有关,但我不明白。

控制器中发生了什么?如何解决?

0 投票
0 回答
303 浏览

go - Kubernetes Go 操作员阻止 client.Get() 秘密数据

试图在操作符 Reconcile 函数中读取秘密数据。

实际输出:输出显示在 client.Get() 上的 Get 秘密调用阻塞

  • 显示“获取秘密之前”
  • 未显示“获取秘密后”。

预期输出:我期待 get 调用成功返回,并且应该显示“After get secret”消息。

0 投票
1 回答
466 浏览

kubernetes - Openshift pod 运行时用户 ID 与 Dockerfile 中的用户不匹配

我们在 Dockerfile 和 entrypoint shell script 中有“默认”用户,需要在运行时执行。当我们将它部署到 Openshift 集群(4.6)时,pod 有不同的用户,并且由于这个入口点 shell 脚本失败,因此应用程序没有出现。请求您建议如何在 POD 中使用用户执行这些 shell 脚本

0 投票
1 回答
444 浏览

kubernetes - 使用 envTest 进行 kubernetes Operator-sdk 测试

我是新手operator-sdk。现在我正在为带有envtest框架的操作员编写测试,所以我有一个用于环境的假控制平面。

在控制器协调循环中,一旦我初始化了一个 CR,控制器就会为 pod 拉下一个镜像并部署该 Pod。

上述所有行为都发生在真正的 k8s 集群中。我的问题是,在环境下envtest,控制器是否真的为部署 Pod 下拉图像?

0 投票
1 回答
87 浏览

kubernetes - 运营商 SDK 问题

我有一个 Operator,并将其部署在同一个集群中的 3 个不同的命名空间上,然后出现以下错误。我无法弄清楚这里出了什么问题以及如何解决它们?有什么想法吗?