命名空间解析
查找应用程序命名空间是基于尽力而为的原则进行的。我们通过一些步骤来迭代查找它。最简单和最常见的方法是在适当的配置中指定它,例如:
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.cloud.kubernetes.client.namespace - 
来自由
spring.cloud.kubernetes.client.serviceAccountNamespacePath属性指定的文件中的字符串 - 
来自
/var/run/secrets/kubernetes.io/serviceaccount/namespace文件中的字符串(Kubernetes 默认命名空间路径) - 
来自指定的客户端方法调用(例如 fabric8 的
KubernetesClient::getNamespace),如果客户端提供了此类方法。这反过来可以通过环境属性进行配置。例如,fabric8 客户端可以通过 "KUBERNETES_NAMESPACE" 属性进行配置;具体细节请参考客户端文档。 
如果从上述步骤中未能找到命名空间,将会抛出一个异常。