go - 在 kubernetes API 中是否有一个通过注解获取所有服务的函数
问题描述
我正在建立一个 kubernet 集群来推出我们的容器应用程序。应用程序实际上需要所有标签,但标签长度超过 63 个字符,我收到错误消息。这使我依赖注释。
服务的注解如下所示com.example.development.london/component.proxy-config.secure-routes.backend.proxy-path
:/
唯一用于绕过 RFC 域错误。
在 Golang 应用程序中,请求命名空间的所有服务。实际上是根据标签。为此,到目前为止,我使用了以下代码。
func (kc *KubernetesCollector) generateRoutes(errorChannel chan<- error) {
log.Println("INFO: Try to generate routes")
services, err := kc.iface.Services(kc.namespace).List(metav1.ListOptions{
LabelSelector: fmt.Sprintf("%s==true", ConvertLabelToKubernetesAnnotation(ProxyConfDiscoverableLabel)),
})
...
func ConvertLabelToKubernetesAnnotation(label string) string {
return strings.Replace(label, "com.example.development.london.", "com.example.development.london/", -1)
}
但是不可能使用注释返回服务。有谁知道另一种方法如何获得适用于 Go 注释的所有服务?
解决方案
没有用于注释的 FieldSelector。您可以做的是将所有服务添加到您的列表中,然后根据每个服务中的注释过滤它们。
推荐阅读
- reactjs - GSAP TweenMax 鼠标动画对鼠标事件的行为很奇怪
- python - 是否可以让 pyautogui 定位图像并单击虚拟机?
- javascript - 如何安全地从后端发送图像以显示在前端 HTML 中?
- nuxt.js - Nuxt:TypeError:blogRoutes 不可迭代
- swift - 可比协议
- css - 为什么设置 dialogClassName 并使用 Styled JSX 设置 Bootstrap 模式的样式需要全局标记?
- javascript - 是否可以为多个实例重用 flatpickr 窗格的 DOM?
- firemonkey - 为什么 tmediaplayer.CurrentTime 不适用于 Android?
- google-cloud-sql - Gcloud SQL 升级 postgres 9.6 到 11
- r - 如何修复 var(X) 现已失效