查找应用程序命名空间应尽最大努力进行。我们按顺序迭代一些步骤 找到它。最简单和最常见的方法是在正确的配置中指定它,例如:Spring中文文档

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

请记住,配置映射也可以执行相同的操作。如果未指定这样的命名空间,则将读取它(按以下顺序):Spring中文文档

  1. 与住宿相比spring.cloud.kubernetes.client.namespaceSpring中文文档

  2. 来自驻留在由属性表示的文件中的字符串spring.cloud.kubernetes.client.serviceAccountNamespacePathSpring中文文档

  3. 从驻留在文件中的字符串 (Kubernetes 默认命名空间路径)/var/run/secrets/kubernetes.io/serviceaccount/namespaceSpring中文文档

  4. 从指定的客户端方法调用(例如 fabric8 的 : ),如果客户端提供 这样的方法。反过来,这可以通过环境属性进行配置。例如,fabric8 客户端可以通过以下方式进行配置 “KUBERNETES_NAMESPACE”属性;有关确切的详细信息,请参阅客户文档。KubernetesClient::getNamespaceSpring中文文档

如果无法从上述步骤中找到命名空间,将导致引发异常。Spring中文文档