问题标签 [kubernetes-operator]
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.
go - 如何在协调循环中处理长时间运行的任务
我正在编写一个 Kubernetes 运算符并处理从协调循环中处理长时间运行任务的特殊情况。
我有以下情况:
}
我试图了解处理上述情况的最佳方法是什么?我需要使用频道并在后台运行它们吗?这里的主要问题是我必须运行一些配置,这会花费大量时间并导致 K8s 操作员无法处理在 CR 上完成的其他更新。
elasticsearch - 尝试安装 Elastic ECK 时出现错误 413
我正在尝试按照教程使用 all-in-one.yaml 文件安装 Elastic Cloud on Kubernetes (ECK) Kubernetes 操作员:https ://www.elastic.co/guide/en/cloud-on-k8s /current/k8s-install-all-in-one.html 但我收到一个错误:
服务器出错:创建“https://download.elastic.co/downloads/eck/1.3.1/all-in-one.yaml”时出错:服务器响应状态码 413 但未返回更多信息(发布 customresourcedefinitions.apiextensions.k8s.io)
我对如何继续解决这个问题有点迷茫......
命令:
完整的日志:
更新 1:
运行命令(使用 windows powershell):
我得到:
更新 2:
当前版本:
kubernetes-operator - 无法在“openshift-marketplace”之外安装操作符
尝试将 Operator 安装到单个命名空间foobar
会导致错误:
Operator Group does not support single namespace installation mode
.
尝试将 Operator 安装到命名openshift-operators
空间中的所有命名空间会导致错误:
The namespace 'openshift-operators' does not support install modes for this operator
配置操作员组不会改变任何事情。
在任何情况下,操作员都不能安装在室外openshift-marketplace
kubernetes - 多个 Kubernetes Operator 通信
构建 Kubernetes Operators的最佳实践说我应该编写一大堆 Operators 来管理我的应用程序。运营商之间的通信是如何发生的?
换句话说,我应该如何构建我的 Operator,以便它可以与其他 Operator 对话?
kubernetes - 用于 Pub-Sub 模型应用的 Kubernetes Operator Vs Helm
我有一个 C# 中的发布者订阅者(Pub-Sub 模型)应用程序,我想将它托管在 Kubernetes 上以实现高可用性。使用 helm 好还是我应该在我的应用程序中使用运算符。什么最适合 Pub-Sub 模型应用程序?
go - 在 ConfigMap 数据部分从 yaml 创建 pod
我正在编写一个通过 yaml 部署应用程序的运算符。但是这个 yaml 存储在data
ConfigMap 的部分 -
对 yaml 进行了精简,以便对问题提供足够的了解。但实际上这是我可以kubectl apply -f <resource>
使用的完整部署文件。
在我的操作员的控制器代码中,我确保ConfigMap
已创建。但是现在我想获取这个 configmap 的数据部分并使用 yaml 创建一个新的 pod。我如何在 go 中阅读并创建一个新的 pod?
kubernetes - Operator-SDK 错误,“CRD 存在于包中,但未在 CSV 中定义”
当我运行make bundle
.
完整的输出是
这个错误的原因是什么?
kubernetes - 更新规范时如何同步自定义资源
在一个基于 operator-sdk 的 Kubernetes 算子中,你知道如何在 CR 规范更新时编写代码来同步 CR 资源kubectl apply
吗?您能否提供一些代码示例?
kubernetes - 测试使用 operator-sdk 搭建的操作员时,Scheme 为 Nil
我正在研究一个运算符的早期迭代,我使用 operator-sdk 搭建了它。我已尽力遵循Operator SDK Golang Tutorial和Kubebuilder book中的示例。我发现我可以将我的操作员部署并运行到本地集群,但我无法运行测试套件。我的测试总是产生 a panic: runtime error: invalid memory address or nil pointer dereference
,我已经追查到Scheme
它总是 Nil 的事实。但到目前为止,我还无法弄清楚为什么会这样。
理论上,我可以跳过测试,只在我的本地集群中测试操作符,但从长远来看,这将是非常脆弱的。我希望能够进行 TDD,更重要的是,我希望有一个测试套件与操作员一起使用,以帮助在维护模式下保持质量。
这是我的suite_test.go
,我从脚手架版本中尽可能少地对其进行了修改(我所做的更改来自Kubebuilder Book):
这是导致它失败的测试块。我有第二个Describe
块(此处未显示),它测试函数之外的一些业务逻辑Reconcile
,并且工作正常。
我在这里遗漏了什么阻止Scheme
正确初始化的东西吗?我不得不承认,我并不太了解Scheme
. 如果有帮助,我很乐意展示其他代码。
kubernetes - 我可以仅在删除之前执行 prestop 挂钩吗?
我的基于 Go 的自定义资源运算符在被删除之前需要一些清理操作。它必须从 ZooKeeper 中删除特定的 znode。
在重新生成资源之前不得执行这些操作。它们只能用用户的删除命令来执行。因此,我不能使用普通的 prestop-hook。
我可以仅在删除之前执行 prestop 挂钩吗?或者有没有其他方法让操作者在资源被删除之前执行清理逻辑?