Kubernetes 控制器使用 GO 中 pod 输出的值更新 CR 状态字段
Kubernetes controller update CR status field with values from pod output in GO
使用 Operator-sdk 我部署了一个 CR,它有一个带有 pod 的作业。 CR 有一个类似下面的 Status 结构
type CRStatus struct {
TestStatus string `json:"testStatus"`
TestCount int `json:"testCount"`
}
Pod 进行一些处理并打印输出 TestStatus 和 TestCount 值。 operator-sdk 控制器如何使用作业的 Pod 输出中的值更新 CR 的 TestStatus 和 TestCount 字段?
您可以先创建一个控制器(您可能已经创建了):
operator-sdk add controller --api-version=example.com/v1alpha1 --kind=YourCRApp
然后在实施中,您将希望通过添加 AddEventHandler
调用来使用 Kubernetes Informers/SharedInformers 以查看任何 Kubernetes 资源上的任何值是否已更改。您可以在 Kubernetes source code 中找到示例控制器。此外,网上有许多资源可以指导您如何创建控制器和使用 Informers,这里有一些示例:
使用 Operator-sdk 我部署了一个 CR,它有一个带有 pod 的作业。 CR 有一个类似下面的 Status 结构
type CRStatus struct {
TestStatus string `json:"testStatus"`
TestCount int `json:"testCount"`
}
Pod 进行一些处理并打印输出 TestStatus 和 TestCount 值。 operator-sdk 控制器如何使用作业的 Pod 输出中的值更新 CR 的 TestStatus 和 TestCount 字段?
您可以先创建一个控制器(您可能已经创建了):
operator-sdk add controller --api-version=example.com/v1alpha1 --kind=YourCRApp
然后在实施中,您将希望通过添加 AddEventHandler
调用来使用 Kubernetes Informers/SharedInformers 以查看任何 Kubernetes 资源上的任何值是否已更改。您可以在 Kubernetes source code 中找到示例控制器。此外,网上有许多资源可以指导您如何创建控制器和使用 Informers,这里有一些示例: