命名空间解析

查找应用命名空间是基于最佳努力原则进行的。我们会按顺序迭代执行一些步骤来查找它。最简单且最常见的方法是在适当的配置中指定它,例如:spring-doc.cadn.net.cn

spring:
  application:
    name: app
  cloud:
    kubernetes:
      secrets:
        name: secret
        namespace: default
        sources:
         # Spring Cloud Kubernetes looks up a Secret named 'a' in namespace 'default'
         - name: a
         # Spring Cloud Kubernetes looks up a Secret named 'secret' in namespace 'b'
         - namespace: b
         # Spring Cloud Kubernetes looks up a Secret named 'd' in namespace 'c'
         - namespace: c
           name: d

请记住,配置映射(config maps)也可以执行相同的操作。如果未指定此类命名空间,则将按以下顺序读取它:spring-doc.cadn.net.cn

  1. 来自属性 spring.cloud.kubernetes.client.namespacespring-doc.cadn.net.cn

  2. 从文件中存储的字符串,该文件由 spring.cloud.kubernetes.client.serviceAccountNamespacePath 属性指定spring-doc.cadn.net.cn

  3. 从位于 /var/run/secrets/kubernetes.io/serviceaccount/namespace 文件中的字符串(Kubernetes 默认命名空间路径)spring-doc.cadn.net.cn

  4. 从指定的客户端方法调用(例如 fabric8 的:KubernetesClient::getNamespace),如果客户端提供了此类方法。反过来,这可以通过环境属性进行配置。例如,fabric8 客户端可通过 "KUBERNETES_NAMESPACE" 属性进行配置;请参阅客户端文档以获取确切详情。spring-doc.cadn.net.cn

未能从上述步骤中找到命名空间将导致抛出异常。spring-doc.cadn.net.cn