登录
首页 >  Golang >  Go问答

一个函数,可以使用注解来检索所有服务的Kubernetes API

来源:stackoverflow

时间:2024-03-23 11:03:30 261浏览 收藏

在 Kubernetes 集群中,为解决标签长度超过 63 个字符的限制,可以使用注释来存储额外的信息。然而,根据 Kubernetes 文档,注释不应用于查找对象。因此,推荐使用标签前缀将标签名称附加到标签,从而扩展标签的有效长度。

问题内容

我正在设置一个 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 获取适用于注释的所有服务的另一种方法?


解决方案


根据 Kubernetes documentation 中的规定,注释用于非识别信息,因此您自然不应该使用它们来查找对象。

如果可以的话,您可以通过以下方式将前缀(最大长度为 253 个字符)附加到标签:。可以从上面提供的链接找到更多信息。

今天关于《一个函数,可以使用注解来检索所有服务的Kubernetes API》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>